From f895dd58d253d73dca751616ea6850f13f2cfd0a Mon Sep 17 00:00:00 2001 From: zccz14 Date: Tue, 17 Sep 2024 18:02:14 +0000 Subject: [PATCH] deploy: No-Trade-No-Life/Yuan@204977ef9f55cfc6e4a8e4a984f03e1e13c4232e --- 404.html | 4 +- ...edb13.3695f801.js => 117edb13.84e367e3.js} | 2 +- ...f2afb.c07faf49.js => 935f2afb.1a9c6ac4.js} | 2 +- assets/js/990bd87c.80388cbf.js | 1 + assets/js/e6b6016c.a2766b77.js | 1 + assets/js/e6b6016c.daba89e1.js | 1 - assets/js/main.89211129.js | 2 + ...CENSE.txt => main.89211129.js.LICENSE.txt} | 0 assets/js/main.f15ba9db.js | 2 - assets/js/runtime~main.e3cef776.js | 1 + assets/js/runtime~main.f122275b.js | 1 - blog/archive/index.html | 4 +- .../index.html | 4 +- blog/index.html | 4 +- blog/tags/index.html | 4 +- blog/tags/tech/index.html | 4 +- blog/tags/yuan/index.html | 4 +- blog/vision-of-no-trade-no-life/index.html | 4 +- .../index.html | 4 +- docs/agent-guide/using-hooks/index.html | 4 +- .../using-position-manager/index.html | 4 +- .../using-technical-indicators/index.html | 4 +- docs/agent-guide/using-time-series/index.html | 4 +- docs/agent-guide/what-is-agent/index.html | Bin 31298 -> 31298 bytes docs/basics/what-is-account/index.html | Bin 26957 -> 27140 bytes docs/basics/what-is-market-data/index.html | 6 +- docs/basics/what-is-order/index.html | 6 +- docs/basics/what-is-product/index.html | Bin 26162 -> 26345 bytes docs/basics/what-is-transfer-order/index.html | 8 +- docs/basics/what-is-workspace/index.html | Bin 0 -> 29579 bytes docs/category/basic-concepts/index.html | 6 +- docs/category/getting-start/index.html | Bin 16506 -> 16506 bytes docs/category/guide---agent/index.html | Bin 17884 -> 17880 bytes docs/category/guide---vendor/index.html | 4 +- docs/category/protocol/index.html | 4 +- docs/category/reference/index.html | 4 +- docs/intro/index.html | 4 +- docs/protocol/introduce/index.html | 4 +- .../protocol/message-pattern-layer/index.html | 4 +- docs/protocol/network-layer/index.html | Bin 44414 -> 44414 bytes .../elementary-math-in-trading/index.html | 4 +- .../how-to-calculate-margin/index.html | 4 +- .../reference/how-to-calculate-pnl/index.html | 4 +- .../creating-your-first-strategy/index.html | 4 +- .../real-world-trading/index.html | 4 +- .../index.html | 4 +- .../vendor-account-info/index.html | 4 +- .../vendor-historical-market-data/index.html | 4 +- .../vendor-historical-order/index.html | 4 +- docs/vendor-guide/vendor-product/index.html | Bin 35378 -> 35378 bytes .../vendor-realtime-market-data/index.html | 4 +- .../vendor-trading-interfaces/index.html | 4 +- docs/vendor-guide/vendor-transfer/index.html | 4 +- docs/vendor-guide/what-is-vendor/index.html | Bin 22175 -> 22175 bytes index.html | 4 +- markdown-page/index.html | 4 +- sitemap.xml | 2 +- zh-Hans/404.html | 21 - zh-Hans/assets/css/styles.f7544afe.css | 1 - .../1-5791fea049cec44e9e70b3b92b2a87bf.jpeg | Bin 944737 -> 0 bytes .../2-1ccd99f780c3e70e226cb9e334bbef9d.jpeg | Bin 919316 -> 0 bytes ...twork-a74b76a5767f3af6b1b3b53ee78cff05.png | Bin 190417 -> 0 bytes zh-Hans/assets/js/0.40e99653.js | 1 - zh-Hans/assets/js/01a85c17.6511c697.js | 1 - zh-Hans/assets/js/025e521f.655a5fe6.js | 1 - zh-Hans/assets/js/046ee09f.9866cfa7.js | 1 - zh-Hans/assets/js/05e169a4.25eb78e7.js | 1 - zh-Hans/assets/js/0d16ebe8.63d49bb0.js | 1 - zh-Hans/assets/js/1043bab9.3c9635f5.js | 1 - zh-Hans/assets/js/106ebb2b.d5ada6eb.js | 1 - zh-Hans/assets/js/119.579fd7a9.js | 10323 ---- zh-Hans/assets/js/11f5956c.e5bcf747.js | 1 - zh-Hans/assets/js/1426.ba478e85.js | 2 - .../assets/js/1426.ba478e85.js.LICENSE.txt | 9 - zh-Hans/assets/js/143.58bdc44b.js | 10814 ---- zh-Hans/assets/js/14eb3368.517e4f8e.js | 1 - zh-Hans/assets/js/16457d44.8e098b57.js | 1 - zh-Hans/assets/js/1709.38b6c703.js | 1 - zh-Hans/assets/js/174.27c899bf.js | 3429 -- zh-Hans/assets/js/17896441.4bcd12ad.js | 1 - zh-Hans/assets/js/190.7058db84.js | 25876 -------- zh-Hans/assets/js/1df93b7f.39309b9e.js | 1 - zh-Hans/assets/js/1f35b80c.d1fec2ef.js | 1 - zh-Hans/assets/js/1f391b9e.f96ea52d.js | 1 - zh-Hans/assets/js/217.39ffad78.js | 23570 ------- zh-Hans/assets/js/2434.9c97eac7.js | 1 - zh-Hans/assets/js/26a6615c.5013f8c8.js | 1 - zh-Hans/assets/js/2789.565504e7.js | 1 - zh-Hans/assets/js/295.27dcdb29.js | 50986 ---------------- zh-Hans/assets/js/2bf541da.4da54f85.js | 1 - zh-Hans/assets/js/311.8e26b5d3.js | 10780 ---- zh-Hans/assets/js/3373.29482352.js | 1 - zh-Hans/assets/js/340c609b.6912d686.js | 1 - zh-Hans/assets/js/346c4766.6b8f8751.js | 1 - zh-Hans/assets/js/3508.a3689f5c.js | 1 - zh-Hans/assets/js/373.d663388d.js | 2600 - zh-Hans/assets/js/3730.10493136.js | 1 - zh-Hans/assets/js/382.298691a4.js | 739 - zh-Hans/assets/js/3939.35f9269e.js | 1 - zh-Hans/assets/js/393be207.03f02ed5.js | 1 - zh-Hans/assets/js/3977e4d7.902fc278.js | 1 - zh-Hans/assets/js/4009.5dc7e8ba.js | 1 - zh-Hans/assets/js/40360d42.b23a2389.js | 1 - zh-Hans/assets/js/4143.a618a45f.js | 1 - zh-Hans/assets/js/434.a5ef08ef.js | 2106 - zh-Hans/assets/js/45d20231.daf79ddd.js | 1 - zh-Hans/assets/js/488a1253.7a02480b.js | 1 - zh-Hans/assets/js/48c7a9d6.56095237.js | 1 - zh-Hans/assets/js/4968.6edb6f79.js | 1 - zh-Hans/assets/js/508.56ee5259.js | 540 - zh-Hans/assets/js/5174.8aebf642.js | 1 - zh-Hans/assets/js/5217.2de6b56d.js | 1 - zh-Hans/assets/js/53ad5cb8.1e4715b4.js | 1 - zh-Hans/assets/js/543.4bd50d3e.js | 1242 - zh-Hans/assets/js/546.692cdfc6.js | 14570 ----- zh-Hans/assets/js/5546.7b262fed.js | 1 - zh-Hans/assets/js/578.7c67ecf1.js | 1 - zh-Hans/assets/js/578.dc37ce7b.js | 28262 --------- zh-Hans/assets/js/589.227624d5.js | 1 - zh-Hans/assets/js/589.7971ba41.js | 1758 - zh-Hans/assets/js/5b2a233e.89a31517.js | 1 - zh-Hans/assets/js/5e95c892.dfd08636.js | 1 - zh-Hans/assets/js/6.5017891d.js | 10065 --- zh-Hans/assets/js/61e28b33.a1bf0242.js | 1 - zh-Hans/assets/js/6540.18b982ce.js | 1 - zh-Hans/assets/js/6844.a80bf7f7.js | 1 - zh-Hans/assets/js/6875c492.f3a0651b.js | 1 - zh-Hans/assets/js/699b3950.d1613b1e.js | 1 - zh-Hans/assets/js/7006.409db86f.js | 1 - zh-Hans/assets/js/718.e4553b7c.js | 1227 - zh-Hans/assets/js/7190.f1edd475.js | 1 - zh-Hans/assets/js/7321f337.d16a7fb7.js | 1 - zh-Hans/assets/js/7367.3fe0eadb.js | 1 - zh-Hans/assets/js/757be3fa.efedd4ba.js | 1 - zh-Hans/assets/js/7602be68.1b718129.js | 1 - zh-Hans/assets/js/7673.f2d4d072.js | 1 - zh-Hans/assets/js/773a5ec1.00a75037.js | 1 - zh-Hans/assets/js/7808.9f072408.js | 1 - zh-Hans/assets/js/79d1ef9f.40fb0ff0.js | 1 - zh-Hans/assets/js/7b51b391.69a8f976.js | 1 - zh-Hans/assets/js/7d758ffa.b9ef3f59.js | 1 - zh-Hans/assets/js/808.d3953d28.js | 1410 - zh-Hans/assets/js/814f3328.02755157.js | 1 - zh-Hans/assets/js/8295.926a4d81.js | 2 - .../assets/js/8295.926a4d81.js.LICENSE.txt | 9 - zh-Hans/assets/js/8311.9273d449.js | 1 - zh-Hans/assets/js/8382.81da9735.js | 1 - zh-Hans/assets/js/841707d5.76cfebb9.js | 1 - zh-Hans/assets/js/8543.470d33f7.js | 1 - zh-Hans/assets/js/8718.c5724e7c.js | 1 - zh-Hans/assets/js/8987.2572156f.js | 1 - zh-Hans/assets/js/9.9e00c584.js | 1320 - zh-Hans/assets/js/9292.a463f1b0.js | 1 - zh-Hans/assets/js/935f2afb.ddc4ceaf.js | 1 - zh-Hans/assets/js/939.a5fa2f84.js | 26575 -------- zh-Hans/assets/js/968.a630d3c2.js | 25919 -------- zh-Hans/assets/js/9e4087bc.06140a3c.js | 1 - zh-Hans/assets/js/9f1e3e5b.75df9411.js | 1 - zh-Hans/assets/js/a401270e.d018e007.js | 1 - zh-Hans/assets/js/a61e36ae.f78fd451.js | 1 - zh-Hans/assets/js/a6aa9e1f.5fb44d7e.js | 1 - zh-Hans/assets/js/a7bd4aaa.911017b0.js | 1 - zh-Hans/assets/js/a94703ab.8ee806d2.js | 1 - zh-Hans/assets/js/a95d02d0.da5a8025.js | 1 - zh-Hans/assets/js/bfa8e98c.267efaf8.js | 1 - zh-Hans/assets/js/c118d91b.80d22472.js | 1 - zh-Hans/assets/js/c3ab1e6d.70572fbb.js | 1 - zh-Hans/assets/js/c5ac5150.12a48083.js | 1 - zh-Hans/assets/js/ccc49370.1ee388cf.js | 1 - zh-Hans/assets/js/cf20b6b9.3d2ce46c.js | 1 - zh-Hans/assets/js/d81ab594.d2c397f4.js | 1 - zh-Hans/assets/js/d9176e76.5b46ae48.js | 1 - zh-Hans/assets/js/db7edad6.67e2397b.js | 1 - zh-Hans/assets/js/e016760f.dd8d6b01.js | 1 - zh-Hans/assets/js/e01b06fd.b2dfef96.js | 1 - zh-Hans/assets/js/e54a13a0.17d705b9.js | 1 - zh-Hans/assets/js/ebeb6efd.23aad273.js | 1 - zh-Hans/assets/js/f01d01d8.90e9db82.js | 1 - zh-Hans/assets/js/f4fdbd70.b158bc6c.js | 1 - zh-Hans/assets/js/f50e287c.e35c05bc.js | 1 - zh-Hans/assets/js/fb59e806.7e6f3b24.js | 1 - zh-Hans/assets/js/main.4670ac01.js | 2 - .../assets/js/main.4670ac01.js.LICENSE.txt | 64 - zh-Hans/assets/js/runtime~main.9166aede.js | 1 - zh-Hans/blog/archive/index.html | 21 - zh-Hans/blog/atom.xml | 124 - .../index.html | 26 - zh-Hans/blog/index.html | 95 - zh-Hans/blog/rss.xml | 114 - zh-Hans/blog/tags/index.html | 21 - zh-Hans/blog/tags/tech/index.html | 26 - zh-Hans/blog/tags/yuan/index.html | 95 - .../vision-of-no-trade-no-life/index.html | 49 - .../index.html | 62 - .../docs/agent-guide/using-hooks/index.html | 166 - .../using-position-manager/index.html | 77 - .../using-technical-indicators/index.html | 60 - .../agent-guide/using-time-series/index.html | 78 - .../docs/agent-guide/what-is-agent/index.html | 46 - .../docs/basics/what-is-account/index.html | 68 - .../basics/what-is-market-data/index.html | 60 - zh-Hans/docs/basics/what-is-order/index.html | 122 - .../docs/basics/what-is-product/index.html | 74 - .../basics/what-is-transfer-order/index.html | 79 - .../docs/category/basic-concepts/index.html | 21 - .../docs/category/getting-start/index.html | 21 - .../docs/category/guide---agent/index.html | 21 - .../docs/category/guide---vendor/index.html | 21 - zh-Hans/docs/category/protocol/index.html | 21 - zh-Hans/docs/category/reference/index.html | 21 - zh-Hans/docs/intro/index.html | Bin 31522 -> 0 bytes zh-Hans/docs/protocol/introduce/index.html | 31 - .../protocol/message-pattern-layer/index.html | 98 - .../docs/protocol/network-layer/index.html | 139 - .../elementary-math-in-trading/index.html | 112 - .../how-to-calculate-margin/index.html | 70 - .../reference/how-to-calculate-pnl/index.html | 71 - .../creating-your-first-strategy/index.html | 146 - .../real-world-trading/index.html | 39 - .../index.html | 127 - .../vendor-account-info/index.html | 32 - .../vendor-historical-market-data/index.html | 30 - .../vendor-historical-order/index.html | 29 - .../vendor-guide/vendor-product/index.html | 30 - .../vendor-realtime-market-data/index.html | 29 - .../vendor-trading-interfaces/index.html | 36 - .../vendor-guide/vendor-transfer/index.html | 36 - .../vendor-guide/what-is-vendor/index.html | 59 - zh-Hans/head_script.js | 19 - zh-Hans/img/ai-assistant.svg | 1 - zh-Hans/img/cloud-local.svg | 1 - zh-Hans/img/data-maintenance-7.svg | 1 - zh-Hans/img/docusaurus-social-card.jpg | Bin 55746 -> 0 bytes zh-Hans/img/docusaurus.png | Bin 5142 -> 0 bytes zh-Hans/img/extensions.svg | 1 - zh-Hans/img/favicon.ico | Bin 3626 -> 0 bytes zh-Hans/img/free.svg | 1 - zh-Hans/img/javascript.svg | 1 - zh-Hans/img/logo.svg | 1 - zh-Hans/img/real-world-trading.svg | 1 - zh-Hans/img/security-privacy.svg | 1 - zh-Hans/img/undraw_docusaurus_mountain.svg | 171 - zh-Hans/img/undraw_docusaurus_react.svg | 170 - zh-Hans/img/undraw_docusaurus_tree.svg | 40 - zh-Hans/img/unified-trading-interface.svg | 1 - zh-Hans/img/web-gui.svg | 1 - zh-Hans/img/yuan.svg | 3 - zh-Hans/index.html | 21 - zh-Hans/markdown-page/index.html | 22 - zh-Hans/robots.txt | 2 - zh-Hans/sitemap.xml | 1 - 251 files changed, 87 insertions(+), 257565 deletions(-) rename assets/js/{117edb13.3695f801.js => 117edb13.84e367e3.js} (62%) rename assets/js/{935f2afb.c07faf49.js => 935f2afb.1a9c6ac4.js} (57%) create mode 100644 assets/js/990bd87c.80388cbf.js create mode 100644 assets/js/e6b6016c.a2766b77.js delete mode 100644 assets/js/e6b6016c.daba89e1.js create mode 100644 assets/js/main.89211129.js rename assets/js/{main.f15ba9db.js.LICENSE.txt => main.89211129.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.f15ba9db.js create mode 100644 assets/js/runtime~main.e3cef776.js delete mode 100644 assets/js/runtime~main.f122275b.js create mode 100644 docs/basics/what-is-workspace/index.html delete mode 100644 zh-Hans/404.html delete mode 100644 zh-Hans/assets/css/styles.f7544afe.css delete mode 100644 zh-Hans/assets/images/1-5791fea049cec44e9e70b3b92b2a87bf.jpeg delete mode 100644 zh-Hans/assets/images/2-1ccd99f780c3e70e226cb9e334bbef9d.jpeg delete mode 100644 zh-Hans/assets/images/transfer-network-a74b76a5767f3af6b1b3b53ee78cff05.png delete mode 100644 zh-Hans/assets/js/0.40e99653.js delete mode 100644 zh-Hans/assets/js/01a85c17.6511c697.js delete mode 100644 zh-Hans/assets/js/025e521f.655a5fe6.js delete mode 100644 zh-Hans/assets/js/046ee09f.9866cfa7.js delete mode 100644 zh-Hans/assets/js/05e169a4.25eb78e7.js delete mode 100644 zh-Hans/assets/js/0d16ebe8.63d49bb0.js delete mode 100644 zh-Hans/assets/js/1043bab9.3c9635f5.js delete mode 100644 zh-Hans/assets/js/106ebb2b.d5ada6eb.js delete mode 100644 zh-Hans/assets/js/119.579fd7a9.js delete mode 100644 zh-Hans/assets/js/11f5956c.e5bcf747.js delete mode 100644 zh-Hans/assets/js/1426.ba478e85.js delete mode 100644 zh-Hans/assets/js/1426.ba478e85.js.LICENSE.txt delete mode 100644 zh-Hans/assets/js/143.58bdc44b.js delete mode 100644 zh-Hans/assets/js/14eb3368.517e4f8e.js delete mode 100644 zh-Hans/assets/js/16457d44.8e098b57.js delete mode 100644 zh-Hans/assets/js/1709.38b6c703.js delete mode 100644 zh-Hans/assets/js/174.27c899bf.js delete mode 100644 zh-Hans/assets/js/17896441.4bcd12ad.js delete mode 100644 zh-Hans/assets/js/190.7058db84.js delete mode 100644 zh-Hans/assets/js/1df93b7f.39309b9e.js delete mode 100644 zh-Hans/assets/js/1f35b80c.d1fec2ef.js delete mode 100644 zh-Hans/assets/js/1f391b9e.f96ea52d.js delete mode 100644 zh-Hans/assets/js/217.39ffad78.js delete mode 100644 zh-Hans/assets/js/2434.9c97eac7.js delete mode 100644 zh-Hans/assets/js/26a6615c.5013f8c8.js delete mode 100644 zh-Hans/assets/js/2789.565504e7.js delete mode 100644 zh-Hans/assets/js/295.27dcdb29.js delete mode 100644 zh-Hans/assets/js/2bf541da.4da54f85.js delete mode 100644 zh-Hans/assets/js/311.8e26b5d3.js delete mode 100644 zh-Hans/assets/js/3373.29482352.js delete mode 100644 zh-Hans/assets/js/340c609b.6912d686.js delete mode 100644 zh-Hans/assets/js/346c4766.6b8f8751.js delete mode 100644 zh-Hans/assets/js/3508.a3689f5c.js delete mode 100644 zh-Hans/assets/js/373.d663388d.js delete mode 100644 zh-Hans/assets/js/3730.10493136.js delete mode 100644 zh-Hans/assets/js/382.298691a4.js delete mode 100644 zh-Hans/assets/js/3939.35f9269e.js delete mode 100644 zh-Hans/assets/js/393be207.03f02ed5.js delete mode 100644 zh-Hans/assets/js/3977e4d7.902fc278.js delete mode 100644 zh-Hans/assets/js/4009.5dc7e8ba.js delete mode 100644 zh-Hans/assets/js/40360d42.b23a2389.js delete mode 100644 zh-Hans/assets/js/4143.a618a45f.js delete mode 100644 zh-Hans/assets/js/434.a5ef08ef.js delete mode 100644 zh-Hans/assets/js/45d20231.daf79ddd.js delete mode 100644 zh-Hans/assets/js/488a1253.7a02480b.js delete mode 100644 zh-Hans/assets/js/48c7a9d6.56095237.js delete mode 100644 zh-Hans/assets/js/4968.6edb6f79.js delete mode 100644 zh-Hans/assets/js/508.56ee5259.js delete mode 100644 zh-Hans/assets/js/5174.8aebf642.js delete mode 100644 zh-Hans/assets/js/5217.2de6b56d.js delete mode 100644 zh-Hans/assets/js/53ad5cb8.1e4715b4.js delete mode 100644 zh-Hans/assets/js/543.4bd50d3e.js delete mode 100644 zh-Hans/assets/js/546.692cdfc6.js delete mode 100644 zh-Hans/assets/js/5546.7b262fed.js delete mode 100644 zh-Hans/assets/js/578.7c67ecf1.js delete mode 100644 zh-Hans/assets/js/578.dc37ce7b.js delete mode 100644 zh-Hans/assets/js/589.227624d5.js delete mode 100644 zh-Hans/assets/js/589.7971ba41.js delete mode 100644 zh-Hans/assets/js/5b2a233e.89a31517.js delete mode 100644 zh-Hans/assets/js/5e95c892.dfd08636.js delete mode 100644 zh-Hans/assets/js/6.5017891d.js delete mode 100644 zh-Hans/assets/js/61e28b33.a1bf0242.js delete mode 100644 zh-Hans/assets/js/6540.18b982ce.js delete mode 100644 zh-Hans/assets/js/6844.a80bf7f7.js delete mode 100644 zh-Hans/assets/js/6875c492.f3a0651b.js delete mode 100644 zh-Hans/assets/js/699b3950.d1613b1e.js delete mode 100644 zh-Hans/assets/js/7006.409db86f.js delete mode 100644 zh-Hans/assets/js/718.e4553b7c.js delete mode 100644 zh-Hans/assets/js/7190.f1edd475.js delete mode 100644 zh-Hans/assets/js/7321f337.d16a7fb7.js delete mode 100644 zh-Hans/assets/js/7367.3fe0eadb.js delete mode 100644 zh-Hans/assets/js/757be3fa.efedd4ba.js delete mode 100644 zh-Hans/assets/js/7602be68.1b718129.js delete mode 100644 zh-Hans/assets/js/7673.f2d4d072.js delete mode 100644 zh-Hans/assets/js/773a5ec1.00a75037.js delete mode 100644 zh-Hans/assets/js/7808.9f072408.js delete mode 100644 zh-Hans/assets/js/79d1ef9f.40fb0ff0.js delete mode 100644 zh-Hans/assets/js/7b51b391.69a8f976.js delete mode 100644 zh-Hans/assets/js/7d758ffa.b9ef3f59.js delete mode 100644 zh-Hans/assets/js/808.d3953d28.js delete mode 100644 zh-Hans/assets/js/814f3328.02755157.js delete mode 100644 zh-Hans/assets/js/8295.926a4d81.js delete mode 100644 zh-Hans/assets/js/8295.926a4d81.js.LICENSE.txt delete mode 100644 zh-Hans/assets/js/8311.9273d449.js delete mode 100644 zh-Hans/assets/js/8382.81da9735.js delete mode 100644 zh-Hans/assets/js/841707d5.76cfebb9.js delete mode 100644 zh-Hans/assets/js/8543.470d33f7.js delete mode 100644 zh-Hans/assets/js/8718.c5724e7c.js delete mode 100644 zh-Hans/assets/js/8987.2572156f.js delete mode 100644 zh-Hans/assets/js/9.9e00c584.js delete mode 100644 zh-Hans/assets/js/9292.a463f1b0.js delete mode 100644 zh-Hans/assets/js/935f2afb.ddc4ceaf.js delete mode 100644 zh-Hans/assets/js/939.a5fa2f84.js delete mode 100644 zh-Hans/assets/js/968.a630d3c2.js delete mode 100644 zh-Hans/assets/js/9e4087bc.06140a3c.js delete mode 100644 zh-Hans/assets/js/9f1e3e5b.75df9411.js delete mode 100644 zh-Hans/assets/js/a401270e.d018e007.js delete mode 100644 zh-Hans/assets/js/a61e36ae.f78fd451.js delete mode 100644 zh-Hans/assets/js/a6aa9e1f.5fb44d7e.js delete mode 100644 zh-Hans/assets/js/a7bd4aaa.911017b0.js delete mode 100644 zh-Hans/assets/js/a94703ab.8ee806d2.js delete mode 100644 zh-Hans/assets/js/a95d02d0.da5a8025.js delete mode 100644 zh-Hans/assets/js/bfa8e98c.267efaf8.js delete mode 100644 zh-Hans/assets/js/c118d91b.80d22472.js delete mode 100644 zh-Hans/assets/js/c3ab1e6d.70572fbb.js delete mode 100644 zh-Hans/assets/js/c5ac5150.12a48083.js delete mode 100644 zh-Hans/assets/js/ccc49370.1ee388cf.js delete mode 100644 zh-Hans/assets/js/cf20b6b9.3d2ce46c.js delete mode 100644 zh-Hans/assets/js/d81ab594.d2c397f4.js delete mode 100644 zh-Hans/assets/js/d9176e76.5b46ae48.js delete mode 100644 zh-Hans/assets/js/db7edad6.67e2397b.js delete mode 100644 zh-Hans/assets/js/e016760f.dd8d6b01.js delete mode 100644 zh-Hans/assets/js/e01b06fd.b2dfef96.js delete mode 100644 zh-Hans/assets/js/e54a13a0.17d705b9.js delete mode 100644 zh-Hans/assets/js/ebeb6efd.23aad273.js delete mode 100644 zh-Hans/assets/js/f01d01d8.90e9db82.js delete mode 100644 zh-Hans/assets/js/f4fdbd70.b158bc6c.js delete mode 100644 zh-Hans/assets/js/f50e287c.e35c05bc.js delete mode 100644 zh-Hans/assets/js/fb59e806.7e6f3b24.js delete mode 100644 zh-Hans/assets/js/main.4670ac01.js delete mode 100644 zh-Hans/assets/js/main.4670ac01.js.LICENSE.txt delete mode 100644 zh-Hans/assets/js/runtime~main.9166aede.js delete mode 100644 zh-Hans/blog/archive/index.html delete mode 100644 zh-Hans/blog/atom.xml delete mode 100644 zh-Hans/blog/do-we-really-need-python-for-quant/index.html delete mode 100644 zh-Hans/blog/index.html delete mode 100644 zh-Hans/blog/rss.xml delete mode 100644 zh-Hans/blog/tags/index.html delete mode 100644 zh-Hans/blog/tags/tech/index.html delete mode 100644 zh-Hans/blog/tags/yuan/index.html delete mode 100644 zh-Hans/blog/vision-of-no-trade-no-life/index.html delete mode 100644 zh-Hans/blog/why-we-need-stardard-for-vendors/index.html delete mode 100644 zh-Hans/docs/agent-guide/using-hooks/index.html delete mode 100644 zh-Hans/docs/agent-guide/using-position-manager/index.html delete mode 100644 zh-Hans/docs/agent-guide/using-technical-indicators/index.html delete mode 100644 zh-Hans/docs/agent-guide/using-time-series/index.html delete mode 100644 zh-Hans/docs/agent-guide/what-is-agent/index.html delete mode 100644 zh-Hans/docs/basics/what-is-account/index.html delete mode 100644 zh-Hans/docs/basics/what-is-market-data/index.html delete mode 100644 zh-Hans/docs/basics/what-is-order/index.html delete mode 100644 zh-Hans/docs/basics/what-is-product/index.html delete mode 100644 zh-Hans/docs/basics/what-is-transfer-order/index.html delete mode 100644 zh-Hans/docs/category/basic-concepts/index.html delete mode 100644 zh-Hans/docs/category/getting-start/index.html delete mode 100644 zh-Hans/docs/category/guide---agent/index.html delete mode 100644 zh-Hans/docs/category/guide---vendor/index.html delete mode 100644 zh-Hans/docs/category/protocol/index.html delete mode 100644 zh-Hans/docs/category/reference/index.html delete mode 100644 zh-Hans/docs/intro/index.html delete mode 100644 zh-Hans/docs/protocol/introduce/index.html delete mode 100644 zh-Hans/docs/protocol/message-pattern-layer/index.html delete mode 100644 zh-Hans/docs/protocol/network-layer/index.html delete mode 100644 zh-Hans/docs/reference/elementary-math-in-trading/index.html delete mode 100644 zh-Hans/docs/reference/how-to-calculate-margin/index.html delete mode 100644 zh-Hans/docs/reference/how-to-calculate-pnl/index.html delete mode 100644 zh-Hans/docs/tutorial-basics/creating-your-first-strategy/index.html delete mode 100644 zh-Hans/docs/tutorial-basics/real-world-trading/index.html delete mode 100644 zh-Hans/docs/vendor-guide/cross-language-interoperability/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-account-info/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-historical-market-data/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-historical-order/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-product/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-realtime-market-data/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-trading-interfaces/index.html delete mode 100644 zh-Hans/docs/vendor-guide/vendor-transfer/index.html delete mode 100644 zh-Hans/docs/vendor-guide/what-is-vendor/index.html delete mode 100644 zh-Hans/head_script.js delete mode 100644 zh-Hans/img/ai-assistant.svg delete mode 100644 zh-Hans/img/cloud-local.svg delete mode 100644 zh-Hans/img/data-maintenance-7.svg delete mode 100644 zh-Hans/img/docusaurus-social-card.jpg delete mode 100644 zh-Hans/img/docusaurus.png delete mode 100644 zh-Hans/img/extensions.svg delete mode 100644 zh-Hans/img/favicon.ico delete mode 100644 zh-Hans/img/free.svg delete mode 100644 zh-Hans/img/javascript.svg delete mode 100644 zh-Hans/img/logo.svg delete mode 100644 zh-Hans/img/real-world-trading.svg delete mode 100644 zh-Hans/img/security-privacy.svg delete mode 100644 zh-Hans/img/undraw_docusaurus_mountain.svg delete mode 100644 zh-Hans/img/undraw_docusaurus_react.svg delete mode 100644 zh-Hans/img/undraw_docusaurus_tree.svg delete mode 100644 zh-Hans/img/unified-trading-interface.svg delete mode 100644 zh-Hans/img/web-gui.svg delete mode 100644 zh-Hans/img/yuan.svg delete mode 100644 zh-Hans/index.html delete mode 100644 zh-Hans/markdown-page/index.html delete mode 100644 zh-Hans/robots.txt delete mode 100644 zh-Hans/sitemap.xml diff --git a/404.html b/404.html index 808e997..1918467 100644 --- a/404.html +++ b/404.html @@ -12,8 +12,8 @@ - - + +
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.

diff --git a/assets/js/117edb13.3695f801.js b/assets/js/117edb13.84e367e3.js similarity index 62% rename from assets/js/117edb13.3695f801.js rename to assets/js/117edb13.84e367e3.js index e13c40b..75958fd 100644 --- a/assets/js/117edb13.3695f801.js +++ b/assets/js/117edb13.84e367e3.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[5530],{4999:e=>{e.exports=JSON.parse('{"title":"Guide - Agent","slug":"/category/guide---agent","permalink":"/docs/category/guide---agent","navigation":{"previous":{"title":"Transfer","permalink":"/docs/basics/what-is-transfer-order"},"next":{"title":"What is Agent","permalink":"/docs/agent-guide/what-is-agent"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[5530],{4999:e=>{e.exports=JSON.parse('{"title":"Guide - Agent","slug":"/category/guide---agent","permalink":"/docs/category/guide---agent","navigation":{"previous":{"title":"Workspace","permalink":"/docs/basics/what-is-workspace"},"next":{"title":"What is Agent","permalink":"/docs/agent-guide/what-is-agent"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.c07faf49.js b/assets/js/935f2afb.1a9c6ac4.js similarity index 57% rename from assets/js/935f2afb.c07faf49.js rename to assets/js/935f2afb.1a9c6ac4.js index ff93593..a08da08 100644 --- a/assets/js/935f2afb.c07faf49.js +++ b/assets/js/935f2afb.1a9c6ac4.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).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":{"docsSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Getting Start","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating your first strategy","href":"/docs/tutorial-basics/creating-your-first-strategy","docId":"tutorial-basics/creating-your-first-strategy","unlisted":false},{"type":"link","label":"Real world trading","href":"/docs/tutorial-basics/real-world-trading","docId":"tutorial-basics/real-world-trading","unlisted":false}],"href":"/docs/category/getting-start"},{"type":"category","label":"Basic Concepts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Product","href":"/docs/basics/what-is-product","docId":"basics/what-is-product","unlisted":false},{"type":"link","label":"Account","href":"/docs/basics/what-is-account","docId":"basics/what-is-account","unlisted":false},{"type":"link","label":"Orders","href":"/docs/basics/what-is-order","docId":"basics/what-is-order","unlisted":false},{"type":"link","label":"Market Data","href":"/docs/basics/what-is-market-data","docId":"basics/what-is-market-data","unlisted":false},{"type":"link","label":"Transfer","href":"/docs/basics/what-is-transfer-order","docId":"basics/what-is-transfer-order","unlisted":false}],"href":"/docs/category/basic-concepts"},{"type":"category","label":"Guide - Agent","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"What is Agent","href":"/docs/agent-guide/what-is-agent","docId":"agent-guide/what-is-agent","unlisted":false},{"type":"link","label":"Using Hooks","href":"/docs/agent-guide/using-hooks","docId":"agent-guide/using-hooks","unlisted":false},{"type":"link","label":"Using Position Manager","href":"/docs/agent-guide/using-position-manager","docId":"agent-guide/using-position-manager","unlisted":false},{"type":"link","label":"Using Time Series","href":"/docs/agent-guide/using-time-series","docId":"agent-guide/using-time-series","unlisted":false},{"type":"link","label":"Using Technical Indicators","href":"/docs/agent-guide/using-technical-indicators","docId":"agent-guide/using-technical-indicators","unlisted":false}],"href":"/docs/category/guide---agent"},{"type":"category","label":"Guide - Vendor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"What is a Vendor","href":"/docs/vendor-guide/what-is-vendor","docId":"vendor-guide/what-is-vendor","unlisted":false},{"type":"link","label":"Cross-Language Interoperability Guide","href":"/docs/vendor-guide/cross-language-interoperability","docId":"vendor-guide/cross-language-interoperability","unlisted":false},{"type":"link","label":"Providing Account Information","href":"/docs/vendor-guide/vendor-account-info","docId":"vendor-guide/vendor-account-info","unlisted":false},{"type":"link","label":"Providing Historical Market Data","href":"/docs/vendor-guide/vendor-historical-market-data","docId":"vendor-guide/vendor-historical-market-data","unlisted":false},{"type":"link","label":"Providing Historical Order Data","href":"/docs/vendor-guide/vendor-historical-order","docId":"vendor-guide/vendor-historical-order","unlisted":false},{"type":"link","label":"Providing Product Specifications","href":"/docs/vendor-guide/vendor-product","docId":"vendor-guide/vendor-product","unlisted":false},{"type":"link","label":"Providing Real-Time Market Data","href":"/docs/vendor-guide/vendor-realtime-market-data","docId":"vendor-guide/vendor-realtime-market-data","unlisted":false},{"type":"link","label":"Providing Trading Interface","href":"/docs/vendor-guide/vendor-trading-interfaces","docId":"vendor-guide/vendor-trading-interfaces","unlisted":false},{"type":"link","label":"Providing Transfer Interface","href":"/docs/vendor-guide/vendor-transfer","docId":"vendor-guide/vendor-transfer","unlisted":false}],"href":"/docs/category/guide---vendor"},{"type":"category","label":"Protocol","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/protocol/introduce","docId":"protocol/introduce","unlisted":false},{"type":"link","label":"Network Layer","href":"/docs/protocol/network-layer","docId":"protocol/network-layer","unlisted":false},{"type":"link","label":"Message Mode Layer","href":"/docs/protocol/message-pattern-layer","docId":"protocol/message-pattern-layer","unlisted":false}],"href":"/docs/category/protocol"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to calculate PnL","href":"/docs/reference/how-to-calculate-pnl","docId":"reference/how-to-calculate-pnl","unlisted":false},{"type":"link","label":"How to calculate margin","href":"/docs/reference/how-to-calculate-margin","docId":"reference/how-to-calculate-margin","unlisted":false},{"type":"link","label":"Elementary Math in Trading","href":"/docs/reference/elementary-math-in-trading","docId":"reference/elementary-math-in-trading","unlisted":false}],"href":"/docs/category/reference"}]},"docs":{"agent-guide/using-hooks":{"id":"agent-guide/using-hooks","title":"Using Hooks","description":"\\"Hooks\\", or called \\"Composable Functions\\", are the building blocks of Agent.","sidebar":"docsSidebar"},"agent-guide/using-position-manager":{"id":"agent-guide/using-position-manager","title":"Using Position Manager","description":"Position Manager helps managing positions by order operations, which is one of advanced forms of hook.","sidebar":"docsSidebar"},"agent-guide/using-technical-indicators":{"id":"agent-guide/using-technical-indicators","title":"Using Technical Indicators","description":"Technical Indicators helps analyzing the time series, which is one of advanced forms of hook.","sidebar":"docsSidebar"},"agent-guide/using-time-series":{"id":"agent-guide/using-time-series","title":"Using Time Series","description":"Time Series is an important part of Quantitative Trading Analysis.","sidebar":"docsSidebar"},"agent-guide/what-is-agent":{"id":"agent-guide/what-is-agent","title":"What is Agent","description":"Agent is a bot that process the data and give trading signals. In other words, it is a trading strategy model.","sidebar":"docsSidebar"},"basics/what-is-account":{"id":"basics/what-is-account","title":"Account","description":"You may have used a \\"bank account\\" before. It is essentially a simplified version of an account, involving only changes in balance.","sidebar":"docsSidebar"},"basics/what-is-market-data":{"id":"basics/what-is-market-data","title":"Market Data","description":"Market Data refers to information that is highly time-sensitive and independent of the user. It represents the knowledge acquired by a user after a certain point in time, which could be the price at a specific moment or statistical data over a period. Market Data comes in various forms, including OHLC-V, tick-by-tick trades, product market summaries, order books, and financial events.","sidebar":"docsSidebar"},"basics/what-is-order":{"id":"basics/what-is-order","title":"Orders","description":"Orders refer to the buy or sell instructions submitted by investors to the exchange. Orders are the starting point of trading. The purpose of an order is to modify an account.","sidebar":"docsSidebar"},"basics/what-is-product":{"id":"basics/what-is-product","title":"Product","description":"A product is a set of information which describes a financial instrument. It is used to identify a financial instrument in the trading system.","sidebar":"docsSidebar"},"basics/what-is-transfer-order":{"id":"basics/what-is-transfer-order","title":"Transfer","description":"Transfer refers to the process of moving a specified amount of a designated currency from a creditor account to a debtor account.","sidebar":"docsSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Motivation","sidebar":"docsSidebar"},"protocol/introduce":{"id":"protocol/introduce","title":"Introduction","description":"This is the technical reference for the protocols used by the system. It is intended to provide guidance for developers and system administrators.","sidebar":"docsSidebar"},"protocol/message-pattern-layer":{"id":"protocol/message-pattern-layer","title":"Message Mode Layer","description":"Overall, we want Terminals to interact in an orderly and polite manner, so when dividing responsibilities, the goal is to minimize the total communication cost within the Host.","sidebar":"docsSidebar"},"protocol/network-layer":{"id":"protocol/network-layer","title":"Network Layer","description":"The Host is a WebSocket server that listens for incoming connections from Terminals.","sidebar":"docsSidebar"},"reference/elementary-math-in-trading":{"id":"reference/elementary-math-in-trading","title":"Elementary Math in Trading","description":"You need to have elementary algebra knowledge to understand this article.","sidebar":"docsSidebar"},"reference/how-to-calculate-margin":{"id":"reference/how-to-calculate-margin","title":"How to calculate margin","description":"Each market has its own unique margin system, and the margin calculation method introduced in this article may not be applicable to all markets. However, the standard margin introduced in this article is a basic version, and the current market margin system is based on this evolution. In actual trading, the account margin given by the exchange clearing center should be used as the standard.","sidebar":"docsSidebar"},"reference/how-to-calculate-pnl":{"id":"reference/how-to-calculate-pnl","title":"How to calculate PnL","description":"$\\\\text = \\\\text{Standard PnL} + \\\\text{PnL Correction}$","sidebar":"docsSidebar"},"tutorial-basics/creating-your-first-strategy":{"id":"tutorial-basics/creating-your-first-strategy","title":"Creating your first strategy","description":"Claude Elwood Shannon was an American mathematician, electrical engineer, and cryptographer known as \\"the father of information theory\\". He found a simple investment strategy that can be used to beat the market. The strategy is called the Shannon\'s Rebalance, Shannon\'s Demon or Shannon\'s Infinite Grid_.","sidebar":"docsSidebar"},"tutorial-basics/real-world-trading":{"id":"tutorial-basics/real-world-trading","title":"Real world trading","description":"It\'s a simple context diagram for real world trading.","sidebar":"docsSidebar"},"vendor-guide/cross-language-interoperability":{"id":"vendor-guide/cross-language-interoperability","title":"Cross-Language Interoperability Guide","description":"If the provider SDK\'s language is not JavaScript or a common application layer protocol like HTTP, things can get quite complex.","sidebar":"docsSidebar"},"vendor-guide/vendor-account-info":{"id":"vendor-guide/vendor-account-info","title":"Providing Account Information","description":"When integrating with an exchange, the vendor needs to convert the account opened on the exchange into the standard account information of Yuan.","sidebar":"docsSidebar"},"vendor-guide/vendor-historical-market-data":{"id":"vendor-guide/vendor-historical-market-data","title":"Providing Historical Market Data","description":"Market data comes in several different specific types, but they can all be summarized as queries for a specific type, within a specific time range, and for a specific sequence.","sidebar":"docsSidebar"},"vendor-guide/vendor-historical-order":{"id":"vendor-guide/vendor-historical-order","title":"Providing Historical Order Data","description":"An order can be summarized as a query for a specific account within a specific time range, and it is also a problem of sequential data collection. Similar to historical market data, suppliers need to provide historical order data.","sidebar":"docsSidebar"},"vendor-guide/vendor-product":{"id":"vendor-guide/vendor-product","title":"Providing Product Specifications","description":"Vendors are responsible for providing product specification information.","sidebar":"docsSidebar"},"vendor-guide/vendor-realtime-market-data":{"id":"vendor-guide/vendor-realtime-market-data","title":"Providing Real-Time Market Data","description":"Suppliers can provide real-time market data through channels for other terminals to subscribe to.","sidebar":"docsSidebar"},"vendor-guide/vendor-trading-interfaces":{"id":"vendor-guide/vendor-trading-interfaces","title":"Providing Trading Interface","description":"In Yuan, the trading interface refers to the interface used for trading operations with external systems. All trading interfaces revolve around the concept of Order.","sidebar":"docsSidebar"},"vendor-guide/vendor-transfer":{"id":"vendor-guide/vendor-transfer","title":"Providing Transfer Interface","description":"You may need to read Basics / Transfer to deeply understand the basic concepts of transfers in Yuan.","sidebar":"docsSidebar"},"vendor-guide/what-is-vendor":{"id":"vendor-guide/what-is-vendor","title":"What is a Vendor","description":"A Vendor is an extension program in Yuan that connects Yuan to external systems, acting as a bridge between Yuan and these external systems.","sidebar":"docsSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).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":{"docsSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Getting Start","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating your first strategy","href":"/docs/tutorial-basics/creating-your-first-strategy","docId":"tutorial-basics/creating-your-first-strategy","unlisted":false},{"type":"link","label":"Real world trading","href":"/docs/tutorial-basics/real-world-trading","docId":"tutorial-basics/real-world-trading","unlisted":false}],"href":"/docs/category/getting-start"},{"type":"category","label":"Basic Concepts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Product","href":"/docs/basics/what-is-product","docId":"basics/what-is-product","unlisted":false},{"type":"link","label":"Account","href":"/docs/basics/what-is-account","docId":"basics/what-is-account","unlisted":false},{"type":"link","label":"Orders","href":"/docs/basics/what-is-order","docId":"basics/what-is-order","unlisted":false},{"type":"link","label":"Market Data","href":"/docs/basics/what-is-market-data","docId":"basics/what-is-market-data","unlisted":false},{"type":"link","label":"Transfer","href":"/docs/basics/what-is-transfer-order","docId":"basics/what-is-transfer-order","unlisted":false},{"type":"link","label":"Workspace","href":"/docs/basics/what-is-workspace","docId":"basics/what-is-workspace","unlisted":false}],"href":"/docs/category/basic-concepts"},{"type":"category","label":"Guide - Agent","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"What is Agent","href":"/docs/agent-guide/what-is-agent","docId":"agent-guide/what-is-agent","unlisted":false},{"type":"link","label":"Using Hooks","href":"/docs/agent-guide/using-hooks","docId":"agent-guide/using-hooks","unlisted":false},{"type":"link","label":"Using Position Manager","href":"/docs/agent-guide/using-position-manager","docId":"agent-guide/using-position-manager","unlisted":false},{"type":"link","label":"Using Time Series","href":"/docs/agent-guide/using-time-series","docId":"agent-guide/using-time-series","unlisted":false},{"type":"link","label":"Using Technical Indicators","href":"/docs/agent-guide/using-technical-indicators","docId":"agent-guide/using-technical-indicators","unlisted":false}],"href":"/docs/category/guide---agent"},{"type":"category","label":"Guide - Vendor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"What is a Vendor","href":"/docs/vendor-guide/what-is-vendor","docId":"vendor-guide/what-is-vendor","unlisted":false},{"type":"link","label":"Cross-Language Interoperability Guide","href":"/docs/vendor-guide/cross-language-interoperability","docId":"vendor-guide/cross-language-interoperability","unlisted":false},{"type":"link","label":"Providing Account Information","href":"/docs/vendor-guide/vendor-account-info","docId":"vendor-guide/vendor-account-info","unlisted":false},{"type":"link","label":"Providing Historical Market Data","href":"/docs/vendor-guide/vendor-historical-market-data","docId":"vendor-guide/vendor-historical-market-data","unlisted":false},{"type":"link","label":"Providing Historical Order Data","href":"/docs/vendor-guide/vendor-historical-order","docId":"vendor-guide/vendor-historical-order","unlisted":false},{"type":"link","label":"Providing Product Specifications","href":"/docs/vendor-guide/vendor-product","docId":"vendor-guide/vendor-product","unlisted":false},{"type":"link","label":"Providing Real-Time Market Data","href":"/docs/vendor-guide/vendor-realtime-market-data","docId":"vendor-guide/vendor-realtime-market-data","unlisted":false},{"type":"link","label":"Providing Trading Interface","href":"/docs/vendor-guide/vendor-trading-interfaces","docId":"vendor-guide/vendor-trading-interfaces","unlisted":false},{"type":"link","label":"Providing Transfer Interface","href":"/docs/vendor-guide/vendor-transfer","docId":"vendor-guide/vendor-transfer","unlisted":false}],"href":"/docs/category/guide---vendor"},{"type":"category","label":"Protocol","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/protocol/introduce","docId":"protocol/introduce","unlisted":false},{"type":"link","label":"Network Layer","href":"/docs/protocol/network-layer","docId":"protocol/network-layer","unlisted":false},{"type":"link","label":"Message Mode Layer","href":"/docs/protocol/message-pattern-layer","docId":"protocol/message-pattern-layer","unlisted":false}],"href":"/docs/category/protocol"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to calculate PnL","href":"/docs/reference/how-to-calculate-pnl","docId":"reference/how-to-calculate-pnl","unlisted":false},{"type":"link","label":"How to calculate margin","href":"/docs/reference/how-to-calculate-margin","docId":"reference/how-to-calculate-margin","unlisted":false},{"type":"link","label":"Elementary Math in Trading","href":"/docs/reference/elementary-math-in-trading","docId":"reference/elementary-math-in-trading","unlisted":false}],"href":"/docs/category/reference"}]},"docs":{"agent-guide/using-hooks":{"id":"agent-guide/using-hooks","title":"Using Hooks","description":"\\"Hooks\\", or called \\"Composable Functions\\", are the building blocks of Agent.","sidebar":"docsSidebar"},"agent-guide/using-position-manager":{"id":"agent-guide/using-position-manager","title":"Using Position Manager","description":"Position Manager helps managing positions by order operations, which is one of advanced forms of hook.","sidebar":"docsSidebar"},"agent-guide/using-technical-indicators":{"id":"agent-guide/using-technical-indicators","title":"Using Technical Indicators","description":"Technical Indicators helps analyzing the time series, which is one of advanced forms of hook.","sidebar":"docsSidebar"},"agent-guide/using-time-series":{"id":"agent-guide/using-time-series","title":"Using Time Series","description":"Time Series is an important part of Quantitative Trading Analysis.","sidebar":"docsSidebar"},"agent-guide/what-is-agent":{"id":"agent-guide/what-is-agent","title":"What is Agent","description":"Agent is a bot that process the data and give trading signals. In other words, it is a trading strategy model.","sidebar":"docsSidebar"},"basics/what-is-account":{"id":"basics/what-is-account","title":"Account","description":"You may have used a \\"bank account\\" before. It is essentially a simplified version of an account, involving only changes in balance.","sidebar":"docsSidebar"},"basics/what-is-market-data":{"id":"basics/what-is-market-data","title":"Market Data","description":"Market Data refers to information that is highly time-sensitive and independent of the user. It represents the knowledge acquired by a user after a certain point in time, which could be the price at a specific moment or statistical data over a period. Market Data comes in various forms, including OHLC-V, tick-by-tick trades, product market summaries, order books, and financial events.","sidebar":"docsSidebar"},"basics/what-is-order":{"id":"basics/what-is-order","title":"Orders","description":"Orders refer to the buy or sell instructions submitted by investors to the exchange. Orders are the starting point of trading. The purpose of an order is to modify an account.","sidebar":"docsSidebar"},"basics/what-is-product":{"id":"basics/what-is-product","title":"Product","description":"A product is a set of information which describes a financial instrument. It is used to identify a financial instrument in the trading system.","sidebar":"docsSidebar"},"basics/what-is-transfer-order":{"id":"basics/what-is-transfer-order","title":"Transfer","description":"Transfer refers to the process of moving a specified amount of a designated currency from a creditor account to a debtor account.","sidebar":"docsSidebar"},"basics/what-is-workspace":{"id":"basics/what-is-workspace","title":"Workspace","description":"Workspace is a file directory that centrally stores user data. It is similar to the concept of a disk in traditional operating systems.","sidebar":"docsSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Motivation","sidebar":"docsSidebar"},"protocol/introduce":{"id":"protocol/introduce","title":"Introduction","description":"This is the technical reference for the protocols used by the system. It is intended to provide guidance for developers and system administrators.","sidebar":"docsSidebar"},"protocol/message-pattern-layer":{"id":"protocol/message-pattern-layer","title":"Message Mode Layer","description":"Overall, we want Terminals to interact in an orderly and polite manner, so when dividing responsibilities, the goal is to minimize the total communication cost within the Host.","sidebar":"docsSidebar"},"protocol/network-layer":{"id":"protocol/network-layer","title":"Network Layer","description":"The Host is a WebSocket server that listens for incoming connections from Terminals.","sidebar":"docsSidebar"},"reference/elementary-math-in-trading":{"id":"reference/elementary-math-in-trading","title":"Elementary Math in Trading","description":"You need to have elementary algebra knowledge to understand this article.","sidebar":"docsSidebar"},"reference/how-to-calculate-margin":{"id":"reference/how-to-calculate-margin","title":"How to calculate margin","description":"Each market has its own unique margin system, and the margin calculation method introduced in this article may not be applicable to all markets. However, the standard margin introduced in this article is a basic version, and the current market margin system is based on this evolution. In actual trading, the account margin given by the exchange clearing center should be used as the standard.","sidebar":"docsSidebar"},"reference/how-to-calculate-pnl":{"id":"reference/how-to-calculate-pnl","title":"How to calculate PnL","description":"$\\\\text = \\\\text{Standard PnL} + \\\\text{PnL Correction}$","sidebar":"docsSidebar"},"tutorial-basics/creating-your-first-strategy":{"id":"tutorial-basics/creating-your-first-strategy","title":"Creating your first strategy","description":"Claude Elwood Shannon was an American mathematician, electrical engineer, and cryptographer known as \\"the father of information theory\\". He found a simple investment strategy that can be used to beat the market. The strategy is called the Shannon\'s Rebalance, Shannon\'s Demon or Shannon\'s Infinite Grid_.","sidebar":"docsSidebar"},"tutorial-basics/real-world-trading":{"id":"tutorial-basics/real-world-trading","title":"Real world trading","description":"It\'s a simple context diagram for real world trading.","sidebar":"docsSidebar"},"vendor-guide/cross-language-interoperability":{"id":"vendor-guide/cross-language-interoperability","title":"Cross-Language Interoperability Guide","description":"If the provider SDK\'s language is not JavaScript or a common application layer protocol like HTTP, things can get quite complex.","sidebar":"docsSidebar"},"vendor-guide/vendor-account-info":{"id":"vendor-guide/vendor-account-info","title":"Providing Account Information","description":"When integrating with an exchange, the vendor needs to convert the account opened on the exchange into the standard account information of Yuan.","sidebar":"docsSidebar"},"vendor-guide/vendor-historical-market-data":{"id":"vendor-guide/vendor-historical-market-data","title":"Providing Historical Market Data","description":"Market data comes in several different specific types, but they can all be summarized as queries for a specific type, within a specific time range, and for a specific sequence.","sidebar":"docsSidebar"},"vendor-guide/vendor-historical-order":{"id":"vendor-guide/vendor-historical-order","title":"Providing Historical Order Data","description":"An order can be summarized as a query for a specific account within a specific time range, and it is also a problem of sequential data collection. Similar to historical market data, suppliers need to provide historical order data.","sidebar":"docsSidebar"},"vendor-guide/vendor-product":{"id":"vendor-guide/vendor-product","title":"Providing Product Specifications","description":"Vendors are responsible for providing product specification information.","sidebar":"docsSidebar"},"vendor-guide/vendor-realtime-market-data":{"id":"vendor-guide/vendor-realtime-market-data","title":"Providing Real-Time Market Data","description":"Suppliers can provide real-time market data through channels for other terminals to subscribe to.","sidebar":"docsSidebar"},"vendor-guide/vendor-trading-interfaces":{"id":"vendor-guide/vendor-trading-interfaces","title":"Providing Trading Interface","description":"In Yuan, the trading interface refers to the interface used for trading operations with external systems. All trading interfaces revolve around the concept of Order.","sidebar":"docsSidebar"},"vendor-guide/vendor-transfer":{"id":"vendor-guide/vendor-transfer","title":"Providing Transfer Interface","description":"You may need to read Basics / Transfer to deeply understand the basic concepts of transfers in Yuan.","sidebar":"docsSidebar"},"vendor-guide/what-is-vendor":{"id":"vendor-guide/what-is-vendor","title":"What is a Vendor","description":"A Vendor is an extension program in Yuan that connects Yuan to external systems, acting as a bridge between Yuan and these external systems.","sidebar":"docsSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/990bd87c.80388cbf.js b/assets/js/990bd87c.80388cbf.js new file mode 100644 index 0000000..fba8a7b --- /dev/null +++ b/assets/js/990bd87c.80388cbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[1368],{8879:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=i(9541),t=i(4317);const r={},o="Workspace",a={id:"basics/what-is-workspace",title:"Workspace",description:"Workspace is a file directory that centrally stores user data. It is similar to the concept of a disk in traditional operating systems.",source:"@site/docs/basics/what-is-workspace.md",sourceDirName:"basics",slug:"/basics/what-is-workspace",permalink:"/docs/basics/what-is-workspace",draft:!1,unlisted:!1,editUrl:"https://github.com/No-Trade-No-Life/Yuan/tree/main/ui/docs/docs/basics/what-is-workspace.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Transfer",permalink:"/docs/basics/what-is-transfer-order"},next:{title:"Guide - Agent",permalink:"/docs/category/guide---agent"}},c={},l=[{value:"Customizing Workspaces",id:"customizing-workspaces",level:2},{value:"Distributions",id:"distributions",level:2},{value:"Workspace Backend",id:"workspace-backend",level:2}];function d(e){const s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"workspace",children:"Workspace"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Workspace"})," is a ",(0,n.jsx)(s.strong,{children:"file directory"})," that centrally stores user data. It is similar to the concept of a disk in traditional operating systems."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Workspace"})," contains files such as user policies, indicators, keys, data, plugins, etc., so its privacy cannot be overemphasized."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Strong Privacy Security"}),": None of the contents in the workspace will be automatically uploaded to the cloud unless the user explicitly performs an upload operation."]}),"\n",(0,n.jsx)(s.p,{children:"Users can create, load, and manage workspaces in the start menu of the navigation bar in Yuan GUI."}),"\n",(0,n.jsx)(s.h2,{id:"customizing-workspaces",children:"Customizing Workspaces"}),"\n",(0,n.jsx)(s.p,{children:"The contents of a workspace are loaded when Yuan GUI starts, so users can store their preferences, plugins, applications, etc., in the workspace."}),"\n",(0,n.jsx)(s.p,{children:"For example, users can switch between different systems by switching workspaces, similar to installing dual systems on a computer. For instance, distinguishing between personal and team workspaces."}),"\n",(0,n.jsx)(s.p,{children:"Users can customize their workspaces just like customizing personal operating systems, including but not limited to:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Customizing themes, desktops, wallpapers"}),"\n",(0,n.jsx)(s.li,{children:"Customizing plugins, applications"}),"\n",(0,n.jsx)(s.li,{children:"Installing third-party distributions, plugins, applications"}),"\n"]}),"\n",(0,n.jsxs)(s.admonition,{type:"warning",children:[(0,n.jsx)(s.p,{children:"Installing third-party distributions, plugins, applications may bring security risks, and users need to bear the risks themselves."}),(0,n.jsx)(s.p,{children:"This requires a security antivirus software similar to that in operating systems to solve the problem, but it is currently missing."}),(0,n.jsx)(s.p,{children:"Therefore, try to install only trusted third-party distributions, plugins, applications."})]}),"\n",(0,n.jsx)(s.h2,{id:"distributions",children:"Distributions"}),"\n",(0,n.jsx)(s.p,{children:"Yuan is a powerful operating system, but it is also too low-level, primitive, and difficult to use, making it suitable only for geek users and not directly for ordinary users."}),"\n",(0,n.jsx)(s.p,{children:"For different user scenarios, it is best to provide specific distributions that are pre-configured with some features for users to use directly."}),"\n",(0,n.jsx)(s.p,{children:"Below are some distributions we provide as references. You can create your own distributions based on your needs."}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"distributions/origin",children:"@yuants/dist-origin"}),": Native distribution ",(0,n.jsx)(s.a,{href:"https://y.ntnl.io?from_npm=1&scope=yuants&name=dist-origin",children:"Click to experience online"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"The essence of a distribution is a workspace, and the essence of a workspace is a file directory and its contents. We can package a workspace into a distribution, and then users can download and unzip it to use. We recommend using the npm package management tool to manage distributions, i.e., distributions will be published to the npm repository, and users can install distributions via npm."}),"\n",(0,n.jsxs)(s.p,{children:["In the Web GUI address parameters, we can specify installing distributions from npm via the ",(0,n.jsx)(s.code,{children:"from_npm"})," parameter. For example, ",(0,n.jsx)(s.code,{children:"https://y.ntnl.io?from_npm=1&scope=yuants&name=dist-origin"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"URL Parameters:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"from_npm"}),": Whether to install the distribution from npm. ",(0,n.jsx)(s.code,{children:"1"})," for yes, blank for no."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"scope"}),": The scope of the npm package, optional parameter."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"name"}),": The name of the npm package, required parameter."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"version"}),": The version of the npm package, in the format of a ",(0,n.jsx)(s.a,{href:"https://semver.org/",children:"semver"})," version range, optional parameter. Defaults to the latest version."]}),"\n"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"// Install the latest version of the @yuants/dist-origin distribution\nhttps://y.ntnl.io?from_npm=1&scope=yuants&name=dist-origin\n\n// Install a specific version (0.0.2) of the @yuants/dist-origin distribution\nhttps://y.ntnl.io?from_npm=1&scope=yuants&name=dist-origin&version=0.0.2\n\n// Install a specific version (>=0.0.2) of the @yuants/dist-origin distribution\nhttps://y.ntnl.io?from_npm=1&scope=yuants&name=dist-origin&version=>=0.0.2\n"})}),"\n",(0,n.jsxs)(s.admonition,{title:"Disclaimer",type:"warning",children:[(0,n.jsx)(s.p,{children:"The security and stability of the distribution depend on the author of the distribution, and users need to bear the risks themselves."}),(0,n.jsx)(s.p,{children:"The risks arising from the misuse of distributions are borne by the publisher of the distribution, the distribution channel, and the user themselves. No Trade No Life does not assume any responsibility."})]}),"\n",(0,n.jsx)(s.h2,{id:"workspace-backend",children:"Workspace Backend"}),"\n",(0,n.jsx)(s.p,{children:"Different workspace backends vary in terms of access speed, persistence, shareability, and compatibility."}),"\n",(0,n.jsx)(s.p,{children:"Users can choose the appropriate backend based on their needs."}),"\n",(0,n.jsx)(s.p,{children:"Currently, Yuan supports the following backends:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"FileSystem"}),"\n",(0,n.jsx)(s.p,{children:"A workspace stored on the local computer, bound to a folder in the local file system."}),"\n",(0,n.jsx)(s.p,{children:"The user needs to select a folder as the workspace and authorize Yuan GUI to access it, and all subsequent operations will be performed within this workspace."}),"\n",(0,n.jsx)(s.p,{children:"Theoretically, it provides the same experience as the local file system!"}),"\n",(0,n.jsx)(s.p,{children:"Opening a local folder, as of September 2024, is still an experimental feature of the browser, supporting only desktop versions of Chrome 86 / Edge 86 / Opera 72 and above. It is temporarily not supported on mobile devices."}),"\n",(0,n.jsxs)(s.p,{children:["Compatibility can be tracked continuously through ",(0,n.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Window/showOpenFilePicker",children:"this page"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"IndexedDB"}),"\n",(0,n.jsx)(s.p,{children:"A workspace stored in the browser's IndexedDB, which is persisted to the local file system."}),"\n",(0,n.jsxs)(s.p,{children:["However, when the user's disk space is insufficient, it may be actively cleared by the native operating system of the user's device. ",(0,n.jsx)(s.strong,{children:"In this case, data may be lost"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"Supported on both desktop and mobile devices by mainstream browsers."}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"In-Memory"}),"\n",(0,n.jsx)(s.p,{children:"A workspace stored in the browser's memory, which is not persisted to the local file system."}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Data will be lost after refreshing."})," Suitable for temporary startup without the need for persistent data. Also suitable for launching third-party distributions from the network."]}),"\n",(0,n.jsx)(s.p,{children:"Obviously, it is supported on all devices."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.admonition,{title:"Other backends planned for construction",type:"note",children:(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"Amazon S3"}),"\n",(0,n.jsxs)(s.p,{children:["The S3 protocol, also known as the Amazon S3 (Simple Storage Service) protocol, is an object storage service protocol provided by Amazon Web Services (AWS).\nThe S3 protocol defines how to interact with the S3 service via HTTP/HTTPS interfaces to store, retrieve, and manage data objects.\nThe S3 protocol has become an ",(0,n.jsx)(s.strong,{children:"industry standard in cloud storage"}),", and many cloud service providers offer storage services compatible with the S3 protocol, such as Aliyun OSS."]}),"\n",(0,n.jsx)(s.p,{children:"A workspace stored in the cloud, bound to the user's cloud storage account."}),"\n",(0,n.jsx)(s.p,{children:"Supports HTTP API, so it is compatible with all devices. However, the speed may be affected by the network environment, and additional network fees may be incurred."}),"\n",(0,n.jsx)(s.p,{children:"The user needs to authorize Yuan GUI to access the cloud storage, and all subsequent operations will be performed within this workspace."}),"\n",(0,n.jsx)(s.p,{children:"Suitable for users who need multi-device synchronization."}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"Terminal Service"}),"\n",(0,n.jsx)(s.p,{children:"The device connects to another terminal within the same host via the host, and this terminal proxies a file system, appearing as a file system."}),"\n",(0,n.jsx)(s.p,{children:"Typically, this terminal is a container or NodeJS service connected to a file system. This terminal is also under your control, so it is privacy-safe."}),"\n",(0,n.jsx)(s.p,{children:"Supports network access, so it is compatible with all devices. However, the speed may be affected by the network environment, and additional network fees may be incurred. Also, other terminals within the host may access this file system, so attention to permission control is needed."}),"\n",(0,n.jsx)(s.p,{children:"Suitable for users who need multi-device synchronization."}),"\n"]}),"\n"]})})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},4317:(e,s,i)=>{i.d(s,{Z:()=>a,a:()=>o});var n=i(3981);const t={},r=n.createContext(t);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6b6016c.a2766b77.js b/assets/js/e6b6016c.a2766b77.js new file mode 100644 index 0000000..73797d5 --- /dev/null +++ b/assets/js/e6b6016c.a2766b77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[9590],{7939:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var t=n(9541),s=n(4317);const i={},o="Transfer",a={id:"basics/what-is-transfer-order",title:"Transfer",description:"Transfer refers to the process of moving a specified amount of a designated currency from a creditor account to a debtor account.",source:"@site/docs/basics/what-is-transfer-order.md",sourceDirName:"basics",slug:"/basics/what-is-transfer-order",permalink:"/docs/basics/what-is-transfer-order",draft:!1,unlisted:!1,editUrl:"https://github.com/No-Trade-No-Life/Yuan/tree/main/ui/docs/docs/basics/what-is-transfer-order.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Market Data",permalink:"/docs/basics/what-is-market-data"},next:{title:"Workspace",permalink:"/docs/basics/what-is-workspace"}},c={},d=[{value:"Execution of Transfers and Transfer Networks",id:"execution-of-transfers-and-transfer-networks",level:2},{value:"Account Terminal",id:"account-terminal",level:3},{value:"Transfer Controller",id:"transfer-controller",level:3},{value:"Account Address Info",id:"account-address-info",level:3},{value:"Transfer Network Info",id:"transfer-network-info",level:3}];function l(e){const r={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h1,{id:"transfer",children:"Transfer"}),"\n",(0,t.jsxs)(r.p,{children:["Transfer refers to the process of moving a specified amount of a designated currency from a ",(0,t.jsx)(r.strong,{children:"creditor account"})," to a ",(0,t.jsx)(r.strong,{children:"debtor account"}),"."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Supports"})," direct transfers between accounts within the same network. For example: transferring USDT on the ERC20 network to another USDT on the ERC20 network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Supports"})," automatic routing for the same currency across different networks. For example: transferring USDT on the ERC20 network to USDT on the TRC20 network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Does not support"})," transfers between different currencies, which requires a trade. For example: transferring USDT to BTC."]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["A ",(0,t.jsx)(r.strong,{children:"Transfer Order"})," is used to describe the specific details of a transfer, including its purpose and status."]}),"\n",(0,t.jsxs)(r.p,{children:["When initiating a transfer order, at least the ",(0,t.jsx)(r.strong,{children:"four essential elements"})," must be specified: creditor account, debtor account, currency name, and transfer amount."]}),"\n",(0,t.jsx)(r.h2,{id:"execution-of-transfers-and-transfer-networks",children:"Execution of Transfers and Transfer Networks"}),"\n",(0,t.jsx)(r.p,{children:"If two accounts are within the same transfer network, they can directly transfer funds to each other. Examples include SWIFT, ACH, Wise, UnionPay, AliPay, and Blockchain."}),"\n",(0,t.jsx)(r.p,{children:"A transfer network consists of three elements:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Network"}),": An abstract concept identified by ",(0,t.jsx)(r.code,{children:"network_id"}),", used to distinguish different transfer networks. The internal workings of the transfer network do not need to be concerned with."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Address"}),": The recipient address within the network, identified by ",(0,t.jsx)(r.code,{children:"address"}),", which always belongs to a specific network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Account"}),": An account consists of multiple addresses belonging to various networks, allowing deposits and withdrawals from these addresses."]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.strong,{children:"Basic assumption of transfer networks: Any two addresses within the same network can transfer funds to each other."})}),"\n",(0,t.jsx)(r.mermaid,{value:"graph LR\n A[Account A] --- A_1[Address1]\n A_1 --- N[Network1]\n B[Account B] --- A_2[Address2]\n A_2 --- N\n C[Account C] --- A_3[Address3]\n A_3 --- N"}),"\n",(0,t.jsx)(r.p,{children:"A real transfer network might look like the following diagram, where red dots represent networks, blue dots represent accounts, and green dots represent addresses."}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"transfer-network",src:n(9554).Z+"",width:"1280",height:"1169"})}),"\n",(0,t.jsx)(r.admonition,{title:"Graph Theory Perspective",type:"note",children:(0,t.jsx)(r.p,{children:"From a graph theory perspective, the transferability between all addresses within the same network forms a complete graph.\nThis complete graph can be equivalently represented as edges from all nodes to a virtual super node."})}),"\n",(0,t.jsx)(r.p,{children:"If funds cannot be directly transferred from the creditor account to the debtor account, a series of intermediate accounts must be used as intermediaries to complete the transfer through various transfer methods."}),"\n",(0,t.jsx)(r.mermaid,{value:"graph LR\nA_1[Account1] --\x3e B_1[Address1]\nB_1 --\x3e N_1[Network1]\nN_1 --\x3e B_2[Address2]\nB_2 --\x3e A_2[Account2]\nA_2 --\x3e N_2[Network2]\nN_2 --\x3e B_3[Address3]\nB_3 --\x3e A_3[Account3]"}),"\n",(0,t.jsx)(r.p,{children:"A transfer requires planning a path from the transfer network graph to serve as the flow path for the funds."}),"\n",(0,t.jsxs)(r.p,{children:["We need to introduce a ",(0,t.jsx)(r.strong,{children:"Transfer Controller"})," to oversee the execution of the transfer process. Additionally, a ",(0,t.jsx)(r.strong,{children:"database"})," is required to persist the transfer order status, ensuring that either party can resume the order after recovering from an unavailable state."]}),"\n",(0,t.jsx)(r.mermaid,{value:"sequenceDiagram\n Initiator ->> Database: Write transfer order\n loop\n Transfer Controller ->> Database: Poll for incomplete transfer orders\n Database ->> Transfer Controller: Incomplete transfer orders\n alt Transfer order is in transfer state\n Transfer Controller ->> Creditor Account: Initiate transfer (TransferApply)\n Creditor Account ->> Transfer Controller: Receipt\n Transfer Controller ->> Database: Save updated order status\n end\n alt Transfer order is in reconciliation state\n Transfer Controller ->> Debtor Account: Initiate reconciliation (TransferEval)\n Debtor Account ->> Transfer Controller: Receipt\n Transfer Controller ->> Database: Save updated order status\n end\n end"}),"\n",(0,t.jsx)(r.h3,{id:"account-terminal",children:"Account Terminal"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["During initialization, write ",(0,t.jsx)(r.strong,{children:"Account Address Info"})," into storage."]}),"\n",(0,t.jsxs)(r.li,{children:['Implement "Transfer" (',(0,t.jsx)(r.code,{children:"TransferApply"}),') and "Reconciliation" (',(0,t.jsx)(r.code,{children:"TransferEval"}),") interfaces for each network."]}),"\n",(0,t.jsxs)(r.li,{children:["The transfer interface initiates a transfer and returns the result synchronously.","\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["The initial state of the transfer is ",(0,t.jsx)(r.code,{children:"INIT"}),"."]}),"\n",(0,t.jsx)(r.li,{children:"Only one step is performed at a time, returning the next state, which can be customized and polled by the controller."}),"\n",(0,t.jsx)(r.li,{children:"If an exception occurs and it is not a special error, the controller is allowed to retry the poll."}),"\n",(0,t.jsxs)(r.li,{children:["After the transfer initiation process is complete, return ",(0,t.jsx)(r.code,{children:"COMPLETE"}),"."]}),"\n",(0,t.jsxs)(r.li,{children:["If an unrecoverable exception occurs, return ",(0,t.jsx)(r.code,{children:"ERROR"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(r.li,{children:"The reconciliation interface queries and confirms whether a specific transfer has been received, returning the result synchronously."}),"\n",(0,t.jsx)(r.li,{children:"Does not handle writing the transfer order status into storage. (This logic is delegated to the controller to simplify the process)"}),"\n"]}),"\n",(0,t.jsx)(r.h3,{id:"transfer-controller",children:"Transfer Controller"}),"\n",(0,t.jsxs)(r.p,{children:["Implemented by ",(0,t.jsx)(r.code,{children:"@yuants/app-transfer-controller"}),", it can be deployed directly."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"Does not handle creating transfer orders, only updating them."}),"\n",(0,t.jsx)(r.li,{children:"Monitors new transfer orders; if there is no planned path, it plans a transfer path for the process and writes it into storage. (Manual optimization of this planning result is allowed)"}),"\n",(0,t.jsx)(r.li,{children:"According to the planned transfer path, sends transfer and reconciliation instructions sequentially to the accounts along the path to ensure the smooth execution of the entire process."}),"\n",(0,t.jsxs)(r.li,{children:["When the transfer or reconciliation interface returns ",(0,t.jsx)(r.code,{children:"ERROR"}),", it determines that recovery through retries is not possible and requires manual intervention, initiating an alarm."]}),"\n",(0,t.jsx)(r.li,{children:"Initiates an alarm when the entire transfer process times out."}),"\n"]}),"\n",(0,t.jsx)(r.h3,{id:"account-address-info",children:"Account Address Info"}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Account Address Info"})," is the information that needs to be written into the database during the initialization of the account terminal."]}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Field Name"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Example Value"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"network_id"})}),(0,t.jsx)(r.td,{children:"Network ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"ERC20"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"address"})}),(0,t.jsx)(r.td,{children:"Address ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"0x123456"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"account_id"})}),(0,t.jsx)(r.td,{children:"Account ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"VENDOR/USER_ID"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"currency"})}),(0,t.jsx)(r.td,{children:"Currency Name"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"USDT"'})})]})]})]}),"\n",(0,t.jsx)(r.h3,{id:"transfer-network-info",children:"Transfer Network Info"}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Transfer Network Info"})," is information that needs to be manually written into the database."]}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Field Name"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Example Value"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"network_id"})}),(0,t.jsx)(r.td,{children:"Network ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"ERC20"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"currency"})}),(0,t.jsx)(r.td,{children:"Currency Name"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"USDT"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"commission"})}),(0,t.jsx)(r.td,{children:"Estimated Fee"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"20"})})]})]})]})]})}function h(e={}){const{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},9554:(e,r,n)=>{n.d(r,{Z:()=>t});const t=n.p+"assets/images/transfer-network-a74b76a5767f3af6b1b3b53ee78cff05.png"},4317:(e,r,n)=>{n.d(r,{Z:()=>a,a:()=>o});var t=n(3981);const s={},i=t.createContext(s);function o(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6b6016c.daba89e1.js b/assets/js/e6b6016c.daba89e1.js deleted file mode 100644 index 89a3757..0000000 --- a/assets/js/e6b6016c.daba89e1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[9590],{7939:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=n(9541),s=n(4317);const i={},o="Transfer",a={id:"basics/what-is-transfer-order",title:"Transfer",description:"Transfer refers to the process of moving a specified amount of a designated currency from a creditor account to a debtor account.",source:"@site/docs/basics/what-is-transfer-order.md",sourceDirName:"basics",slug:"/basics/what-is-transfer-order",permalink:"/docs/basics/what-is-transfer-order",draft:!1,unlisted:!1,editUrl:"https://github.com/No-Trade-No-Life/Yuan/tree/main/ui/docs/docs/basics/what-is-transfer-order.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Market Data",permalink:"/docs/basics/what-is-market-data"},next:{title:"Guide - Agent",permalink:"/docs/category/guide---agent"}},d={},c=[{value:"Execution of Transfers and Transfer Networks",id:"execution-of-transfers-and-transfer-networks",level:2},{value:"Account Terminal",id:"account-terminal",level:3},{value:"Transfer Controller",id:"transfer-controller",level:3},{value:"Account Address Info",id:"account-address-info",level:3},{value:"Transfer Network Info",id:"transfer-network-info",level:3}];function l(e){const r={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h1,{id:"transfer",children:"Transfer"}),"\n",(0,t.jsxs)(r.p,{children:["Transfer refers to the process of moving a specified amount of a designated currency from a ",(0,t.jsx)(r.strong,{children:"creditor account"})," to a ",(0,t.jsx)(r.strong,{children:"debtor account"}),"."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Supports"})," direct transfers between accounts within the same network. For example: transferring USDT on the ERC20 network to another USDT on the ERC20 network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Supports"})," automatic routing for the same currency across different networks. For example: transferring USDT on the ERC20 network to USDT on the TRC20 network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Does not support"})," transfers between different currencies, which requires a trade. For example: transferring USDT to BTC."]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["A ",(0,t.jsx)(r.strong,{children:"Transfer Order"})," is used to describe the specific details of a transfer, including its purpose and status."]}),"\n",(0,t.jsxs)(r.p,{children:["When initiating a transfer order, at least the ",(0,t.jsx)(r.strong,{children:"four essential elements"})," must be specified: creditor account, debtor account, currency name, and transfer amount."]}),"\n",(0,t.jsx)(r.h2,{id:"execution-of-transfers-and-transfer-networks",children:"Execution of Transfers and Transfer Networks"}),"\n",(0,t.jsx)(r.p,{children:"If two accounts are within the same transfer network, they can directly transfer funds to each other. Examples include SWIFT, ACH, Wise, UnionPay, AliPay, and Blockchain."}),"\n",(0,t.jsx)(r.p,{children:"A transfer network consists of three elements:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Network"}),": An abstract concept identified by ",(0,t.jsx)(r.code,{children:"network_id"}),", used to distinguish different transfer networks. The internal workings of the transfer network do not need to be concerned with."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Address"}),": The recipient address within the network, identified by ",(0,t.jsx)(r.code,{children:"address"}),", which always belongs to a specific network."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Account"}),": An account consists of multiple addresses belonging to various networks, allowing deposits and withdrawals from these addresses."]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.strong,{children:"Basic assumption of transfer networks: Any two addresses within the same network can transfer funds to each other."})}),"\n",(0,t.jsx)(r.mermaid,{value:"graph LR\n A[Account A] --- A_1[Address1]\n A_1 --- N[Network1]\n B[Account B] --- A_2[Address2]\n A_2 --- N\n C[Account C] --- A_3[Address3]\n A_3 --- N"}),"\n",(0,t.jsx)(r.p,{children:"A real transfer network might look like the following diagram, where red dots represent networks, blue dots represent accounts, and green dots represent addresses."}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"transfer-network",src:n(9554).Z+"",width:"1280",height:"1169"})}),"\n",(0,t.jsx)(r.admonition,{title:"Graph Theory Perspective",type:"note",children:(0,t.jsx)(r.p,{children:"From a graph theory perspective, the transferability between all addresses within the same network forms a complete graph.\nThis complete graph can be equivalently represented as edges from all nodes to a virtual super node."})}),"\n",(0,t.jsx)(r.p,{children:"If funds cannot be directly transferred from the creditor account to the debtor account, a series of intermediate accounts must be used as intermediaries to complete the transfer through various transfer methods."}),"\n",(0,t.jsx)(r.mermaid,{value:"graph LR\nA_1[Account1] --\x3e B_1[Address1]\nB_1 --\x3e N_1[Network1]\nN_1 --\x3e B_2[Address2]\nB_2 --\x3e A_2[Account2]\nA_2 --\x3e N_2[Network2]\nN_2 --\x3e B_3[Address3]\nB_3 --\x3e A_3[Account3]"}),"\n",(0,t.jsx)(r.p,{children:"A transfer requires planning a path from the transfer network graph to serve as the flow path for the funds."}),"\n",(0,t.jsxs)(r.p,{children:["We need to introduce a ",(0,t.jsx)(r.strong,{children:"Transfer Controller"})," to oversee the execution of the transfer process. Additionally, a ",(0,t.jsx)(r.strong,{children:"database"})," is required to persist the transfer order status, ensuring that either party can resume the order after recovering from an unavailable state."]}),"\n",(0,t.jsx)(r.mermaid,{value:"sequenceDiagram\n Initiator ->> Database: Write transfer order\n loop\n Transfer Controller ->> Database: Poll for incomplete transfer orders\n Database ->> Transfer Controller: Incomplete transfer orders\n alt Transfer order is in transfer state\n Transfer Controller ->> Creditor Account: Initiate transfer (TransferApply)\n Creditor Account ->> Transfer Controller: Receipt\n Transfer Controller ->> Database: Save updated order status\n end\n alt Transfer order is in reconciliation state\n Transfer Controller ->> Debtor Account: Initiate reconciliation (TransferEval)\n Debtor Account ->> Transfer Controller: Receipt\n Transfer Controller ->> Database: Save updated order status\n end\n end"}),"\n",(0,t.jsx)(r.h3,{id:"account-terminal",children:"Account Terminal"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["During initialization, write ",(0,t.jsx)(r.strong,{children:"Account Address Info"})," into storage."]}),"\n",(0,t.jsxs)(r.li,{children:['Implement "Transfer" (',(0,t.jsx)(r.code,{children:"TransferApply"}),') and "Reconciliation" (',(0,t.jsx)(r.code,{children:"TransferEval"}),") interfaces for each network."]}),"\n",(0,t.jsxs)(r.li,{children:["The transfer interface initiates a transfer and returns the result synchronously.","\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["The initial state of the transfer is ",(0,t.jsx)(r.code,{children:"INIT"}),"."]}),"\n",(0,t.jsx)(r.li,{children:"Only one step is performed at a time, returning the next state, which can be customized and polled by the controller."}),"\n",(0,t.jsx)(r.li,{children:"If an exception occurs and it is not a special error, the controller is allowed to retry the poll."}),"\n",(0,t.jsxs)(r.li,{children:["After the transfer initiation process is complete, return ",(0,t.jsx)(r.code,{children:"COMPLETE"}),"."]}),"\n",(0,t.jsxs)(r.li,{children:["If an unrecoverable exception occurs, return ",(0,t.jsx)(r.code,{children:"ERROR"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(r.li,{children:"The reconciliation interface queries and confirms whether a specific transfer has been received, returning the result synchronously."}),"\n",(0,t.jsx)(r.li,{children:"Does not handle writing the transfer order status into storage. (This logic is delegated to the controller to simplify the process)"}),"\n"]}),"\n",(0,t.jsx)(r.h3,{id:"transfer-controller",children:"Transfer Controller"}),"\n",(0,t.jsxs)(r.p,{children:["Implemented by ",(0,t.jsx)(r.code,{children:"@yuants/app-transfer-controller"}),", it can be deployed directly."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"Does not handle creating transfer orders, only updating them."}),"\n",(0,t.jsx)(r.li,{children:"Monitors new transfer orders; if there is no planned path, it plans a transfer path for the process and writes it into storage. (Manual optimization of this planning result is allowed)"}),"\n",(0,t.jsx)(r.li,{children:"According to the planned transfer path, sends transfer and reconciliation instructions sequentially to the accounts along the path to ensure the smooth execution of the entire process."}),"\n",(0,t.jsxs)(r.li,{children:["When the transfer or reconciliation interface returns ",(0,t.jsx)(r.code,{children:"ERROR"}),", it determines that recovery through retries is not possible and requires manual intervention, initiating an alarm."]}),"\n",(0,t.jsx)(r.li,{children:"Initiates an alarm when the entire transfer process times out."}),"\n"]}),"\n",(0,t.jsx)(r.h3,{id:"account-address-info",children:"Account Address Info"}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Account Address Info"})," is the information that needs to be written into the database during the initialization of the account terminal."]}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Field Name"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Example Value"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"network_id"})}),(0,t.jsx)(r.td,{children:"Network ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"ERC20"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"address"})}),(0,t.jsx)(r.td,{children:"Address ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"0x123456"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"account_id"})}),(0,t.jsx)(r.td,{children:"Account ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"VENDOR/USER_ID"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"currency"})}),(0,t.jsx)(r.td,{children:"Currency Name"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"USDT"'})})]})]})]}),"\n",(0,t.jsx)(r.h3,{id:"transfer-network-info",children:"Transfer Network Info"}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Transfer Network Info"})," is information that needs to be manually written into the database."]}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Field Name"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Example Value"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"network_id"})}),(0,t.jsx)(r.td,{children:"Network ID"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"ERC20"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"currency"})}),(0,t.jsx)(r.td,{children:"Currency Name"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:'"USDT"'})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"commission"})}),(0,t.jsx)(r.td,{children:"Estimated Fee"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"20"})})]})]})]})]})}function h(e={}){const{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},9554:(e,r,n)=>{n.d(r,{Z:()=>t});const t=n.p+"assets/images/transfer-network-a74b76a5767f3af6b1b3b53ee78cff05.png"},4317:(e,r,n)=>{n.d(r,{Z:()=>a,a:()=>o});var t=n(3981);const s={},i=t.createContext(s);function o(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.89211129.js b/assets/js/main.89211129.js new file mode 100644 index 0000000..0fa1e58 --- /dev/null +++ b/assets/js/main.89211129.js @@ -0,0 +1,2 @@ +/*! For license information please see main.89211129.js.LICENSE.txt */ +(self.webpackChunk_yuants_docs=self.webpackChunk_yuants_docs||[]).push([[179],{6498:(e,t,n)=>{var r={"./":9309};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6498},6085:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(3981),o=n(9541);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},4289:(e,t,n)=>{"use strict";var r=n(3981),o=n(1112),a=n(6793),i=n(786),l=n(1235);const s=[n(6480),n(9813),n(7463),n(631)];var c=n(522),u=n(8441),d=n(1835),p=n(9541);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var g=n(1616),m=n(2959),h=n(7681),b=n(4796),y=n(877),v=n(8021),w=n(7854),k=n(6443),x=n(3866),S=n(5342);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(g.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,h.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function _(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(C,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(g.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.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 j=n(6085),A=n(8941),N=n(222);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,N.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)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:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?P("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=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(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(0,p.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const I=D,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{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 o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.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 Y=n(5341);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(a.VK,{children:(0,p.jsx)(V,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};O(window.location.pathname).then(l)}},8941:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(3981),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"agent-guide/using-hooks","path":"/docs/agent-guide/using-hooks","sidebar":"docsSidebar"},{"id":"agent-guide/using-position-manager","path":"/docs/agent-guide/using-position-manager","sidebar":"docsSidebar"},{"id":"agent-guide/using-technical-indicators","path":"/docs/agent-guide/using-technical-indicators","sidebar":"docsSidebar"},{"id":"agent-guide/using-time-series","path":"/docs/agent-guide/using-time-series","sidebar":"docsSidebar"},{"id":"agent-guide/what-is-agent","path":"/docs/agent-guide/what-is-agent","sidebar":"docsSidebar"},{"id":"basics/what-is-account","path":"/docs/basics/what-is-account","sidebar":"docsSidebar"},{"id":"basics/what-is-market-data","path":"/docs/basics/what-is-market-data","sidebar":"docsSidebar"},{"id":"basics/what-is-order","path":"/docs/basics/what-is-order","sidebar":"docsSidebar"},{"id":"basics/what-is-product","path":"/docs/basics/what-is-product","sidebar":"docsSidebar"},{"id":"basics/what-is-transfer-order","path":"/docs/basics/what-is-transfer-order","sidebar":"docsSidebar"},{"id":"basics/what-is-workspace","path":"/docs/basics/what-is-workspace","sidebar":"docsSidebar"},{"id":"intro","path":"/docs/intro","sidebar":"docsSidebar"},{"id":"protocol/introduce","path":"/docs/protocol/introduce","sidebar":"docsSidebar"},{"id":"protocol/message-pattern-layer","path":"/docs/protocol/message-pattern-layer","sidebar":"docsSidebar"},{"id":"protocol/network-layer","path":"/docs/protocol/network-layer","sidebar":"docsSidebar"},{"id":"reference/elementary-math-in-trading","path":"/docs/reference/elementary-math-in-trading","sidebar":"docsSidebar"},{"id":"reference/how-to-calculate-margin","path":"/docs/reference/how-to-calculate-margin","sidebar":"docsSidebar"},{"id":"reference/how-to-calculate-pnl","path":"/docs/reference/how-to-calculate-pnl","sidebar":"docsSidebar"},{"id":"tutorial-basics/creating-your-first-strategy","path":"/docs/tutorial-basics/creating-your-first-strategy","sidebar":"docsSidebar"},{"id":"tutorial-basics/real-world-trading","path":"/docs/tutorial-basics/real-world-trading","sidebar":"docsSidebar"},{"id":"vendor-guide/cross-language-interoperability","path":"/docs/vendor-guide/cross-language-interoperability","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-account-info","path":"/docs/vendor-guide/vendor-account-info","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-historical-market-data","path":"/docs/vendor-guide/vendor-historical-market-data","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-historical-order","path":"/docs/vendor-guide/vendor-historical-order","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-product","path":"/docs/vendor-guide/vendor-product","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-realtime-market-data","path":"/docs/vendor-guide/vendor-realtime-market-data","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-trading-interfaces","path":"/docs/vendor-guide/vendor-trading-interfaces","sidebar":"docsSidebar"},{"id":"vendor-guide/vendor-transfer","path":"/docs/vendor-guide/vendor-transfer","sidebar":"docsSidebar"},{"id":"vendor-guide/what-is-vendor","path":"/docs/vendor-guide/what-is-vendor","sidebar":"docsSidebar"},{"id":"/category/getting-start","path":"/docs/category/getting-start","sidebar":"docsSidebar"},{"id":"/category/basic-concepts","path":"/docs/category/basic-concepts","sidebar":"docsSidebar"},{"id":"/category/guide---agent","path":"/docs/category/guide---agent","sidebar":"docsSidebar"},{"id":"/category/guide---vendor","path":"/docs/category/guide---vendor","sidebar":"docsSidebar"},{"id":"/category/protocol","path":"/docs/category/protocol","sidebar":"docsSidebar"},{"id":"/category/reference","path":"/docs/category/reference","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh-Hans"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh-Hans":{"label":"\u7b80\u4f53\u4e2d\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"3.0.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.0.0"}}}');var c=n(9541);const u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},2090:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(3981),o=n(1235),a=n(1616),i=n(3866),l=n(4827),s=n(9541);function c(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(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(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(f,{fallback:()=>(0,s.jsx)(c,{error:t,tryAgain:n}),children:[(0,s.jsx)(a.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{children:(0,s.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,s.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.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??p)(e)}return e??null}}},1235:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1616:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(3981);var r=n(786),o=n(9541);function a(e){return(0,o.jsx)(r.ql,{...e})}},8029:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(3981),o=n(6793),a=n(3866),i=n(2959),l=n(4887),s=n(1235),c=n(9541);const u=r.createContext({collectLink:()=>{}});var d=n(7681);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const C=(0,l.Z)(E),_=E?.replace("pathname://","");let T=void 0!==_?(L=_,b&&(e=>e.startsWith("/"))(L)?k(L):L):void 0;var L;T&&C&&(T=(0,a.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),A=n?o.OL:o.rU,N=s.Z.canUseIntersectionObserver,P=(0,r.useRef)(),R=()=>{j.current||null==T||(window.docusaurus.preload(T),j.current=!0)};(0,r.useEffect)((()=>(!N&&C&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&P.current&&P.current.disconnect()})),[P,T,N,C]);const O=T?.startsWith("#")??!1,D=!T||!C||O;return D||h||x.collectLink(T),D?(0,c.jsx)("a",{ref:S,href:T,...E&&!C&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(A,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{S.current=e,N&&e&&C&&(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:m,activeClassName:g}})}const f=r.forwardRef(p)},1395:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(3981),o=n(9541);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 i=n(7529);function l(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 i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},1444:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},4887:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},7681:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(3981),o=n(2959),a=n(4887);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)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)}},2959:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(3981),o=n(8941);function a(){return(0,r.useContext)(o._)}},1882:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(3981),o=n(6085);function a(){return(0,r.useContext)(o._)}},222:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(3981);const o=n(1235).Z.canUseDOM?r.useLayoutEffect:r.useEffect},5341:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},8591:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(3981),o=n(9541);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),l=(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:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:l,children:t})}},8476:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>p,_r:()=>u,Jo:()=>h,zh:()=>d,yW:()=>g,gB:()=>f});var r=n(8441),o=n(2959),a=n(1444);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.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=function(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})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=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})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&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 a}(t,n,e)}function f(e){return d(e).versions}function g(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8342:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}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(){return i=Object.assign||function(e){for(var t=1;t{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(7140),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},9813:(e,t,n)=>{"use strict";n.r(t);var r=n(6903),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9822),n(6498)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},540:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(3981);var r=n(5881),o=n(1395),a=n(4796),i=n(8029);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_J_4P",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_VMqE"};var s=n(9541);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,a.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...c,id:void 0});const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,s.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},8543:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(3981);const r={iconExternalLink:"iconExternalLink_NXki"};var o=n(9541);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},4827:(e,t,n)=>{"use strict";n.d(t,{Z:()=>st});var r=n(3981),o=n(5881),a=n(2090),i=n(877),l=n(8441),s=n(1395),c=n(8743),u=n(9541);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 g=(0,s.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 m(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7314),b=n(7854);const y={skipToContent:"skipToContent_snqU"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var w=n(4796),k=n(290);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_JO_d"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const C={content:"content_g2ps"};function _(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.Z)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_MjLl",announcementBarPlaceholder:"announcementBarPlaceholder_T62F",announcementBarClose:"announcementBarClose_THbY",announcementBarContent:"announcementBarContent_pc0C"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(_,{className:T.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var j=n(8688),A=n(2971);var N=n(7785),P=n(9052);const R=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.e)(),t=(0,P.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(R.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(R);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(383),z=n(1882);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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_EUDJ",toggleButton:"toggleButton_o75C",darkToggleIcon:"darkToggleIcon__h4y",lightToggleIcon:"lightToggleIcon_Ip7a",toggleButtonDisabled:"toggleButtonDisabled_a1IR"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.Z)(),l=(0,s.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"===r?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.Z)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})]})})}const H=r.memo(q),Z={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_UGuW"};function G(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?Z.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var V=n(7101);function W(){return(0,u.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,j.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.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(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(W,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var K=n(8029),X=n(7681),J=n(4887);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(8543);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(o,{forcePrependBaseUrl:!0}),g=a&&o&&!(0,J.Z)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,g&&(0,u.jsx)(te.Z,{...l&&{width:12,height:12}})]})};return o?(0,u.jsx)(K.Z,{href:s?f:o,...c,...m}):(0,u.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1903),le=n(3252),se=n(2959);function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.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)}}),[s]),(0,u.jsxs)("div",{ref:s,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:l.children??l.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ee,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:a,onClick:i,...s}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ee,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var fe=n(8021);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("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 me="iconLanguage_DzPK";const he=()=>null,be={navbarSearchContainer:"navbarSearchContainer_pfDt"};function ye(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.Z)(n,be.navbarSearchContainer),children:t})}var ve=n(8476),we=n(8823);var ke=n(4828);const xe=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:g}=(0,l.TH)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${o}`;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":""}})),...r],h=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:me}),h]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ye,{className:n,children:(0,u.jsx)(he,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ve.Iw)(r),i=(0,we.vY)(t,r),l=a?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>l||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ve.Iw)(r),i=(0,we.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,we.lO)(r)[0],i=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,l.TH)(),p=(0,ve.Iw)(n),f=(0,ve.gB)(n),{savePreferredVersionName:g}=(0,ke.J)(n),m=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??xe(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...a],h=(0,we.lO)(n)[0],b=t&&m.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&m.length>1?void 0:xe(h).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:b,to:y,items:m,isActive:r?()=>!1:void 0})}};function Ee(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Se[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ce(){const e=(0,j.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ee,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function _e(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.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)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.L)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(_e,{onClick:()=>t.hide()}),t.content]})}function Le(){const e=(0,j.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?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ce,{}),secondaryMenu:(0,u.jsx)(Te,{})}):null}const je={navbarHideable:"navbarHideable_V47q",navbarHidden:"navbarHidden_ISDM"};function Ae(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.L)(),i=(0,j.e)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,A.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[je.navbarHideable,!d&&je.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ae,{onClick:i.toggle}),(0,u.jsx)(Le,{})]})}var Pe=n(9396);const Re="right";function Oe(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function De(){const{toggle:e,shown:t}=(0,j.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.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",children:(0,u.jsx)(Oe,{})})}const Ie={colorModeToggle:"colorModeToggle_sLx5"};function Fe(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Pe.QW,{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}),children:(0,u.jsx)(Ee,{...e})},t)))})}function Me(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ze(){const e=(0,j.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Re)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(Me,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(De,{}),(0,u.jsx)(W,{}),(0,u.jsx)(Fe,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Fe,{items:r}),(0,u.jsx)(G,{className:Ie.colorModeToggle}),!o&&(0,u.jsx)(ye,{children:(0,u.jsx)(he,{})})]})})}function Be(){return(0,u.jsx)(Ne,{children:(0,u.jsx)(ze,{})})}function Ue(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,l=(0,X.Z)(n),s=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.Z,{className:"footer__link-item",...r?{href:a?s:r}:{to:l},...i,children:[o,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function $e(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ue,{item:t})},t.href??t.to)}function qe(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)($e,{item:e},t)))})]})}function He(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(qe,{column:e},t)))})}function Ze(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ge(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ue,{item:t})}function Ve(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ge,{item:e}),t.length!==n+1&&(0,u.jsx)(Ze,{})]},n)))})})}function We(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(He,{columns:t}):(0,u.jsx)(Ve,{links:t})}var Qe=n(4638);const Ye={footerLogoLink:"footerLogoLink_I1KR"};function Ke(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(Qe.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Xe(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.Z,{href:t.href,className:Ye.footerLogoLink,target:t.target,children:(0,u.jsx)(Ke,{logo:t})}):(0,u.jsx)(Ke,{logo:t})}function Je(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function et(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function tt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(et,{style:o,links:n&&n.length>0&&(0,u.jsx)(We,{links:n}),logo:r&&(0,u.jsx)(Xe,{logo:r}),copyright:t&&(0,u.jsx)(Je,{copyright:t})})}const nt=r.memo(tt),rt=(0,N.Qc)([M.S,k.pl,A.OC,ke.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(P.n2,{children:(0,u.jsx)(j.M,{children:(0,u.jsx)(O,{children:t})})})}]);function ot(e){let{children:t}=e;return(0,u.jsx)(rt,{children:t})}var at=n(540);function it(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(at.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Pe.Cw,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Pe.aG,{error:t})})]})})})}const lt={mainWrapper:"mainWrapper_LsAE"};function st(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.t)(),(0,u.jsxs)(ot,{children:[(0,u.jsx)(i.d,{title:l,description:s}),(0,u.jsx)(v,{}),(0,u.jsx)(L,{}),(0,u.jsx)(Be,{}),(0,u.jsx)("div",{id:d,className:(0,o.Z)(h.k.wrapper.main,lt.mainWrapper,r),children:(0,u.jsx)(a.Z,{fallback:e=>(0,u.jsx)(it,{...e}),children:t})}),!n&&(0,u.jsx)(nt,{})]})}},7101:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(3981);var r=n(8029),o=n(7681),a=n(2959),i=n(4796),l=n(4638),s=n(9541);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},i=(0,s.jsx)(l.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:l}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.Z)(l?.href||"/"),g=n?"":t,m=l?.alt??g;return(0,s.jsxs)(r.Z,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:m,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},5342:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(3981);var r=n(1616),o=n(9541);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},4638:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(3981),o=n(5881),a=n(1882),i=n(383);const l={themedComponent:"themedComponent_CYBL","themedComponent--light":"themedComponent--light__Pv9","themedComponent--dark":"themedComponent--dark_J5sw"};var s=n(9541);function c(e){let{className:t,children:n}=e;const c=(0,a.Z)(),{colorMode:u}=(0,i.I)();return(0,s.jsx)(s.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1903:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(3981),o=n(1235),a=n(222),i=n(7559),l=n(9541);const s="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.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 ${o?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.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,o])}function g(e){if(!o.Z.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,l.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:s,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[s,c]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&c(t)}),[o,t]),o?(0,l.jsx)(m,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:m;return(0,l.jsx)(r,{...n})}},290:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>g});var r=n(3981),o=n(1882),a=n(8788),i=n(7785),l=n(4796),s=n(9541);const c=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!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&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},383:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(3981),o=n(1235),a=n(7785),i=n(8788),l=n(4796),s=n(9541);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.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:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},4828:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b});var r=n(3981),o=n(8476),a=n(1444),i=n(4796),l=n(8823),s=n(7785),c=n(8788),u=n(9541);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const g=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return(0,u.jsx)(g.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.cE?(0,u.jsx)(h,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(g);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=y(),{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])}}},9632:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(3981),o=n(7785),a=n(9541);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},4920:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>l});var r=n(3981),o=n(7785),a=n(9541);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},8688:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>g});var r=n(3981),o=n(9052),a=n(5168),i=n(8441),l=n(7785);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(4796),u=n(9541);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function g(){const e=r.useContext(d);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},9052:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>l});var r=n(3981),o=n(7785),a=n(9541);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=a,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},7854:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(3981);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5168:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(3981),o=n(1235);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?a.desktop:a.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},7314:(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",unlistedBanner:"theme-unlisted-banner",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:{}}},7559:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8823:(e,t,n)=>{"use strict";n.d(t,{MN:()=>T,LM:()=>g,_F:()=>y,cE:()=>p,jA:()=>m,xz:()=>f,SN:()=>_,lO:()=>S,vY:()=>C,oz:()=>E,s1:()=>x,f:()=>w});var r=n(3981),o=n(8441),a=n(1835),i=n(8476),l=n(4828),s=n(4920),c=n(9632);function u(e){return Array.from(new Set(e))}var d=n(3252);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 g(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=g(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,o.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({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 h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!1}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,c.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function E(e,t){const n=S(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 C(e,t){const n=S(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- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function _(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,s.E)(),i=t.routes,l=i.find((e=>(0,o.LX)(n.pathname,e)));if(!l)return null;const c=l.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:u}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!g(e)))}},9396:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Ac:()=>c,Cw:()=>s,QW:()=>d});var r=n(3981),o=n(1395),a=n(3866);const i={errorBoundaryError:"errorBoundaryError_gPoQ",errorBoundaryFallback:"errorBoundaryFallback_yhBS"};var l=n(9541);function s(e){return(0,l.jsx)("button",{type:"button",...e,children:(0,l.jsx)(o.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{className:i.errorBoundaryFallback,children:[(0,l.jsx)("p",{children:t.message}),(0,l.jsx)(s,{onClick:n})]})}function u(e){let{error:t}=e;const n=(0,a.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{className:i.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},877:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>g});var r=n(3981),o=n(5881),a=n(1616),i=n(8591);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(7681),c=n(2959);var u=n(9541);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const l=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.Z,{children:[t&&(0,u.jsx)("title",{children:l}),t&&(0,u.jsx)("meta",{property:"og:title",content:l}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,o.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:l,children:[(0,u.jsx)(a.Z,{children:(0,u.jsx)("html",{className:l})}),n]})}function g(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.Z)(r,a),children:t})}},7785:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>u,Ql:()=>c,i6:()=>s,zX:()=>i});var r=n(3981),o=n(222),a=n(9541);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{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+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(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(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},3252:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(3981),o=n(522),a=n(2959);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.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 o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2971:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>p});var r=n(3981),o=n(1235),a=n(1882),i=(n(222),n(7785)),l=n(9541);const s=r.createContext(void 0);function c(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(0,l.jsx)(s.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.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 o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},6443:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(2959);const r="default";function o(e,t){return`docs-${e}-${t}`}},8788:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(3981);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(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=a(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),o({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),o({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),()=>{}}}}}},8021:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2959),o=n(8441),a=n(3866);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,o.TH)(),c=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},8743:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(3981),o=n(8441),a=n(7785);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},4796:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2959);function o(){return(0,r.Z)().siteConfig.themeConfig}},8849:(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[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,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(o,a)}},4072:(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]}},3866: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 o=n(8849);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(4072);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},522:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(3981);var r=n(8342),o=n.n(r),a=n(6887);const i={"00cf87b3":[()=>n.e(8343).then(n.t.bind(n,8550,19)),"~docs/default/category-docs-docssidebar-category-reference-661.json",8550],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1979)),"@theme/BlogTagsListPage",1979],"0e384e19":[()=>n.e(9671).then(n.bind(n,4653)),"@site/docs/intro.md",4653],"0f586a30":[()=>n.e(3754).then(n.bind(n,5849)),"@site/docs/vendor-guide/vendor-historical-order.md",5849],"100dbbe6":[()=>n.e(6412).then(n.t.bind(n,5653,19)),"~blog/default/blog-tags-yuan-127-list.json",5653],"1043bab9":[()=>n.e(8164).then(n.t.bind(n,4469,19)),"/home/runner/work/Yuan/Yuan/ui/docs/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"117edb13":[()=>n.e(5530).then(n.t.bind(n,4999,19)),"~docs/default/category-docs-docssidebar-category-guide-agent-5f4.json",4999],"12db2c3d":[()=>n.e(8319).then(n.t.bind(n,5978,19)),"~docs/default/category-docs-docssidebar-category-getting-start-fcc.json",5978],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,5083)),"@theme/DocCategoryGeneratedIndexPage",5083],17896441:[()=>Promise.all([n.e(532),n.e(1426),n.e(7918)]).then(n.bind(n,8945)),"@theme/DocItem",8945],"1a6eb1fb":[()=>n.e(6821).then(n.bind(n,6761)),"@site/blog/2024-07-24-why-we-need-standard-for-vendors.md",6761],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,3915)),"@site/src/pages/index.tsx",3915],"1f391b9e":[()=>Promise.all([n.e(532),n.e(1426),n.e(3085)]).then(n.bind(n,1771)),"@theme/MDXPage",1771],"1ff8ab24":[()=>n.e(7259).then(n.bind(n,854)),"@site/docs/basics/what-is-order.md",854],"222bf278":[()=>n.e(9093).then(n.bind(n,2794)),"@site/docs/protocol/introduce.md",2794],"228d9fe6":[()=>n.e(8528).then(n.bind(n,4842)),"@site/docs/protocol/message-pattern-layer.md",4842],"238eb97d":[()=>n.e(1042).then(n.bind(n,6375)),"@site/docs/agent-guide/using-hooks.md",6375],"289704a1":[()=>n.e(2119).then(n.bind(n,8501)),"@site/docs/protocol/network-layer.md",8501],"2fcfeb95":[()=>n.e(6497).then(n.bind(n,7693)),"@site/docs/basics/what-is-account.md",7693],"393be207":[()=>n.e(7414).then(n.bind(n,9300)),"@site/src/pages/markdown-page.md",9300],48777274:[()=>n.e(2153).then(n.bind(n,5842)),"@site/docs/agent-guide/using-position-manager.md",5842],"53af1804":[()=>n.e(3696).then(n.bind(n,6509)),"@site/blog/2023-11-17-do-we-really-need-python-for-quant.md?truncated=true",6509],"5402381f":[()=>n.e(6812).then(n.bind(n,6303)),"@site/docs/vendor-guide/vendor-trading-interfaces.md",6303],"5e95c892":[()=>n.e(9661).then(n.bind(n,2967)),"@theme/DocsRoot",2967],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6875c492":[()=>Promise.all([n.e(532),n.e(1426),n.e(3730),n.e(8610)]).then(n.bind(n,7525)),"@theme/BlogTagsPostsPage",7525],"6a603a2f":[()=>n.e(6300).then(n.t.bind(n,5519,19)),"~blog/default/blog-tags-yuan-127.json",5519],"6af69db9":[()=>n.e(3627).then(n.bind(n,2525)),"@site/docs/agent-guide/using-technical-indicators.md",2525],"718daf0b":[()=>n.e(162).then(n.bind(n,1031)),"@site/docs/tutorial-basics/real-world-trading.md",1031],"76e06373":[()=>n.e(3388).then(n.bind(n,1984)),"@site/blog/2024-04-17-vision-of-no-trade-no-life.md?truncated=true",1984],"7a16d8e2":[()=>n.e(9027).then(n.bind(n,9247)),"@site/docs/reference/how-to-calculate-pnl.md",9247],"7c383f73":[()=>n.e(5038).then(n.bind(n,3427)),"@site/docs/reference/how-to-calculate-margin.md",3427],"7ca04cbe":[()=>n.e(3998).then(n.bind(n,6470)),"@site/docs/basics/what-is-product.md",6470],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"85f62147":[()=>n.e(3230).then(n.bind(n,8503)),"@site/blog/2023-11-17-do-we-really-need-python-for-quant.md",8503],"8b634ad3":[()=>n.e(590).then(n.bind(n,4685)),"@site/docs/vendor-guide/vendor-historical-market-data.md",4685],"8ef18523":[()=>n.e(3541).then(n.bind(n,834)),"@site/docs/vendor-guide/cross-language-interoperability.md",834],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"990bd87c":[()=>n.e(1368).then(n.bind(n,8879)),"@site/docs/basics/what-is-workspace.md",8879],"99e2b2f8":[()=>n.e(6839).then(n.bind(n,2230)),"@site/docs/agent-guide/using-time-series.md",2230],"9e4087bc":[()=>n.e(3608).then(n.bind(n,2443)),"@theme/BlogArchivePage",2443],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(1426),n.e(3730),n.e(3089)]).then(n.bind(n,5848)),"@theme/BlogListPage",5848],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,1043)),"@theme/DocVersionRoot",1043],a7ce3116:[()=>n.e(5974).then(n.bind(n,6967)),"@site/docs/vendor-guide/vendor-transfer.md",6967],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,7989)),"@theme/DocRoot",7989],aa12b77a:[()=>n.e(6447).then(n.bind(n,7453)),"@site/blog/2024-04-17-vision-of-no-trade-no-life.md",7453],ab41c5f6:[()=>n.e(3911).then(n.t.bind(n,2649,19)),"~docs/default/category-docs-docssidebar-category-basic-concepts-d23.json",2649],ad4a7b20:[()=>n.e(301).then(n.bind(n,1920)),"@site/blog/2024-07-24-why-we-need-standard-for-vendors.md?truncated=true",1920],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],b4022e59:[()=>n.e(5130).then(n.t.bind(n,3212,19)),"~blog/default/blog-tags-tech-28a-list.json",3212],b8408a19:[()=>n.e(1743).then(n.bind(n,7406)),"@site/docs/tutorial-basics/creating-your-first-strategy.md",7406],bc8cde9d:[()=>n.e(7008).then(n.t.bind(n,2602,19)),"~docs/default/category-docs-docssidebar-category-protocol-942.json",2602],c118d91b:[()=>n.e(6830).then(n.t.bind(n,5745,19)),"/home/runner/work/Yuan/Yuan/ui/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],c1398431:[()=>n.e(2483).then(n.bind(n,4540)),"@site/docs/agent-guide/what-is-agent.md",4540],c5ac5150:[()=>n.e(5146).then(n.t.bind(n,3769,19)),"/home/runner/work/Yuan/Yuan/ui/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],caa45b58:[()=>n.e(1517).then(n.bind(n,168)),"@site/docs/reference/elementary-math-in-trading.md",168],cbffed6d:[()=>n.e(2390).then(n.bind(n,3184)),"@site/docs/basics/what-is-market-data.md",3184],ccc49370:[()=>Promise.all([n.e(532),n.e(1426),n.e(3730),n.e(6103)]).then(n.bind(n,5813)),"@theme/BlogPostPage",5813],cfbb1d91:[()=>n.e(5009).then(n.t.bind(n,7878,19)),"~blog/default/blog-tags-tech-28a.json",7878],e6b6016c:[()=>n.e(9590).then(n.bind(n,7939)),"@site/docs/basics/what-is-transfer-order.md",7939],e7d4ed4e:[()=>n.e(2073).then(n.t.bind(n,9842,19)),"~docs/default/category-docs-docssidebar-category-guide-vendor-d2a.json",9842],e8d3160e:[()=>n.e(8658).then(n.bind(n,3885)),"@site/docs/vendor-guide/what-is-vendor.md",3885],eaa2b9d2:[()=>n.e(7690).then(n.bind(n,7859)),"@site/docs/vendor-guide/vendor-product.md",7859],f947b073:[()=>n.e(8173).then(n.bind(n,6704)),"@site/docs/vendor-guide/vendor-realtime-market-data.md",6704],fda57caf:[()=>n.e(5481).then(n.bind(n,375)),"@site/docs/vendor-guide/vendor-account-info.md",375]};var l=n(9541);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("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%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("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",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(5341),u=n(8591);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(6540).then(n.bind(n,6540)),modules:["@theme/NotFound"],webpack:()=>[6540],render(e,t){const n=e.default;return(0,l.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],g=(0,c.Z)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));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 i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(u.z,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/blog",component:d("/blog","b40"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","523"),exact:!0},{path:"/blog/do-we-really-need-python-for-quant",component:d("/blog/do-we-really-need-python-for-quant","40b"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","2fd"),exact:!0},{path:"/blog/tags/tech",component:d("/blog/tags/tech","902"),exact:!0},{path:"/blog/tags/yuan",component:d("/blog/tags/yuan","cdb"),exact:!0},{path:"/blog/vision-of-no-trade-no-life",component:d("/blog/vision-of-no-trade-no-life","0d2"),exact:!0},{path:"/blog/why-we-need-stardard-for-vendors",component:d("/blog/why-we-need-stardard-for-vendors","e7b"),exact:!0},{path:"/markdown-page",component:d("/markdown-page","502"),exact:!0},{path:"/docs",component:d("/docs","af6"),routes:[{path:"/docs",component:d("/docs","856"),routes:[{path:"/docs",component:d("/docs","c76"),routes:[{path:"/docs/agent-guide/using-hooks",component:d("/docs/agent-guide/using-hooks","c44"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/agent-guide/using-position-manager",component:d("/docs/agent-guide/using-position-manager","0a9"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/agent-guide/using-technical-indicators",component:d("/docs/agent-guide/using-technical-indicators","3b7"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/agent-guide/using-time-series",component:d("/docs/agent-guide/using-time-series","49e"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/agent-guide/what-is-agent",component:d("/docs/agent-guide/what-is-agent","5ed"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-account",component:d("/docs/basics/what-is-account","030"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-market-data",component:d("/docs/basics/what-is-market-data","51e"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-order",component:d("/docs/basics/what-is-order","3e4"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-product",component:d("/docs/basics/what-is-product","1ff"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-transfer-order",component:d("/docs/basics/what-is-transfer-order","dc6"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/basics/what-is-workspace",component:d("/docs/basics/what-is-workspace","263"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/basic-concepts",component:d("/docs/category/basic-concepts","c6b"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/getting-start",component:d("/docs/category/getting-start","532"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/guide---agent",component:d("/docs/category/guide---agent","1de"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/guide---vendor",component:d("/docs/category/guide---vendor","370"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/protocol",component:d("/docs/category/protocol","1ce"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/category/reference",component:d("/docs/category/reference","4f2"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/intro",component:d("/docs/intro","f79"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/protocol/introduce",component:d("/docs/protocol/introduce","65e"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/protocol/message-pattern-layer",component:d("/docs/protocol/message-pattern-layer","909"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/protocol/network-layer",component:d("/docs/protocol/network-layer","d48"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/reference/elementary-math-in-trading",component:d("/docs/reference/elementary-math-in-trading","b8e"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/reference/how-to-calculate-margin",component:d("/docs/reference/how-to-calculate-margin","0ab"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/reference/how-to-calculate-pnl",component:d("/docs/reference/how-to-calculate-pnl","633"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/tutorial-basics/creating-your-first-strategy",component:d("/docs/tutorial-basics/creating-your-first-strategy","54e"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/tutorial-basics/real-world-trading",component:d("/docs/tutorial-basics/real-world-trading","387"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/cross-language-interoperability",component:d("/docs/vendor-guide/cross-language-interoperability","557"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-account-info",component:d("/docs/vendor-guide/vendor-account-info","738"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-historical-market-data",component:d("/docs/vendor-guide/vendor-historical-market-data","acd"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-historical-order",component:d("/docs/vendor-guide/vendor-historical-order","bcc"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-product",component:d("/docs/vendor-guide/vendor-product","e6b"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-realtime-market-data",component:d("/docs/vendor-guide/vendor-realtime-market-data","3d9"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-trading-interfaces",component:d("/docs/vendor-guide/vendor-trading-interfaces","bf0"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/vendor-transfer",component:d("/docs/vendor-guide/vendor-transfer","c5d"),exact:!0,sidebar:"docsSidebar"},{path:"/docs/vendor-guide/what-is-vendor",component:d("/docs/vendor-guide/what-is-vendor","aa4"),exact:!0,sidebar:"docsSidebar"}]}]}]},{path:"/",component:d("/","efc"),exact:!0},{path:"*",component:d("*")}]},5881:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>_,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(5296);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var l=n(1002);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!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;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,m(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(8286),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={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]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,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 c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},666:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},6480:(e,t,n)=>{"use strict";n.r(t)},631:(e,t,n)=>{"use strict";n.r(t)},7140:function(e,t,n){var r,o;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:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}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=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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)*o(Math.random()*t,.1,.95)),t=o(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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(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===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},9849:(e,t,n)=>{var r=n(666);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.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 g=e[i],m=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=m&&null!=g&&g!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||u,C=b||y;r.push({name:h||a++,prefix:m||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:C?c(C):w?".*":"[^"+s(E)+"]+?"})}}return i{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 WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). 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 highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},9309:(e,t,n)=>{const r=n(1913),o=n(7851),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(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(7816).resolve(t)],delete Prism.languages[e],n(7816)(t),a.add(e)}))}i.silent=!1,e.exports=i},9822:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++o;var m=p.substring(0,g),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(g+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},7816:(e,t,n)=>{var r={"./":9309};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=7816},7851: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 "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),g=u;o(g);){for(var m in p={},g){var h=s[m];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var y in f(b))if(y in u){p[b]=!0;break}for(var v in g=p)u[v]=!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,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},6256:(e,t,n)=>{"use strict";var r=n(6112);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,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:a,resetWarningCache:o};return n.PropTypes=n,n}},7094:(e,t,n)=>{e.exports=n(6256)()},6112:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},8303:(e,t,n)=>{"use strict";var r=n(3981),o=n(7574);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n