From 91961079d632ba37760fd6e3321b68a24559d84f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 11:08:22 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 40 + SUMMARY.html | 40 + ...\350\247\243\346\236\220.html-EFWzQ7p9.js" | 54 ++ ...\346\246\202\345\277\265.html-BKokb-lV.js" | 1 + ...\350\247\243\346\236\220.html-1I_9i2hp.js" | 77 ++ ...\347\272\277\347\250\213.html-CuDgfpeg.js" | 381 ++++++++ ...\350\247\243\346\236\220.html-Cuvtvbpc.js" | 339 +++++++ ...\346\225\260\346\215\256.html-BLgsE6xw.js" | 396 ++++++++ ...\346\223\215\344\275\234.html-rJexZaMy.js" | 868 +++++++++++++++++ ...\347\250\213\346\261\240.html-B8ceqDbR.js" | 220 +++++ ...\346\223\215\344\275\234.html-QZXnSagT.js" | 258 +++++ ...\345\215\217\347\250\213.html-f5RY1G-q.js" | 1 + assets/404.html-C-h4i3I8.js | 1 + assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 | Bin 0 -> 28076 bytes assets/KaTeX_AMS-Regular-DMm9YOAa.woff | Bin 0 -> 33516 bytes assets/KaTeX_AMS-Regular-DRggAlZN.ttf | Bin 0 -> 63632 bytes assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf | Bin 0 -> 12368 bytes assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff | Bin 0 -> 7716 bytes assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 | Bin 0 -> 6912 bytes .../KaTeX_Caligraphic-Regular-CTRA-rTL.woff | Bin 0 -> 7656 bytes .../KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 | Bin 0 -> 6908 bytes assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf | Bin 0 -> 12344 bytes assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf | Bin 0 -> 19584 bytes assets/KaTeX_Fraktur-Bold-BsDP51OF.woff | Bin 0 -> 13296 bytes assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 | Bin 0 -> 11348 bytes assets/KaTeX_Fraktur-Regular-CB_wures.ttf | Bin 0 -> 19572 bytes assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 | Bin 0 -> 11316 bytes assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff | Bin 0 -> 13208 bytes assets/KaTeX_Main-Bold-Cx986IdX.woff2 | Bin 0 -> 25324 bytes assets/KaTeX_Main-Bold-Jm3AIy58.woff | Bin 0 -> 29912 bytes assets/KaTeX_Main-Bold-waoOVXN0.ttf | Bin 0 -> 51336 bytes assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 | Bin 0 -> 16780 bytes assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf | Bin 0 -> 32968 bytes assets/KaTeX_Main-BoldItalic-SpSLRI95.woff | Bin 0 -> 19412 bytes assets/KaTeX_Main-Italic-3WenGoN9.ttf | Bin 0 -> 33580 bytes assets/KaTeX_Main-Italic-BMLOBm91.woff | Bin 0 -> 19676 bytes assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 | Bin 0 -> 16988 bytes assets/KaTeX_Main-Regular-B22Nviop.woff2 | Bin 0 -> 26272 bytes assets/KaTeX_Main-Regular-Dr94JaBh.woff | Bin 0 -> 30772 bytes assets/KaTeX_Main-Regular-ypZvNtVU.ttf | Bin 0 -> 53580 bytes assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf | Bin 0 -> 31196 bytes assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 | Bin 0 -> 16400 bytes assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff | Bin 0 -> 18668 bytes assets/KaTeX_Math-Italic-DA0__PXp.woff | Bin 0 -> 18748 bytes assets/KaTeX_Math-Italic-flOr_0UB.ttf | Bin 0 -> 31308 bytes assets/KaTeX_Math-Italic-t53AETM-.woff2 | Bin 0 -> 16440 bytes assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf | Bin 0 -> 24504 bytes assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 | Bin 0 -> 12216 bytes assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff | Bin 0 -> 14408 bytes assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 | Bin 0 -> 12028 bytes assets/KaTeX_SansSerif-Italic-DN2j7dab.woff | Bin 0 -> 14112 bytes assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf | Bin 0 -> 22364 bytes assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf | Bin 0 -> 19436 bytes assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff | Bin 0 -> 12316 bytes assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 | Bin 0 -> 10344 bytes assets/KaTeX_Script-Regular-C5JkGWo-.ttf | Bin 0 -> 16648 bytes assets/KaTeX_Script-Regular-D3wIWfF6.woff2 | Bin 0 -> 9644 bytes assets/KaTeX_Script-Regular-D5yQViql.woff | Bin 0 -> 10588 bytes assets/KaTeX_Size1-Regular-C195tn64.woff | Bin 0 -> 6496 bytes assets/KaTeX_Size1-Regular-Dbsnue_I.ttf | Bin 0 -> 12228 bytes assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 | Bin 0 -> 5468 bytes assets/KaTeX_Size2-Regular-B7gKUWhC.ttf | Bin 0 -> 11508 bytes assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 | Bin 0 -> 5208 bytes assets/KaTeX_Size2-Regular-oD1tc_U0.woff | Bin 0 -> 6188 bytes assets/KaTeX_Size3-Regular-CTq5MqoE.woff | Bin 0 -> 4420 bytes assets/KaTeX_Size3-Regular-DgpXs0kz.ttf | Bin 0 -> 7588 bytes assets/KaTeX_Size4-Regular-BF-4gkZK.woff | Bin 0 -> 5980 bytes assets/KaTeX_Size4-Regular-DWFBv043.ttf | Bin 0 -> 10364 bytes assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 | Bin 0 -> 4928 bytes assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff | Bin 0 -> 16028 bytes .../KaTeX_Typewriter-Regular-CO6r4hn1.woff2 | Bin 0 -> 13568 bytes assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf | Bin 0 -> 27556 bytes assets/SUMMARY.html-BnXBmIpJ.js | 1 + assets/SearchResult-jru87sjv.js | 1 + assets/Tableau10-B-NsZVaP.js | 1 + assets/app-Ca-A-iaw.js | 37 + assets/arc-BDtf7cdN.js | 1 + assets/array-BKyUJesY.js | 1 + assets/auto-Cl2ltNcc.js | 18 + assets/blockDiagram-9f4a6865-CCynznDb.js | 118 +++ assets/c4Diagram-ae766693-Cwq3C8UU.js | 10 + assets/channel-BQsRZjn0.js | 1 + assets/classDiagram-fb54d2a0-B6KDNP-K.js | 2 + assets/classDiagram-v2-a2b738ad-BzrN1-EV.js | 2 + assets/clone-CH2yQtrO.js | 1 + assets/createText-ca0c5216-bYdpW0Zp.js | 7 + assets/edges-066a5561-CYMTSPpJ.js | 4 + assets/erDiagram-09d1c15f-kySp2mgy.js | 51 + assets/flowDb-c1833063-Dab_m0tb.js | 10 + assets/flowDiagram-b222e15a-DarGeLKH.js | 4 + assets/flowDiagram-v2-13329dc7-B5Y-44JY.js | 1 + assets/flowchart-CTwbLKUk.js | 11 + ...wchart-elk-definition-ae0efee6-D2n0UGGT.js | 139 +++ assets/ganttDiagram-b62c793e-DZKZndxq.js | 257 +++++ assets/gitGraphDiagram-942e62fe-B3EvEA8b.js | 70 ++ assets/graph-DkiqFSuU.js | 1 + assets/index-01f381cb-wllKWk9M.js | 1 + assets/index-AN989yVn.js | 61 ++ assets/index.html-BFILG7Me.js | 1 + assets/index.html-BHEgHCm0.js | 1 + assets/index.html-BNiJ94F3.js | 1 + assets/index.html-BV8xYf6R.js | 1 + assets/index.html-C6Z_qkjf.js | 16 + assets/index.html-CumviD6U.js | 1 + assets/infoDiagram-94cd232f-CmPJgRj5.js | 7 + assets/init-Gi6I4Gst.js | 1 + assets/journeyDiagram-6625b456-C95pQKsn.js | 139 +++ assets/katex-CvgdMzdh.js | 261 +++++ assets/layout-BZLwH4ql.js | 1 + assets/line-DS2p6aKt.js | 1 + assets/linear-BnGacGIF.js | 1 + assets/mermaid.core-Bc1j4tiv.js | 91 ++ .../mindmap-definition-307c710a-DdlwPr3Y.js | 110 +++ assets/ordinal-Cboi1Yqb.js | 1 + assets/path-CbwjOpE9.js | 1 + assets/photoswipe.esm-GXRgw7eJ.js | 4 + assets/pieDiagram-bb1d19e5-BQhQYyps.js | 35 + assets/plugin-vue_export-helper-DlAUqK2U.js | 1 + assets/quadrantDiagram-c759a472-ChaDXyQS.js | 7 + .../requirementDiagram-87253d64-Dkgz-B9P.js | 52 + assets/sankeyDiagram-707fac0f-BXumW6Uv.js | 8 + assets/sequenceDiagram-6894f283-8w1yt_A5.js | 122 +++ assets/stateDiagram-5dee940d-QdyITvZy.js | 1 + assets/stateDiagram-v2-1992cada-BYeiqQmL.js | 1 + assets/style-C0gC8zyW.css | 1 + assets/styles-0784dbeb-Bh_1Vl1K.js | 207 ++++ assets/styles-483fbfea-DnQzRaYr.js | 116 +++ assets/styles-b83b31c9-AroU2Phi.js | 160 +++ assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js | 1 + .../timeline-definition-bf702344-BdCHgPg4.js | 61 ++ assets/xychartDiagram-f11f50a6-B4uqsceT.js | 7 + ...57\344\273\230\345\256\23510-BcbPWYKj.jpg" | Bin 0 -> 129027 bytes ...57\344\273\230\345\256\23520-ChMdJN1i.jpg" | Bin 0 -> 130293 bytes ...344\273\230\345\256\23588.88-cwJg-qu6.jpg" | Bin 0 -> 124963 bytes ...\253\346\227\213\350\275\254-xmR8DCB1.jpg" | Bin 0 -> 354705 bytes .../\350\265\236\345\212\251-Bu8SX5TV.jpg" | Bin 0 -> 171632 bytes ...\233\345\272\246\346\235\241-QdAFSPTh.png" | Bin 0 -> 22172 bytes homework/index.html | 40 + image/index.html | 40 + "image/\346\215\220\350\265\240/index.html" | 40 + ...3\350\231\253\346\227\213\350\275\254.jpg" | Bin 0 -> 354705 bytes ...6\347\250\213\346\225\231\347\250\213.png" | Bin 0 -> 42822 bytes "image/\350\265\236\345\212\251.jpg" | Bin 0 -> 171632 bytes .../\350\277\233\345\272\246\346\235\241.png" | Bin 0 -> 22172 bytes index.html | 40 + ...\346\234\254\346\246\202\345\277\265.html" | 40 + ...\347\224\250\347\272\277\347\250\213.html" | 420 ++++++++ ...\344\272\253\346\225\260\346\215\256.html" | 435 +++++++++ ...\346\255\245\346\223\215\344\275\234.html" | 907 ++++++++++++++++++ ...\345\255\220\346\223\215\344\275\234.html" | 299 ++++++ "md/06\345\215\217\347\250\213.html" | 40 + md/index.html | 55 ++ ...\347\240\201\350\247\243\346\236\220.html" | 93 ++ ...\347\240\201\350\247\243\346\236\220.html" | 116 +++ ...\347\240\201\350\247\243\346\236\220.html" | 378 ++++++++ ...\347\272\277\347\250\213\346\261\240.html" | 259 +++++ .../index.html" | 40 + search-pro.worker.js | 2 + 158 files changed, 8150 insertions(+) create mode 100644 404.html create mode 100644 SUMMARY.html create mode 100644 "assets/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html-EFWzQ7p9.js" create mode 100644 "assets/01\345\237\272\346\234\254\346\246\202\345\277\265.html-BKokb-lV.js" create mode 100644 "assets/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html-1I_9i2hp.js" create mode 100644 "assets/02\344\275\277\347\224\250\347\272\277\347\250\213.html-CuDgfpeg.js" create mode 100644 "assets/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html-Cuvtvbpc.js" create mode 100644 "assets/03\345\205\261\344\272\253\346\225\260\346\215\256.html-BLgsE6xw.js" create mode 100644 "assets/04\345\220\214\346\255\245\346\223\215\344\275\234.html-rJexZaMy.js" create mode 100644 "assets/04\347\272\277\347\250\213\346\261\240.html-B8ceqDbR.js" create mode 100644 "assets/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html-QZXnSagT.js" create mode 100644 "assets/06\345\215\217\347\250\213.html-f5RY1G-q.js" create mode 100644 assets/404.html-C-h4i3I8.js create mode 100644 assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 create mode 100644 assets/KaTeX_AMS-Regular-DMm9YOAa.woff create mode 100644 assets/KaTeX_AMS-Regular-DRggAlZN.ttf create mode 100644 assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf create mode 100644 assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff create mode 100644 assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 create mode 100644 assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff create mode 100644 assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 create mode 100644 assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf create mode 100644 assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf create mode 100644 assets/KaTeX_Fraktur-Bold-BsDP51OF.woff create mode 100644 assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 create mode 100644 assets/KaTeX_Fraktur-Regular-CB_wures.ttf create mode 100644 assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 create mode 100644 assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff create mode 100644 assets/KaTeX_Main-Bold-Cx986IdX.woff2 create mode 100644 assets/KaTeX_Main-Bold-Jm3AIy58.woff create mode 100644 assets/KaTeX_Main-Bold-waoOVXN0.ttf create mode 100644 assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 create mode 100644 assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf create mode 100644 assets/KaTeX_Main-BoldItalic-SpSLRI95.woff create mode 100644 assets/KaTeX_Main-Italic-3WenGoN9.ttf create mode 100644 assets/KaTeX_Main-Italic-BMLOBm91.woff create mode 100644 assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 create mode 100644 assets/KaTeX_Main-Regular-B22Nviop.woff2 create mode 100644 assets/KaTeX_Main-Regular-Dr94JaBh.woff create mode 100644 assets/KaTeX_Main-Regular-ypZvNtVU.ttf create mode 100644 assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf create mode 100644 assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 create mode 100644 assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff create mode 100644 assets/KaTeX_Math-Italic-DA0__PXp.woff create mode 100644 assets/KaTeX_Math-Italic-flOr_0UB.ttf create mode 100644 assets/KaTeX_Math-Italic-t53AETM-.woff2 create mode 100644 assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf create mode 100644 assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 create mode 100644 assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff create mode 100644 assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 create mode 100644 assets/KaTeX_SansSerif-Italic-DN2j7dab.woff create mode 100644 assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf create mode 100644 assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf create mode 100644 assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff create mode 100644 assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 create mode 100644 assets/KaTeX_Script-Regular-C5JkGWo-.ttf create mode 100644 assets/KaTeX_Script-Regular-D3wIWfF6.woff2 create mode 100644 assets/KaTeX_Script-Regular-D5yQViql.woff create mode 100644 assets/KaTeX_Size1-Regular-C195tn64.woff create mode 100644 assets/KaTeX_Size1-Regular-Dbsnue_I.ttf create mode 100644 assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 create mode 100644 assets/KaTeX_Size2-Regular-B7gKUWhC.ttf create mode 100644 assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 create mode 100644 assets/KaTeX_Size2-Regular-oD1tc_U0.woff create mode 100644 assets/KaTeX_Size3-Regular-CTq5MqoE.woff create mode 100644 assets/KaTeX_Size3-Regular-DgpXs0kz.ttf create mode 100644 assets/KaTeX_Size4-Regular-BF-4gkZK.woff create mode 100644 assets/KaTeX_Size4-Regular-DWFBv043.ttf create mode 100644 assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 create mode 100644 assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff create mode 100644 assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 create mode 100644 assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf create mode 100644 assets/SUMMARY.html-BnXBmIpJ.js create mode 100644 assets/SearchResult-jru87sjv.js create mode 100644 assets/Tableau10-B-NsZVaP.js create mode 100644 assets/app-Ca-A-iaw.js create mode 100644 assets/arc-BDtf7cdN.js create mode 100644 assets/array-BKyUJesY.js create mode 100644 assets/auto-Cl2ltNcc.js create mode 100644 assets/blockDiagram-9f4a6865-CCynznDb.js create mode 100644 assets/c4Diagram-ae766693-Cwq3C8UU.js create mode 100644 assets/channel-BQsRZjn0.js create mode 100644 assets/classDiagram-fb54d2a0-B6KDNP-K.js create mode 100644 assets/classDiagram-v2-a2b738ad-BzrN1-EV.js create mode 100644 assets/clone-CH2yQtrO.js create mode 100644 assets/createText-ca0c5216-bYdpW0Zp.js create mode 100644 assets/edges-066a5561-CYMTSPpJ.js create mode 100644 assets/erDiagram-09d1c15f-kySp2mgy.js create mode 100644 assets/flowDb-c1833063-Dab_m0tb.js create mode 100644 assets/flowDiagram-b222e15a-DarGeLKH.js create mode 100644 assets/flowDiagram-v2-13329dc7-B5Y-44JY.js create mode 100644 assets/flowchart-CTwbLKUk.js create mode 100644 assets/flowchart-elk-definition-ae0efee6-D2n0UGGT.js create mode 100644 assets/ganttDiagram-b62c793e-DZKZndxq.js create mode 100644 assets/gitGraphDiagram-942e62fe-B3EvEA8b.js create mode 100644 assets/graph-DkiqFSuU.js create mode 100644 assets/index-01f381cb-wllKWk9M.js create mode 100644 assets/index-AN989yVn.js create mode 100644 assets/index.html-BFILG7Me.js create mode 100644 assets/index.html-BHEgHCm0.js create mode 100644 assets/index.html-BNiJ94F3.js create mode 100644 assets/index.html-BV8xYf6R.js create mode 100644 assets/index.html-C6Z_qkjf.js create mode 100644 assets/index.html-CumviD6U.js create mode 100644 assets/infoDiagram-94cd232f-CmPJgRj5.js create mode 100644 assets/init-Gi6I4Gst.js create mode 100644 assets/journeyDiagram-6625b456-C95pQKsn.js create mode 100644 assets/katex-CvgdMzdh.js create mode 100644 assets/layout-BZLwH4ql.js create mode 100644 assets/line-DS2p6aKt.js create mode 100644 assets/linear-BnGacGIF.js create mode 100644 assets/mermaid.core-Bc1j4tiv.js create mode 100644 assets/mindmap-definition-307c710a-DdlwPr3Y.js create mode 100644 assets/ordinal-Cboi1Yqb.js create mode 100644 assets/path-CbwjOpE9.js create mode 100644 assets/photoswipe.esm-GXRgw7eJ.js create mode 100644 assets/pieDiagram-bb1d19e5-BQhQYyps.js create mode 100644 assets/plugin-vue_export-helper-DlAUqK2U.js create mode 100644 assets/quadrantDiagram-c759a472-ChaDXyQS.js create mode 100644 assets/requirementDiagram-87253d64-Dkgz-B9P.js create mode 100644 assets/sankeyDiagram-707fac0f-BXumW6Uv.js create mode 100644 assets/sequenceDiagram-6894f283-8w1yt_A5.js create mode 100644 assets/stateDiagram-5dee940d-QdyITvZy.js create mode 100644 assets/stateDiagram-v2-1992cada-BYeiqQmL.js create mode 100644 assets/style-C0gC8zyW.css create mode 100644 assets/styles-0784dbeb-Bh_1Vl1K.js create mode 100644 assets/styles-483fbfea-DnQzRaYr.js create mode 100644 assets/styles-b83b31c9-AroU2Phi.js create mode 100644 assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js create mode 100644 assets/timeline-definition-bf702344-BdCHgPg4.js create mode 100644 assets/xychartDiagram-f11f50a6-B4uqsceT.js create mode 100644 "assets/\346\224\257\344\273\230\345\256\23510-BcbPWYKj.jpg" create mode 100644 "assets/\346\224\257\344\273\230\345\256\23520-ChMdJN1i.jpg" create mode 100644 "assets/\346\224\257\344\273\230\345\256\23588.88-cwJg-qu6.jpg" create mode 100644 "assets/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254-xmR8DCB1.jpg" create mode 100644 "assets/\350\265\236\345\212\251-Bu8SX5TV.jpg" create mode 100644 "assets/\350\277\233\345\272\246\346\235\241-QdAFSPTh.png" create mode 100644 homework/index.html create mode 100644 image/index.html create mode 100644 "image/\346\215\220\350\265\240/index.html" create mode 100644 "image/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254.jpg" create mode 100644 "image/\347\216\260\344\273\243C++\345\271\266\345\217\221\347\274\226\347\250\213\346\225\231\347\250\213.png" create mode 100644 "image/\350\265\236\345\212\251.jpg" create mode 100644 "image/\350\277\233\345\272\246\346\235\241.png" create mode 100644 index.html create mode 100644 "md/01\345\237\272\346\234\254\346\246\202\345\277\265.html" create mode 100644 "md/02\344\275\277\347\224\250\347\272\277\347\250\213.html" create mode 100644 "md/03\345\205\261\344\272\253\346\225\260\346\215\256.html" create mode 100644 "md/04\345\220\214\346\255\245\346\223\215\344\275\234.html" create mode 100644 "md/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html" create mode 100644 "md/06\345\215\217\347\250\213.html" create mode 100644 md/index.html create mode 100644 "md/\350\257\246\347\273\206\345\210\206\346\236\220/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html" create mode 100644 "md/\350\257\246\347\273\206\345\210\206\346\236\220/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html" create mode 100644 "md/\350\257\246\347\273\206\345\210\206\346\236\220/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html" create mode 100644 "md/\350\257\246\347\273\206\345\210\206\346\236\220/04\347\272\277\347\250\213\346\261\240.html" create mode 100644 "md/\350\257\246\347\273\206\345\210\206\346\236\220/index.html" create mode 100644 search-pro.worker.js diff --git a/404.html b/404.html new file mode 100644 index 00000000..ef423552 --- /dev/null +++ b/404.html @@ -0,0 +1,40 @@ + + + + + + + + + + 现代C++并发编程教程 + + + + + +
跳至主要內容
+ + + diff --git a/SUMMARY.html b/SUMMARY.html new file mode 100644 index 00000000..9548143d --- /dev/null +++ b/SUMMARY.html @@ -0,0 +1,40 @@ + + + + + + + + + + Summary | 现代C++并发编程教程 + + + + + +
跳至主要內容
+ + + diff --git "a/assets/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html-EFWzQ7p9.js" "b/assets/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html-EFWzQ7p9.js" new file mode 100644 index 00000000..eedb4cfb --- /dev/null +++ "b/assets/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html-EFWzQ7p9.js" @@ -0,0 +1,54 @@ +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,d as e,o as t}from"./app-Ca-A-iaw.js";const n={};function h(l,i){return t(),a("div",null,i[0]||(i[0]=[e(`

std::thread 的构造-源码解析

我们这单章是为了专门解释一下 C++11 引入的 std::thread 是如何构造的,是如何创建线程传递参数的,让你彻底了解这个类。

我们以 MSVC 实现的 std::thread 代码进行讲解,MSVC STL 很早之前就不支持 C++11 了,它的实现完全基于 C++14,出于某些原因 C++17 的一些库(如 invoke, _v 变量模板)被向后移植到了 C++14 模式,所以即使是 C++11 标准库设施,实现中可能也是使用到了 C++14、17 的东西。

std::thread 的数据成员

std::thread 只保有一个私有数据成员 _Thr

private:
+    _Thrd_t _Thr;

_Thrd_t 是一个结构体,它保有两个数据成员:

using _Thrd_id_t = unsigned int;
+struct _Thrd_t { // thread identifier for Win32
+    void* _Hnd; // Win32 HANDLE
+    _Thrd_id_t _Id;
+};

结构很明确,这个结构体的 _Hnd 成员是指向线程的句柄,_Id 成员就是保有线程的 ID。

在64 位操作系统,因为内存对齐,指针 8 ,无符号 int 4,这个结构体 _Thrd_t 就是占据 16 个字节。也就是说 sizeof(std::thread) 的结果应该为 16

std::thread 的构造函数

std::thread 有四个构造函数,分别是:

  1. 默认构造函数,构造不关联线程的新 std::thread 对象。

    thread() noexcept : _Thr{} {}

    值初始化了数据成员 _Thr ,这里的效果相当于给其成员 _Hnd_Id 都进行零初始化

  2. 移动构造函数,转移线程的所有权,构造 other 关联的执行线程的 std::thread 对象。此调用后 other 不再表示执行线程失去了线程的所有权。

    thread(thread&& _Other) noexcept : _Thr(_STD exchange(_Other._Thr, {})) {}

    _STD 是一个宏,展开就是 ::std::,也就是 ::std::exchange,将 _Other._Thr 赋为 {} (也就是置空),返回 _Other._Thr 的旧值用以初始化当前对象的数据成员 _Thr

  3. 复制构造函数被定义为弃置的,std::thread 不可复制。两个 std::thread 不可表示一个线程,std::thread 对线程资源是独占所有权。

    thread(const thread&) = delete;
  4. 构造新的 std::thread 对象并将它与执行线程关联。表示新的执行线程开始执行

    template <class _Fn, class... _Args, enable_if_t<!is_same_v<_Remove_cvref_t<_Fn>, thread>, int> = 0>
    +    _NODISCARD_CTOR_THREAD explicit thread(_Fn&& _Fx, _Args&&... _Ax) {
    +        _Start(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...);
    +    }

前三个构造函数都没啥要特别聊的,非常简单,只有第四个构造函数较为复杂,且是我们本章重点,需要详细讲解。(注意 MSVC 使用标准库的内容很多时候不加 std::,脑补一下就行

如你所见,这个构造函数本身并没有做什么,它只是一个可变参数成员函数模板,增加了一些 SFINAE 进行约束我们传入的可调用对象的类型不能是 std::thread。关于这个约束你可能有问题,因为 std::thread 他并没有 operator() 的重载,不是可调用类型,这个 enable_if_t 的意义是什么呢?其实很简单,如下:

struct X{
+    X(X&& x)noexcept{}
+    template <class Fn, class... Args>
+    X(Fn&& f,Args&&...args){}
+    X(const X&) = delete;
+};
+
+X x{ [] {} };
+X x2{ x }; // 选择到了有参构造函数,不导致编译错误

以上这段代码可以正常的通过编译。这是重载决议的事情,我们知道,std::thread 是不可复制的,这种代码自然不应该让它通过编译,选择到我们的有参构造,所以我们添加一个约束让其不能选择到我们的有参构造:

template <class Fn, class... Args, std::enable_if_t<!std::is_same_v<std::remove_cvref_t<Fn>, X>, int> = 0>

这样,这段代码就会正常的出现编译错误,信息如下:

error C2280: “X::X(const X &)”: 尝试引用已删除的函数
+note: 参见“X::X”的声明
+note: “X::X(const X &)”: 已隐式删除函数

也就满足了我们的要求,重载决议选择到了弃置复制构造函数产生编译错误,这也就是源码中添加约束的目的。

而构造函数体中调用了一个函数 _Start,将我们构造函数的参数全部完美转发,去调用它,这个函数才是我们的重点,如下:

template <class _Fn, class... _Args>
+void _Start(_Fn&& _Fx, _Args&&... _Ax) {
+    using _Tuple                 = tuple<decay_t<_Fn>, decay_t<_Args>...>;
+    auto _Decay_copied           = _STD make_unique<_Tuple>(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...);
+    constexpr auto _Invoker_proc = _Get_invoke<_Tuple>(make_index_sequence<1 + sizeof...(_Args)>{});
+
+    _Thr._Hnd =
+        reinterpret_cast<void*>(_CSTD _beginthreadex(nullptr, 0, _Invoker_proc, _Decay_copied.get(), 0, &_Thr._Id));
+
+    if (_Thr._Hnd) { // ownership transferred to the thread
+        (void) _Decay_copied.release();
+    } else { // failed to start thread
+        _Thr._Id = 0;
+        _Throw_Cpp_error(_RESOURCE_UNAVAILABLE_TRY_AGAIN);
+    }
+}
  1. 它也是一个可变参数成员函数模板,接受一个可调用对象 _Fn 和一系列参数 _Args... ,这些东西用来创建一个线程。

  2. using _Tuple = tuple<decay_t<_Fn>, decay_t<_Args>...>

  3. auto _Decay_copied = _STD make_unique<_Tuple>(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...)

  4. constexpr auto _Invoker_proc = _Get_invoke<_Tuple>(make_index_sequence<1 + sizeof...(_Args)>{})

     template <class _Tuple, size_t... _Indices>
    + _NODISCARD static constexpr auto _Get_invoke(index_sequence<_Indices...>) noexcept {
    +     return &_Invoke<_Tuple, _Indices...>;
    + }
    + 
    + template <class _Tuple, size_t... _Indices>
    + static unsigned int __stdcall _Invoke(void* _RawVals) noexcept /* terminates */ {
    +     // adapt invoke of user's callable object to _beginthreadex's thread procedure
    +     const unique_ptr<_Tuple> _FnVals(static_cast<_Tuple*>(_RawVals));
    +     _Tuple& _Tup = *_FnVals.get(); // avoid ADL, handle incomplete types
    +     _STD invoke(_STD move(_STD get<_Indices>(_Tup))...);
    +     _Cnd_do_broadcast_at_thread_exit(); // TRANSITION, ABI
    +     return 0;
    + }

    _Get_invoke 函数很简单,就是接受一个元组类型,和形参包的索引,传递给 _Invoke 静态成员函数模板,实例化,获取它的函数指针。

    它的形参类型我们不再过多介绍,你只需要知道 index_sequence 这个东西可以用来接收一个由 make_index_sequence 创建的索引形参包,帮助我们进行遍历元组即可。示例代码

    _Invoke 是重中之重,它是线程实际执行的函数,如你所见它的形参类型是 void* ,这是必须的,要符合 _beginthreadex 执行函数的类型要求。虽然是 void*,但是我可以将它转换为 _Tuple* 类型,构造一个独占智能指针,然后调用 get() 成员函数获取底层指针,解引用指针,得到元组的引用初始化_Tup

    此时,我们就可以进行调用了,使用 std::invoke + std::move(默认移动) ,这里有一个形参包展开,_STD get<_Indices>(_Tup))...,_Tup 就是 std::tuple 的引用,我们使用 std::get<> 获取元组存储的数据,需要传入一个索引,这里就用到了 _Indices。展开之后,就等于 invoke 就接受了我们构造 std::thread 传入的可调用对象,调用可调用对象的参数,invoke 就可以执行了。

  5. _Thr._Hnd = reinterpret_cast<void*>(_CSTD _beginthreadex(nullptr, 0, _Invoker_proc, _Decay_copied.get(), 0, &_Thr._Id))

  6. if (_Thr._Hnd) {

  7. (void) _Decay_copied.release()

  8. } else { // failed to start thread

  9. _Thr._Id = 0;

  10. _Throw_Cpp_error(_RESOURCE_UNAVAILABLE_TRY_AGAIN);

总结

需要注意,libstdc++ 和 libc++ 可能不同,就比如它们 64 位环境下 sizeof(std::thread) 的结果就可能是 8。libstdc++ 的实现只保有一个 std::thread::id参见。不过实测 gcc 不管是 win32 还是 POSIX 线程模型,线程对象的大小都是 8,宏 _GLIBCXX_HAS_GTHREADS 的值都为 1(GThread)。

 class thread
+  {
+  public:
+#ifdef _GLIBCXX_HAS_GTHREADS
+    using native_handle_type = __gthread_t;
+#else
+    using native_handle_type = int;
+#endif

__gthread_tvoid*

我们这里的源码解析涉及到的 C++ 技术很多,我们也没办法每一个都单独讲,那会显得文章很冗长,而且也不是重点。

相信你也感受到了,不会模板,你阅读标准库源码,是无稽之谈,市面上很多教程教学,教导一些实现容器,过度简化了,真要去出错了去看标准库的代码,那是不现实的。不需要模板的水平有多高,也不需要会什么元编程,但是基本的需求得能做到,得会,这里推荐一下:现代C++模板教程


学习完了也不要忘记了回答最初的问题:

  1. 如何做到的默认按值复制?

    _Start 的第一行代码展示了这一点。我们将传入的所有参数包装成一个元组类型,这些类型先经过 decay_t 处理,去除了引用与 cv 限定,自然就实现了默认复制。

    using _Tuple                 = tuple<decay_t<_Fn>, decay_t<_Args>...>;
  2. 为什么需要 std::ref

    实现中将类型先经过 decay 处理,如果要传递引用,则必须用类包装一下才行,使用 std::ref 函数就会返回一个包装对象。

  3. 如何支持只能移动的对象?

    参数通过完美转发,最终调用时使用 std::move,这在线程实际执行的函数 _Invoke 中体现出来:

    _STD invoke(_STD move(_STD get<_Indices>(_Tup))...);
  4. 如何做到接受任意可调用对象?

    源码的实现很简单,主要是通过两层包装,最终将 void* 指针转换到原类型,然后使用 std::invoke 进行调用。

  5. 如何创建的线程?

    MSVC STL 调用 Win32 API _beginthreadex 创建线程;libstdc++ 调用 __gthread_create 函数创建线程,在 Windows 上实际上就是调用 CreateThread
    _beginthreadexCreateThread 都是微软提供的用于创建线程的 C 风格接口,它们的主要区别在于前者依赖于 C 运行时库,而后者更适合纯 Windows API 的情况。使用 _beginthreadex 可以确保正确初始化和清理 C 运行时库资源,而 CreateThread 则适用于不依赖于 C 运行时库的环境。

  6. 传递参数一节中的:“std::thread 内部会将保有的参数副本转换为右值表达式进行传递”到底是如何做到的?

    这就是第三个问题,差不多,无非是最后调用 std::invoke 函数之前,先 std::move 了。

`,34)]))}const r=s(n,[["render",h],["__file","01thread的构造与源码解析.html.vue"]]),d=JSON.parse('{"path":"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","title":"std::thread 的构造-源码解析","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"std::thread 的数据成员","slug":"std-thread-的数据成员","link":"#std-thread-的数据成员","children":[]},{"level":2,"title":"std::thread 的构造函数","slug":"std-thread-的构造函数","link":"#std-thread-的构造函数","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1710214174000,"updatedTime":1726228933000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":8},{"name":"mq白","email":"3326284481@qq.com","commits":3},{"name":"A. Jiang","email":"de34@live.cn","commits":2}]},"readingTime":{"minutes":9.63,"words":2888},"filePathRelative":"md/详细分析/01thread的构造与源码解析.md","localizedDate":"2024年3月12日","excerpt":"\\n

我们这单章是为了专门解释一下 C++11 引入的 std::thread 是如何构造的,是如何创建线程传递参数的,让你彻底了解这个类。

\\n

我们以 MSVC 实现的 std::thread 代码进行讲解,MSVC STL 很早之前就不支持 C++11 了,它的实现完全基于 C++14,出于某些原因 C++17 的一些库(如 invoke, _v 变量模板)被向后移植到了 C++14 模式,所以即使是 C++11 标准库设施,实现中可能也是使用到了 C++14、17 的东西。

"}');export{r as comp,d as data}; diff --git "a/assets/01\345\237\272\346\234\254\346\246\202\345\277\265.html-BKokb-lV.js" "b/assets/01\345\237\272\346\234\254\346\246\202\345\277\265.html-BKokb-lV.js" new file mode 100644 index 00000000..263e37e9 --- /dev/null +++ "b/assets/01\345\237\272\346\234\254\346\246\202\345\277\265.html-BKokb-lV.js" @@ -0,0 +1 @@ +import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,d as a,e as t,o as p,r as i}from"./app-Ca-A-iaw.js";const r={};function o(c,e){const n=i("Mermaid");return p(),s("div",null,[e[0]||(e[0]=a('

基本概念

前言

  在我们谈起“并发编程”,其实可以直接简单理解为“多线程编程”,我知道你或许有疑问:“那多进程呢?” C++ 语言层面没有进程的概念,并发支持库也不涉及多进程,所以在本教程中,不用在意。

  我们主要使用标准 C++ 进行教学,也会稍微涉及一些其它库。

并发

并发,指两个或两个以上的独立活动同时发生。

并发在生活中随处可见,我们可以一边走路一边说话,也可以两只手同时做不同的动作,又或者一边看电视一边吃零食。

在计算机中的并发

计算机中的并发有两种方式:

  1. 多核机器的真正并行

  2. 单核机器的任务切换

  在早期,一些单核机器,它要想并发,执行多个任务,那就只能是任务切换,任务切换会给你一种“好像这些任务都在同时执行”的假象。只有硬件上是多核的,才能进行真正的并行,也就是真正的”同时执行任务“。

  在现在,我们日常使用的机器,基本上是二者都有。我们现在的 CPU 基本都是多核,而操作系统调度基本也一样有任务切换,因为要执行的任务非常之多,CPU 是很快的,但是核心却没有那么多,不可能每一个任务都单独给一个核心。大家可以打开自己电脑的任务管理器看一眼,进程至少上百个,线程更是上千。这基本不可能每一个任务分配一个核心,都并行,而且也没必要。正是任务切换使得这些后台任务可以运行,这样系统使用者就可以同时运行文字处理器、编译器、编辑器和 Web 浏览器。

',12)),t(n,{id:"mermaid-45",code:"eJxLL0osyFAIcbHmUgCC4tIkiIDS0yWzni3Y8WzOrqczVzyf1fJ8zvxnaxc/3bntxcIeJbBSEPAtzSnJdM4vSo1GVh4Ll3cOCDWMBhEoQkYgISMUIWOQkHEsF6bJCrq6dmBzcEsZ4ZYyRpgIMgMsHJJYnG0Y/WT37qddC9EcBpc3gsqjuRIubwyVBzoZJJeal8IFAPcdaKI="}),t(n,{id:"mermaid-46",code:"eJxLL0osyFAIcbHmUgCC4tIkiIDS096pzxbseDZn19OZK57Panmye/fTroVPO9qf9S5SAisFgeDMvPScVOf8otRoZPWxWBQo6OraKfgHRz+b3Ptk75znm3c/3z3/xYbmp7uWIVT7B4NVhSQWZxtGQ2w0fNa5/MXCnued7c/WbUWoBCuBGmlEwEwjuKFGUEONcBsKUewfbEzAUGO4ocZQQ40xDU3NS+HiAgCTxJpN"}),e[1]||(e[1]=a('

并发与并行

事实上,对于这两个术语,并没有非常公认的说法。

  1. 有些人认为二者毫无关系,指代的东西完全不同。

  2. 有些人认为二者大多数时候是相同的,只是用于描述一些东西的时候关注点不同。

我喜欢第二种,那我们就讲第二种。

对多线程来说,这两个概念大部分是重叠的。对于很多人来说,它们没有什么区别。
这两个词是用来描述硬件同时执行多个任务的方式:

这两个术语存在的目的,就是为了区别多线程中不同的关注点。

总结

  概念从来不是我们的重点,尤其是某些说法准确性也一般,假设开发者对操作系统等知识有基本了解。

  我们也不打算特别介绍什么 C++ 并发库的历史发展、什么时候你该使用多线程、什么时候不该使用多线程... 类似问题应该是看你自己的,而我们回到代码上即可。

',10))])}const h=l(r,[["render",o],["__file","01基本概念.html.vue"]]),g=JSON.parse('{"path":"/md/01%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html","title":"基本概念","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"前言","slug":"前言","link":"#前言","children":[]},{"level":2,"title":"并发","slug":"并发","link":"#并发","children":[]},{"level":2,"title":"在计算机中的并发","slug":"在计算机中的并发","link":"#在计算机中的并发","children":[]},{"level":2,"title":"并发与并行","slug":"并发与并行","link":"#并发与并行","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1709618654000,"updatedTime":1722709815000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":5},{"name":"mq白","email":"3326284481@qq.com","commits":3},{"name":"suzukaze","email":"1027743497@qq.com","commits":1}]},"readingTime":{"minutes":3.22,"words":965},"filePathRelative":"md/01基本概念.md","localizedDate":"2024年3月5日","excerpt":"\\n

前言

\\n

  在我们谈起“并发编程”,其实可以直接简单理解为“多线程编程”,我知道你或许有疑问:“那多进程呢?” C++ 语言层面没有进程的概念,并发支持库也不涉及多进程,所以在本教程中,不用在意。

\\n

  我们主要使用标准 C++ 进行教学,也会稍微涉及一些其它库。

\\n

并发

\\n

并发,指两个或两个以上的独立活动同时发生。

\\n

并发在生活中随处可见,我们可以一边走路一边说话,也可以两只手同时做不同的动作,又或者一边看电视一边吃零食。

\\n

在计算机中的并发

"}');export{h as comp,g as data}; diff --git "a/assets/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html-1I_9i2hp.js" "b/assets/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html-1I_9i2hp.js" new file mode 100644 index 00000000..4f43a901 --- /dev/null +++ "b/assets/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html-1I_9i2hp.js" @@ -0,0 +1,77 @@ +import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,a as i,b as a,e,w as h,d as k,r as p,o as d}from"./app-Ca-A-iaw.js";const r={};function B(g,s){const l=p("RouteLink");return d(),t("div",null,[s[7]||(s[7]=i("h1",{id:"std-scoped-lock-的源码实现与解析",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#std-scoped-lock-的源码实现与解析"},[i("span",null,[i("code",null,"std::scoped_lock"),a(" 的源码实现与解析")])])],-1)),s[8]||(s[8]=i("p",null,[a("本单章专门介绍标准库在 C++17 引入的类模板 "),i("code",null,"std::scoped_lock"),a(" 的实现,让你对它再无疑问。")],-1)),i("p",null,[s[1]||(s[1]=a("这会涉及到不少的模板技术,这没办法,就如同我们先前聊 ")),e(l,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:h(()=>s[0]||(s[0]=[i("code",null,"std::thread",-1),a(" 的构造与源码分析")])),_:1}),s[2]||(s[2]=a("最后说的:“")),s[3]||(s[3]=i("strong",null,"不会模板,你阅读标准库源码,是无稽之谈",-1)),s[4]||(s[4]=a("”。建议学习")),s[5]||(s[5]=i("a",{href:"https://mq-b.github.io/Modern-Cpp-templates-tutorial/",target:"_blank",rel:"noopener noreferrer"},"现代C++模板教程",-1)),s[6]||(s[6]=a("。"))]),s[9]||(s[9]=k(`

我们还是一样的,以 MSVC STL 实现的 std::scoped_lock 代码进行讲解,不用担心,我们也查看了 libstdc++libc++的实现,并没有太多区别,更多的是一些风格上的。而且个人觉得 MSVC 的实现是最简单直观的。

std::scoped_lock 的数据成员

std::scoped_lock 是一个类模板,它有两个特化,也就是有三个版本,其中的数据成员也是不同的。并且它们都不可移动不可复制,“管理类”应该如此。

  1. 主模板,是一个可变参数类模板,声明了一个类型形参包 _Mutexes存储了一个 std::tuple,具体类型根据类型形参包决定。

    _EXPORT_STD template <class... _Mutexes>
    +class _NODISCARD_LOCK scoped_lock { // class with destructor that unlocks mutexes
    +public:
    +    explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock
    +        _STD lock(_Mtxes...);
    +    }
    +
    +    explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) noexcept // strengthened
    +        : _MyMutexes(_Mtxes...) {} // construct but don't lock
    +
    +    ~scoped_lock() noexcept {
    +        _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes);
    +    }
    +
    +    scoped_lock(const scoped_lock&)            = delete;
    +    scoped_lock& operator=(const scoped_lock&) = delete;
    +
    +private:
    +    tuple<_Mutexes&...> _MyMutexes;
    +};
  2. 对模板类型形参包只有一个类型情况的偏特化,是不是很熟悉,和 lock_guard 几乎没有任何区别,保有一个互斥量的引用,构造上锁,析构解锁,提供一个额外的构造函数让构造的时候不上锁。所以用 scoped_lock 替代 lock_guard 不会造成任何额外开销。

    template <class _Mutex>
    +class _NODISCARD_LOCK scoped_lock<_Mutex> {
    +public:
    +    using mutex_type = _Mutex;
    +
    +    explicit scoped_lock(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock
    +        _MyMutex.lock();
    +    }
    +
    +    explicit scoped_lock(adopt_lock_t, _Mutex& _Mtx) noexcept // strengthened
    +        : _MyMutex(_Mtx) {} // construct but don't lock
    +
    +    ~scoped_lock() noexcept {
    +        _MyMutex.unlock();
    +    }
    +
    +    scoped_lock(const scoped_lock&)            = delete;
    +    scoped_lock& operator=(const scoped_lock&) = delete;
    +
    +private:
    +    _Mutex& _MyMutex;
    +};
  3. 对类型形参包为空的情况的全特化,没有数据成员

    template <>
    +class scoped_lock<> {
    +public:
    +    explicit scoped_lock() = default;
    +    explicit scoped_lock(adopt_lock_t) noexcept /* strengthened */ {}
    +
    +    scoped_lock(const scoped_lock&)            = delete;
    +    scoped_lock& operator=(const scoped_lock&) = delete;
    +};

std::mutex m1,m2;
+
+std::scoped_lock<std::mutex> lc{ m1 };                   // 匹配到偏特化版本  保有一个 std::mutex&
+std::scoped_lock<std::mutex, std::mutex> lc2{ m1,m2 };   // 匹配到主模板     保有一个 std::tuple<std::mutex&,std::mutex&>
+std::scoped_lock<> lc3;                                 // 匹配到全特化版本  空

std::scoped_lock的构造与析构

在上一节讲 scoped_lock 的数据成员的时候已经把这个模板类的全部源码,三个版本的代码都展示了,就不再重复。

这三个版本中,只有两个版本需要介绍,也就是

  1. 形参包元素数量为一的偏特化,只管理一个互斥量的。
  2. 主模板,可以管理任意个数的互斥量。

那这两个的共同点是什么呢?构造上锁,析构解锁。这很明显,明确这一点我们就开始讲吧。


std::mutex m;
+void f(){
+    m.lock();
+    std::lock_guard<std::mutex> lc{ m, std::adopt_lock };
+}
+void f2(){
+    m.lock();
+    std::scoped_lock<std::mutex>sp{ std::adopt_lock,m };
+}

这段代码为你展示了 std::lock_guardstd::scoped_lock 形参包元素数量为一的偏特化的唯一区别:调用不会上锁的构造函数的参数顺序不同。那么到此也就够了。

接下来我们进入 std::scoped_lock 主模板的讲解:

explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock
+        _STD lock(_Mtxes...);
+    }

这个构造函数做了两件事情,初始化数据成员 _MyMutexes让它保有这些互斥量的引用,以及给所有互斥量上锁,使用了 std::lock 帮助我们完成这件事情。

explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) noexcept // strengthened
+    : _MyMutexes(_Mtxes...) {} // construct but don't lock

这个构造函数不上锁,只是初始化数据成员 _MyMutexes让它保有这些互斥量的引用。

~scoped_lock() noexcept {
+    _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes);
+}

析构函数就要稍微聊一下了,主要是用 std::apply 去遍历 std::tuple ,让元组保有的互斥量引用都进行解锁。简单来说是 std::apply 可以将元组存储的参数全部拿出,用于调用这个可变参数的可调用对象,我们就能利用折叠表达式展开形参包并对其调用 unlock()

不在乎其返回类型只用来实施它的副作用,显式转换为 (void) 也就是弃值表达式。在我们之前讲的 std::thread 源码中也有这种用法

不过你可能有疑问:“我们的标准库的那些互斥量 unlock() 返回类型都是 void 呀,为什么要这样?”

的确,这是个好问题,libstdc++libc++ 都没这样做,或许 MSVC STL 想着会有人设计的互斥量让它的 unlock() 返回类型不为 void,毕竟 互斥体 (Mutex) 没有要求 unlock() 的返回类型。


template< class F, class Tuple >
+constexpr decltype(auto) apply( F&& f, Tuple&& t );

这个函数模板接受两个参数,一个可调用 (Callable)对象 f,以及一个元组 t,用做调用 f 。我们可以自己简单实现一下它,其实不算难,这种遍历元组的方式在之前讲 std::thread 的源码的时候也提到过。

template<class Callable, class Tuple, std::size_t...index>
+constexpr decltype(auto) Apply_impl(Callable&& obj,Tuple&& tuple,std::index_sequence<index...>){
+    return std::invoke(std::forward<Callable>(obj), std::get<index>(std::forward<Tuple>(tuple))...);
+}
+
+template<class Callable, class Tuple>
+constexpr decltype(auto) apply(Callable&& obj, Tuple&& tuple){
+    return Apply_impl(std::forward<Callable>(obj), std::forward<Tuple>(tuple),
+        std::make_index_sequence<std::tuple_size_v<std::remove_reference_t<Tuple>>>{});
+}

其实就是把元组给解包了,利用了 std::index_sequence + std::make_index_sequence 然后就用 std::get 形参包展开用 std::invoke 调用可调用对象即可,非常经典的处理可变参数做法,这个非常重要,一定要会使用。

举一个简单的调用例子:

std::tuple<int, std::string, char> tuple{ 66,"😅",'c' };
+::apply([](const auto&... t) { ((std::cout << t << ' '), ...); }, tuple);

运行测试

使用了折叠表达式展开形参包,打印了元组所有的元素。

总结

如你所见,其实这很简单。至少使用与了解其设计原理是很简单的。唯一的难度或许只有那点源码,处理可变参数,这会涉及不少模板技术,既常见也通用。还是那句话:“不会模板,你阅读标准库源码,是无稽之谈”。

相对于 std::thread 的源码解析,std::scoped_lock 还是简单的多。

`,34))])}const y=n(r,[["render",B],["__file","02scoped_lock源码解析.html.vue"]]),A=JSON.parse('{"path":"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/02scoped_lock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","title":"std::scoped_lock 的源码实现与解析","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"std::scoped_lock 的数据成员","slug":"std-scoped-lock-的数据成员","link":"#std-scoped-lock-的数据成员","children":[]},{"level":2,"title":"std::scoped_lock的构造与析构","slug":"std-scoped-lock的构造与析构","link":"#std-scoped-lock的构造与析构","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1711004504000,"updatedTime":1719056772000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":7},{"name":"mq白","email":"3326284481@qq.com","commits":2},{"name":"A. Jiang","email":"de34@live.cn","commits":1},{"name":"LeeZQXML","email":"2919625053@qq.com","commits":1}]},"readingTime":{"minutes":5.6,"words":1681},"filePathRelative":"md/详细分析/02scoped_lock源码解析.md","localizedDate":"2024年3月21日","excerpt":"\\n

本单章专门介绍标准库在 C++17 引入的类模板 std::scoped_lock 的实现,让你对它再无疑问。

\\n

这会涉及到不少的模板技术,这没办法,就如同我们先前聊 std::thread 的构造与源码分析最后说的:“不会模板,你阅读标准库源码,是无稽之谈”。建议学习现代C++模板教程

"}');export{y as comp,A as data}; diff --git "a/assets/02\344\275\277\347\224\250\347\272\277\347\250\213.html-CuDgfpeg.js" "b/assets/02\344\275\277\347\224\250\347\272\277\347\250\213.html-CuDgfpeg.js" new file mode 100644 index 00000000..15fe0188 --- /dev/null +++ "b/assets/02\344\275\277\347\224\250\347\272\277\347\250\213.html-CuDgfpeg.js" @@ -0,0 +1,381 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as k,d as n,a as i,e as l,w as t,b as a,r as p,o as d}from"./app-Ca-A-iaw.js";const r={},B={id:"std-thread-的构造-源码解析",tabindex:"-1"},g={class:"header-anchor",href:"#std-thread-的构造-源码解析"};function c(o,s){const h=p("RouteLink");return d(),k("div",null,[s[4]||(s[4]=n(`

使用线程

在标准 C++ 中,std::thread 可以指代线程,本章中,使用线程也就是代表使用 std::thread (C++20 std::jthread)。

本章围绕着它们来讲解。

Hello World

在我们初学 C++ 的时候应该都写过这样一段代码:

#include <iostream>
+
+int main(){
+    std::cout << "Hello World!" << std::endl;
+}

这段代码将"Hello World!"写入到标准输出流,换行并刷新

我们可以启动一个线程来做这件事情:

#include <iostream>
+#include <thread>  // 引入线程支持头文件
+
+void hello(){     // 定义一个函数用作打印任务
+    std::cout << "Hello World" << std::endl;
+}
+
+int main(){
+    std::thread t{ hello };
+    t.join();
+}

std::thread t{ hello }; 创建了一个线程对象 t,将 hello 作为它的可调用(Callable)对象,在新线程中执行。线程对象关联了一个线程资源,我们无需手动控制,在线程对象构造成功,就自动在新线程开始执行函数 hello

t.join(); 等待线程对象 t 关联的线程执行完毕,否则将一直阻塞。这里的调用是必须的,否则 std::thread 的析构函数将调用 std::terminate() 无法正确析构。

这是因为我们创建线程对象 t 的时候就关联了一个活跃的线程,调用 join() 就是确保线程对象关联的线程已经执行完毕,然后会修改对象的状态,让 std::thread::joinable() 返回 false,表示线程对象目前没有关联活跃线程。std::thread 的析构函数,正是通过 joinable() 判断线程对象目前是否有关联活跃线程,如果为 true,那么就当做有关联活跃线程,会调用 std::terminate()


如你所见,std::thread 高度封装,其成员函数也很少,我们可以轻易的创建线程执行任务,不过,它的用法也还远不止如此,我们慢慢介绍。

当前环境支持并发线程数

使用 hardware_concurrency 函数可以获得我们当前硬件支持的并发线程数量,它是 std::thread 的静态成员函数。

#include <iostream>
+#include <thread>
+ 
+int main(){
+    unsigned int n = std::thread::hardware_concurrency();
+    std::cout << "支持 " << n << " 个并发线程。\\n";
+}

本节其实是要普及一下计算机常识,一些古老的书籍比如 csapp 应该也会提到“超线程技术”。

英特尔® 超线程技术是一项硬件创新,允许在每个内核上运行多个线程。更多的线程意味着可以并行完成更多的工作。

AMD 超线程技术被称为 SMT(Simultaneous Multi-Threading),它与英特尔的技术实现有所不同,不过使用类似。

举个例子:一款 4 核心 8 线程的 CPU,这里的 8 线程其实是指所谓的逻辑处理器,也意味着这颗 CPU 最多可并行执行 8 个任务。

我们的 hardware_concurrency() 获取的值自然也会是 8

当然了,都 2024 年了,我们还得考虑一个问题:“ 英特尔从 12 代酷睿开始,为其处理器引入了全新的“大小核”混合设计架构”。

比如我的 CPU i7 13700H 它是 14 核心,20 线程,有 8 个能效核,6 个性能核。不过我们说了,物理核心这个通常不看重,hardware_concurrency() 输出的值会为 20。


我们可以举个简单的例子运用这个值:

template<typename ForwardIt>
+auto sum(ForwardIt first, ForwardIt last){
+    using value_type = std::iter_value_t<ForwardIt>;
+    std::size_t num_threads = std::thread::hardware_concurrency();
+    std::ptrdiff_t distance = std::distance(first, last);
+
+    if(distance > 1024000){
+        // 计算每个线程处理的元素数量
+        std::size_t chunk_size = distance / num_threads;
+        std::size_t remainder = distance % num_threads;
+
+        // 存储每个线程的结果
+        std::vector<value_type> results { num_threads };
+
+        // 存储关联线程的线程对象
+        std::vector<std::thread> threads;
+
+        // 创建并启动线程
+        auto start = first;
+        for (std::size_t i = 0; i < num_threads; ++i) {
+            auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0));
+            threads.emplace_back([start, end, &results, i] {
+                results[i] = std::accumulate(start, end, value_type{});
+            });
+            start = end; // 开始迭代器不断向前
+        }
+
+        // 等待所有线程执行完毕
+        for (auto& thread : threads)
+            thread.join();
+
+        // 汇总线程的计算结果
+        value_type total_sum = std::accumulate(results.begin(), results.end(), value_type{});
+        return total_sum;
+    }
+
+    value_type total_sum = std::accumulate(first, last, value_type{});
+    return total_sum;
+}

运行测试。

我们写了这样一个求和函数 sum,接受两个迭代器计算它们范围中对象的和。

我们先获取了迭代器所指向的值的类型,定义了一个别名 value_type,我们这里使用到的 std::iter_value_t 是 C++20 引入的,返回类型推导是 C++14 引入。如果希望代码可以在 C++11 的环境运行也可以自行修改为:

template<typename ForwardIt>
+typename std::iterator_traits<ForwardIt>::value_type sum(ForwardIt first, ForwardIt last);

运行测试。

num_threads 是当前硬件支持的并发线程的值。std::distance 用来计算 first 到 last 的距离,也就是我们要进行求和的元素个数了。

我们这里的设计比较简单,毕竟是初学,所以只对元素个数大于 1024000 的进行多线程求和,而小于这个值的则直接使用标准库函数 std::accumulate 求和即可。

多线程求和只需要介绍三个地方

  1. chunk_size 是每个线程分配的任务,但是这是可能有余数的,比如 10 个任务分配三个线程,必然余 1。但是我们也需要执行这个任务,所以还定义了一个对象 remainder ,它存储的就是余数。

  2. auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0)); 这行代码是获取当前线程的执行范围,其实也就是要 chunk_size 再加上我们的余数 remainder 。这里写了一个三目运算符是为了进行分配任务,比如:

    假设有 3 个线程执行,并且余数是 2。那么,每个线程的处理情况如下:

    这确保了剩余的 2 个元素被分配给了前两个线程,而第三个线程只处理了平均数量的元素。这样就确保了所有的元素都被正确地分配给了各个线程进行处理。

  3. auto start = first; 在创建线程执行之前先定义了一个开始迭代器。在传递给线程执行的lambda表达式中,最后一行是:start = end; 这是为了让迭代器一直向前。

由于求和不涉及数据竞争之类的问题,所以我们甚至可以在刚讲完 Hello World 就手搓了一个“并行求和”的简单的模板函数。主要的难度其实在于对 C++ 的熟悉程度,而非对线程类 std::thread 的使用了,这里反而是最简单的,无非是用容器存储线程对象管理,最后进行 join() 罢了。

本节代码只是为了学习,而且只是百万数据通常没必要多线程,上亿的话差不多。如果你需要多线程求和,可以使用 C++17 引入的求和算法 std::reduce 并指明执行策略。它的效率接近我们实现的 sum 的两倍,当前环境核心越多数据越多,和单线程效率差距越明显。

线程管理

在 C++ 标准库中,没有直接管理线程的机制,只能通过对象关联线程后,通过该对象来管理线程。类 std::thread 的对象就是指代线程的对象,而我们本节说的“线程管理”,其实也就是指管理 std::thread 对象。

启动新线程

使用 C++ 线程库启动线程,就是构造 std::thread 对象。

当然了,如果是默认构造之类的,那么 std::thread 线程对象没有关联线程的,自然也不会启动线程执行任务。

std::thread t; //  构造不表示线程的新 std::thread 对象

我们上一节的示例是传递了一个函数给 std::thread 对象,函数会在新线程中执行。std::thread 支持的形式还有很多,只要是可调用(Callable)对象即可,比如重载了 operator() 的类对象(也可以直接叫函数对象)。

class Task{
+public:
+    void operator()()const {
+        std::cout << "operator()()const\\n";
+    }
+};

我们显然没办法直接像函数使用函数名一样,使用“类名”,函数名可以隐式转换到指向它的函数指针,而类名可不会直接变成对象,我们想使用 Task 自然就得构造对象了

std::thread t{ Task{} };
+t.join();

直接创建临时对象即可,可以简化代码并避免引入不必要的局部对象。

不过有件事情需要注意,当我们使用函数对象用于构造 std::thread 的时候,如果你传入的是一个临时对象,且使用的都是 “()”小括号初始化,那么编译器会将此语法解析为函数声明

std::thread t( Task() ); // 函数声明

这被编译器解析为函数声明,是一个返回类型为 std::thread,函数名为 t,接受一个返回 Task 的空参的函数指针类型,也就是 Task(*)()

之所以我们看着抽象是因为这里的形参是无名的,且写了个函数类型。

我们用一个简单的示例为你展示:

void h(int(int));         //#1 声明
+void h(int (*p)(int)){}   //#2 定义

即使我还没有为你讲述概念,我相信你也发现了,#1 和 #2 的区别无非是,#1 省略了形参的名称,还有它的形参是函数类型而不是函数指针类型,没有 *

在确定每个形参的类型后,类型是 “T 的数组”或某个函数类型 T 的形参会调整为具有类型“指向 T 的指针”文档

显然,int(int) 是一个函数类型,它被调整为了一个指向这个函数类型的指针类型。

那么回到我们最初的:

std::thread t( Task() );                    // #1 函数声明
+std::thread t( Task (*p)() ){ return {}; }  // #2 函数定义

#2我们写出了函数形参名称 p,再将函数类型写成函数指针类型,事实上完全等价。我相信,这样,也就足够了。

所以总而言之,建议使用 {} 进行初始化,这是好习惯,大多数时候它是合适的。

C++11 引入的 Lambda 表达式,同样可以作为构造 std::thread 的参数,因为 Lambda 本身就是生成了一个函数对象,它自身就是类类型

#include <iostream>
+#include <thread>
+
+int main(){
+    std::thread thread{ [] {std::cout << "Hello World!\\n"; } };
+    thread.join();
+}

启动线程后(也就是构造 std::thread 对象)我们必须在线程对象的生存期结束之前,即 std::thread::~thread 调用之前,决定它的执行策略,是 join()(合并)还是 detach()(分离)。

我们先前使用的就是 join(),我们聊一下 detach(),当 std::thread 线程对象调用了 detach(),那么就是线程对象放弃了对线程资源的所有权,不再管理此线程,允许此线程独立的运行,在线程退出时释放所有分配的资源。

放弃了对线程资源的所有权,也就是线程对象没有关联活跃线程了,此时 joinable 为 false

在单线程的代码中,对象销毁之后再去访问,会产生未定义行为,多线程增加了这个问题发生的几率。

比如函数结束,那么函数局部对象的生存期都已经结束了,都被销毁了,此时线程函数还持有函数局部对象的指针或引用。

#include <iostream>
+#include <thread>
+
+struct func {
+    int& m_i;
+    func(int& i) :m_i{ i } {}
+    void operator()(int n)const {
+        for (int i = 0; i <= n; ++i) {
+            m_i += i;           // 可能悬空引用
+        }
+    }
+};
+
+int main(){
+    int n = 0;
+    std::thread my_thread{ func{n},100 };
+    my_thread.detach();        // 分离,不等待线程结束
+}                              // 分离的线程可能还在运行
  1. 主线程(main)创建局部对象 n、创建线程对象 my_thread 启动线程,执行任务 func{n},局部对象 n 的引用被子线程持有。传入 100 用于调用 func 的 operator(int)。

  2. my_thread.detach();,joinable() 为 false。线程分离,线程对象不再持有线程资源,线程独立的运行。

  3. 主线程不等待,此时分离的子线程可能没有执行完毕,但是主线程(main)已经结束,局部对象 n 生存期结束,被销毁,而此时子线程还持有它的引用,访问悬空引用,造成未定义行为。my_thread 已经没有关联线程资源,正常析构,没有问题。

解决方法很简单,将 detach() 替换为 join()。

通常非常不推荐使用 detach(),因为程序员必须确保所有创建的线程正常退出,释放所有获取的资源并执行其它必要的清理操作。这意味着通过调用 detach() 放弃线程的所有权不是一种选择,因此 join 应该在所有场景中使用。 一些老式特殊情况不聊。

另外提示一下,也不要想着 detach() 之后,再次调用 join()

my_thread.detach();
+// todo..
+my_thread.join();
+// 函数结束

认为这样可以确保被分离的线程在这里阻塞执行完?

我们前面聊的很清楚了,detach() 是线程分离,线程对象放弃了线程资源的所有权,此时我们的 my_thread 它现在根本没有关联任何线程。调用 join() 是:“阻塞当前线程直至 *this 所标识的线程结束其执行”,我们的线程对象都没有线程,阻塞什么?执行什么呢?

简单点说,必须是 std::thread 的 joinable() 为 true 即线程对象有活跃线程,才能调用 join() 和 detach()。

顺带的,我们还得处理线程运行后的异常问题,举个例子:你在一个函数中构造了一个 std::thread 对象,线程开始执行,函数继续执行下面别的代码,但是如果抛出了异常呢?下面我的 join() 就会被跳过

std::thread my_thread{func{n},10};
+//todo.. 抛出异常的代码
+my_thread.join();

避免程序被抛出的异常所终止,在异常处理过程中调用 join(),从而避免线程对象析构产生问题。

struct func; // 复用之前
+void f(){
+    int n = 0;
+    std::thread t{ func{n},10 };
+    try{
+        // todo.. 一些当前线程可能抛出异常的代码
+        f2();
+    }
+    catch (...){
+        t.join(); // 1
+        throw;
+    }
+    t.join();    // 2
+}

我知道你可能有很多疑问,我们既然 catch 接住了异常,为什么还要 throw?以及为什么我们要两个 join()?

这两个问题其实也算一个问题,如果代码里抛出了异常,就会跳转到 catch 的代码中,执行 join() 确保线程正常执行完成,线程对象可以正常析构。然而此时我们必须再次 throw 抛出异常,因为你要是不抛出,那么你不是还得执行一个 t.join()?显然逻辑不对,自然抛出。

至于这个函数产生的异常,由调用方进行处理,我们只是确保函数 f 中创建的线程正常执行完成,其局部对象正常析构释放。测试代码

我知道你可能会想到:“我在 try 块中最后一行写一个 t.join() ,这样如果前面的代码没有抛出异常,就能正常的调用 join(),如果抛出了异常,那就调用 catch 中的 t.join() 根本不需要最外部 2 那里的 join(),也不需要再次 throw 抛出异常”

void f(){
+    int n = 0;
+    std::thread t{ func{n},10 };
+    try{
+        // todo.. 一些当前线程可能抛出异常的代码
+        f2();
+        t.join(); // try 最后一行调用 join()
+    }
+    catch (...){
+        t.join(); // 如果抛出异常,就在 这里调用 join()
+    }
+}

你是否觉得这样也可以?也没问题?简单的测试运行的确没问题。

但是这是不对的,你要注意我们的注释:“一些当前线程可能抛出异常的代码”,而不是 f2(),我们的 try catch 只是为了让线程对象关联的线程得以正确执行完毕,以及线程对象正确析构。并没有处理什么其他的东西,不掩盖错误,try 块中的代码抛出了异常, catch 接住了,我们理所应当再次抛出。

RAII

资源获取即初始化”(RAII,Resource Acquisition Is Initialization)。

简单的说是:构造函数申请资源,析构函数释放资源,让对象的生命周期和资源绑定。当异常抛出时,C++ 会自动调用对象的析构函数。

我们可以提供一个类,在析构函数中使用 join() 确保线程执行完成,线程对象正常析构。

class thread_guard{
+    std::thread& m_t;
+public:
+    explicit thread_guard(std::thread& t) :m_t{ t } {}
+    ~thread_guard(){
+        std::puts("析构");     // 打印日志 不用在乎
+        if (m_t.joinable()) { // 线程对象当前关联了活跃线程
+            m_t.join();
+        }
+    }
+    thread_guard(const thread_guard&) = delete;
+    thread_guard& operator=(const thread_guard&) = delete;
+};
+void f(){
+    int n = 0;
+    std::thread t{ func{n},10 };
+    thread_guard g(t);
+    f2(); // 可能抛出异常
+}

函数 f 执行完毕,局部对象就要逆序销毁了。因此,thread_guard 对象 g 是第一个被销毁的,调用析构函数即使函数 f2() 抛出了一个异常,这个销毁依然会发生(前提是你捕获了这个异常)。这确保了线程对象 t 所关联的线程正常的执行完毕以及线程对象的正常析构。测试代码

如果异常被抛出但未被捕获那么就会调用 std::terminate。是否对未捕获的异常进行任何栈回溯由实现定义。(简单的说就是不一定会调用析构)

我们的测试代码是捕获了异常的,为了观测,看到它一定打印“析构”。

在 thread_guard 的析构函数中,我们要判断 std::thread 线程对象现在是否有关联的活跃线程,如果有,我们才会执行 join(),阻塞当前线程直到线程对象关联的线程执行完毕。如果不想等待线程结束可以使用 detach() ,但是这让 std::thread 对象失去了线程资源的所有权,难以掌控,具体如何,看情况分析。

复制赋值和复制构造定义为 =delete 可以防止编译器隐式生成,同时会阻止移动构造函数和移动赋值运算符的隐式定义。这样的话,对 thread_guard 对象进行复制或赋值等操作会引发一个编译错误。

不允许这些操作主要在于:这是个管理类,而且顾名思义,它就应该只是单纯的管理线程对象仅此而已,只保有一个引用,单纯的做好 RAII 的事情就行,允许其他操作没有价值。

严格来说其实这里倒也不算 RAII,因为 thread_guard 的构造函数其实并没有申请资源,只是保有了线程对象的引用,在析构的时候进行了 join() 。

传递参数

向可调用对象传递参数很简单,我们前面也都写了,只需要将这些参数作为 std::thread 的构造参数即可。需要注意的是,这些参数会复制到新线程的内存空间中,即使函数中的参数是引用,依然实际是复制

void f(int, const int& a);
+
+int n = 1;
+std::thread t{ f, 3, n };

线程对象 t 的构造没有问题,可以通过编译,但是这个 n 实际上并没有按引用传递,而是按值复制的。我们可以打印地址来验证我们的猜想。

void f(int, const int& a) { // a 并非引用了局部对象 n
+    std::cout << &a << '\\n'; 
+}
+
+int main() {
+    int n = 1;
+    std::cout << &n << '\\n';
+    std::thread t{ f, 3, n };
+    t.join();
+}

运行代码,打印的地址截然不同。

可以通过编译,但通常这不符合我们的需求,因为我们的函数中的参数是引用,我们自然希望能引用调用方传递的参数,而不是复制。如果我们的 f 的形参类型不是 const 的引用,则会产生一个编译错误

想要解决这个问题很简单,我们可以使用标准库的设施 std::refstd::cref 函数模板。

void f(int, int& a) {
+    std::cout << &a << '\\n'; 
+}
+
+int main() {
+    int n = 1;
+    std::cout << &n << '\\n';
+    std::thread t { f, 3, std::ref(n) };
+    t.join();
+}

运行代码,打印地址完全相同。

我们来解释一下,“ref” 其实就是 “reference”(引用)的缩写,意思也很简单,返回“引用”,当然了,不是真的返回引用,它们返回一个包装类 std::reference_wrapper,顾名思义,这个类就是包装引用对象类模板,将对象包装,可以隐式转换为被包装对象的引用。

cref”呢?,这个“c”就是“const”,就是返回了 std::reference_wrapper<const T>。我们不详细介绍他们的实现,你简单认为reference_wrapper可以隐式转换为被包装对象的引用即可,

int n = 0;
+std::reference_wrapper<int> r = std::ref(n);
+int& p = r; // r 隐式转换为 n 的引用 此时 p 引用的就是 n
int n = 0;
+std::reference_wrapper<const int> r = std::cref(n);
+const int& p = r; // r 隐式转换为 n 的 const 的引用 此时 p 引用的就是 n

如果对他们的实现感兴趣,可以观看视频


以上代码void f(int, int&) 如果不使用 std::ref 并不会和前面 void f(int, const int&) 一样只是多了复制,而是会产生编译错误,这是因为 std::thread 内部会将保有的参数副本转换为右值表达式进行传递,这是为了那些只支持移动的类型,左值引用没办法引用右值表达式,所以产生编译错误。

struct move_only {
+    move_only() { std::puts("默认构造"); }
+    move_only(const move_only&) = delete;
+    move_only(move_only&&)noexcept {
+        std::puts("移动构造");
+    }
+};
+
+void f(move_only){}
+
+int main(){
+    move_only obj;
+    std::thread t{ f,std::move(obj) };
+    t.join();
+}

运行测试。

没有 std::ref 自然是会保有一个副本,所以有两次移动构造,一次是被 std::thread 构造函数中初始化副本,一次是调用函数 f

如果还有不理解,不用担心,记住,这一切的问题都会在后面的 std::thread 的构造-源码解析 解释清楚。


成员函数指针也是可调用(Callable)的 ,可以传递给 std::thread 作为构造参数,让其关联的线程执行成员函数。

struct X{
+    void task_run(int)const;
+};
+
+ X x;
+ int n = 0;
+ std::thread t{ &X::task_run,&x,n };
+ t.join();

传入成员函数指针、与其配合使用的对象、调用成员函数的参数,构造线程对象 t,启动线程。

如果你是第一次见到成员指针,那么我们稍微聊一下,&X::task_run 是一个整体,它们构成了成员指针,&类名::非静态成员

成员指针必须和对象一起使用,这是唯一标准用法,成员指针不可以转换到函数指针单独使用,即使是非静态成员函数没有使用任何数据成员。

我们还可以使用模板函数 std::bind与成员指针一起使用

std::thread t{ std::bind(&X::task_run, &x ,n) };

不过需要注意,std::bind 也是默认按值复制的,即使我们的成员函数形参类型为引用:

struct X {
+    void task_run(int& a)const{
+        std::cout << &a << '\\n';
+    }
+};
+
+X x;
+int n = 0;
+std::cout << &n << '\\n';
+std::thread t{ std::bind(&X::task_run,&x,n) };
+t.join();

除非给参数 n 加上 std::ref,就是按引用传递了:

std::thread t{ std::bind(&X::task_run,&x,std::ref(n)) };

void f(const std::string&);
+std::thread t{ f,"hello" };

代码创建了一个调用 f("hello") 的线程。注意,函数 f 实际需要的是一个 std::string 类型的对象作为参数,但这里使用的是字符串字面量,我们要明白“A的引用只能引用A,或者以任何形式转换到A”,字符串字面量的类型是 const char[N] ,它会退化成指向它的const char* 指针,被线程对象保存。在调用 f 的时候,这个指针可以通过 std::string 的转换构造函数,构造出一个临时的 std::string 对象,就能成功调用。

字符串字面量具有静态存储期,指向它的指针这当然没问题了,不用担心生存期的问题,但是如果是指向“动态”对象的指针,就要特别注意了:

void f(const std::string&);
+void test(){
+    char buffer[1024]{};
+    //todo.. code
+    std::thread t{ f,buffer };
+    t.detach();
+}

以上代码可能导致一些问题,buffer 是一个数组对象,作为 std::thread 构造参数的传递的时候会decay-copy (确保实参在按值传递时会退化) 隐式转换为了指向这个数组的指针

我们要特别强调,std::thread 构造是代表“启动线程”,而不是调用我们传递的可调用对象。

std::thread 的构造函数中调用了创建线程的函数(windows 下可能为 _beginthreadex),它将我们传入的参数,f、buffer ,传递给这个函数,在新线程中执行函数 f。也就是说,调用和执行 f(buffer) 并不是说要在 std::thread 的构造函数中,而是在创建的新线程中,具体什么时候执行,取决于操作系统的调度,所以完全有可能函数 test 先执行完,而新线程此时还没有进行 f(buffer) 的调用,转换为std::string,那么 buffer 指针就悬空了,会导致问题。解决方案:

  1. detach() 替换为 join()

    void f(const std::string&);
    +void test(){
    +    char buffer[1024]{};
    +    //todo.. code
    +    std::thread t{ f,buffer };
    +    t.join();
    +}
  2. 显式将 buffer 转换为 std::string

    void f(const std::string&);
    +void test(){
    +    char buffer[1024]{};
    +    //todo.. code
    +    std::thread t{ f,std::string(buffer) };
    +    t.detach();
    +}

std::this_thread

这个命名空间包含了管理当前线程的函数。

  1. yield 建议实现重新调度各执行线程。
  2. get_id 返回当前线程 id。
  3. sleep_for 使当前线程停止执行指定时间。
  4. sleep_until 使当前线程执行停止到指定的时间点。

它们之中最常用的是 get_id,其次是 sleep_for,再然后 yieldsleep_until 较少。

介绍了一下 std::this_thread 命名空间中的四个函数的基本用法,我们后续会经常看到这些函数的使用,不用着急。

std::thread 转移所有权

传入可调用对象以及参数,构造 std::thread 对象,启动线程,而线程对象拥有了线程的所有权,线程是一种系统资源,所以可称作“线程资源”。

std::thread 不可复制。两个 std::thread 对象不可表示一个线程,std::thread 对线程资源是独占所有权。而移动操作可以将一个 std::thread 对象的线程资源所有权转移给另一个 std::thread 对象。

int main() {
+    std::thread t{ [] {
+        std::cout << std::this_thread::get_id() << '\\n';
+    } };
+    std::cout << t.joinable() << '\\n'; // 线程对象 t 当前关联了活跃线程 打印 1
+    std::thread t2{ std::move(t) };    // 将 t 的线程资源的所有权移交给 t2
+    std::cout << t.joinable() << '\\n'; // 线程对象 t 当前没有关联活跃线程 打印 0
+    //t.join(); // Error! t 没有线程资源
+    t2.join();  // t2 当前持有线程资源
+}

这段代码通过移动构造转移了线程对象 t 的线程资源所有权到 t2,这里虽然有两个 std::thread 对象,但是从始至终只有一个线程资源,让持有线程资源的 t2 对象最后调用 join() 阻塞让其线程执行完毕。tt2 都能正常析构。

我们还可以使用移动赋值来转移线程资源的所有权:

int main() {
+    std::thread t;      // 默认构造,没有关联活跃线程
+    std::cout << t.joinable() << '\\n'; // 0
+    std::thread t2{ [] {} };
+    t = std::move(t2); // 转移线程资源的所有权到 t
+    std::cout << t.joinable() << '\\n'; // 1
+    t.join();
+    
+    t2 = std::thread([] {});
+    t2.join();
+}

我们只需要介绍 t2 = std::thread([] {}) ,临时对象是右值表达式,不用调用 std::move,这里相当于是将临时的 std::thread 对象所持有的线程资源转移给 t2t2 再调用 join() 正常析构。

函数返回 std::thread 对象:

std::thread f(){
+    std::thread t{ [] {} };
+    return t;
+}
+
+int main(){
+    std::thread rt = f();
+    rt.join();
+}

这段代码可以通过编译,你是否感到奇怪?我们在函数 f 中创建了一个局部的 std::thread 对象,启动线程,然后返回它。

这里的 return t 重载决议[1]选择到了移动构造,将 t 线程资源的所有权转移给函数调用 f() 返回的临时 std::thread 对象中,然后这个临时对象再用来初始化 rt ,临时对象是右值表达式,这里一样选择到移动构造,将临时对象的线程资源所有权移交给 rt。此时 rt 具有线程资源的所有权,由它调用 join() 正常析构。

如果标准达到 C++17,强制的复制消除(RVO)保证这里少一次移动构造的开销(临时对象初始化 rt 的这次)。

所有权也可以在函数内部传递

void f(std::thread t){
+    t.join();
+}
+
+int main(){
+    std::thread t{ [] {} };
+    f(std::move(t));
+    f(std::thread{ [] {} });
+}

std::move 将 t 转换为了一个右值表达式,初始化函数f 形参 t,选择到了移动构造转移线程资源的所有权,在函数中调用 t.join() 后正常析构。std::thread{ [] {} } 构造了一个临时对象,本身就是右值表达式,初始化函数f 形参 t,移动构造转移线程资源的所有权到 tt.join() 后正常析构。

本节内容总体来说是很简单的,如果你有些地方无法理解,那只有一种可能,“对移动语义不了解”,不过这也不是问题,在后续我们详细介绍 std::thread 构造函数的源码即可,不用着急。

`,162)),i("h2",B,[i("a",g,[i("span",null,[l(h,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:t(()=>s[0]||(s[0]=[i("code",null,"std::thread",-1),a(" 的构造-源码解析")])),_:1})])])]),s[5]||(s[5]=n('

我们上一个大节讲解了线程管理,也就是 std::thread 的使用,其中的重中之重就是它的构造,传递参数。我们用源码实现为各位从头讲解。

了解其实现,才能更好的使用它,同时也能解释其使用与学习中的各种问题。如:

',3)),i("p",null,[s[2]||(s[2]=a("当你看完 ")),l(h,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:t(()=>s[1]||(s[1]=[i("strong",null,[i("code",null,"std::thread"),a(" 的构造-源码解析")],-1)])),_:1}),s[3]||(s[3]=a(" 后,可以再回过头来问问自己是否能够回答这些问题。"))]),s[6]||(s[6]=n(`

实现 joining_thread

这个类和 std::thread 的区别就是析构函数会自动 join 。如果您好好的学习了上一节的内容,阅读了 std::thread 的源码,以下内容不会对您构成任何的难度。

我们存储一个 std::thread 作为底层数据成员,稍微注意一下构造函数和赋值运算符的实现即可。

class joining_thread {
+    std::thread t;
+public:
+    joining_thread()noexcept = default;
+    template<typename Callable, typename... Args>
+    explicit joining_thread(Callable&& func, Args&&...args) :
+        t{ std::forward<Callable>(func), std::forward<Args>(args)... } {}
+    explicit joining_thread(std::thread t_)noexcept : t{ std::move(t_) } {}
+    joining_thread(joining_thread&& other)noexcept : t{ std::move(other.t) } {}
+
+    joining_thread& operator=(std::thread&& other)noexcept {
+        if (joinable()) { // 如果当前有活跃线程,那就先执行完
+            join();
+        }
+        t = std::move(other);
+        return *this;
+    }
+    ~joining_thread() {
+        if (joinable()) {
+            join();
+        }
+    }
+    void swap(joining_thread& other)noexcept {
+        t.swap(other.t);
+    }
+    std::thread::id get_id()const noexcept {
+        return t.get_id();
+    }
+    bool joinable()const noexcept {
+        return t.joinable();
+    }
+    void join() {
+        t.join();
+    }
+    void detach() {
+        t.detach();
+    }
+    std::thread& data()noexcept {
+        return t;
+    }
+    const std::thread& data()const noexcept {
+        return t;
+    }
+};

简单使用一下:

int main(){
+    std::cout << std::this_thread::get_id() << '\\n';
+    joining_thread thread{[]{
+            std::cout << std::this_thread::get_id() << '\\n';
+    } };
+    joining_thread thread2{ std::move(thread) };
+}

使用容器管理线程对象,等待线程执行结束

void do_work(std::size_t id){
+    std::cout << id << '\\n';
+}
+
+int main(){
+    std::vector<std::thread>threads;
+    for (std::size_t i = 0; i < 10; ++i){
+        threads.emplace_back(do_work, i); // 产生线程
+    }
+    for(auto& thread:threads){
+        thread.join();                   // 对每个线程对象调用 join()
+    }
+}

运行测试

线程对象代表了线程,管理线程对象也就是管理线程,这个 vector 对象管理 10 个线程,保证他们的执行、退出。

使用我们这节实现的 joining_thread 则不需要最后的循环 join()

int main(){
+    std::vector<joining_thread>threads;
+    for (std::size_t i = 0; i < 10; ++i){
+        threads.emplace_back(do_work, i);
+    }
+}

运行测试

如果你自己编译了这些代码,相信你注意到了,打印的是乱序的,没什么规律,而且重复运行的结果还不一样,这是正常现象。多线程执行就是如此,无序且操作可能被打断。使用互斥量可以解决这些问题,这也就是下一章节的内容了。

C++20 std::jthread

std::jthread 相比于 C++11 引入的 std::thread,只是多了两个功能:

  1. RAII 管理:在析构时自动调用 join()

  2. 线程停止功能:线程的取消/停止。

零开销原则

我知道你肯定有疑问,为什么 C++20 不直接为 std::thread 增加这两个功能,而是创造一个新的线程类型呢?

这就是 C++ 的设计哲学,零开销原则你不需要为你没有用到的(特性)付出额外的开销

std::jthread 的通常实现就是单纯的保有 std::thread + std::stop_source 这两个数据成员:

thread _Impl;
+stop_source _Ssource;

MSVC STLlibstdc++libc++ 均是如此。

stop_source 通常占 8 字节,先前 std::thread 源码解析详细聊过其不同标准库对其保有的成员不同,简单来说也就是 64 位环境,大小为 16 或者 8。也就是 sizeof(std::jthread) 的值相比 std::thread 会多 8 ,为 2416

引入 std::jthread 符合零开销原则,它通过创建新的类型提供了更多的功能,而没有影响到原来 std::thread 的性能和内存占用。

线程停止

第一个功能很简单,不用赘述,我们直接聊这个所谓的“线程停止”就好。

首先要明确,C++ 的 std::jthread 提供的线程停止功能并不同于常见的 POSIX 函数 pthread_cancelpthread_cancel 是一种发送取消请求的函数,但并不是强制性的线程终止方式。目标线程的可取消性状态和类型决定了取消何时生效。当取消被执行时,进行清理和终止线程[2]

std::jthread 所谓的线程停止只是一种基于用户代码的控制机制,而不是一种与操作系统系统有关系的线程终止。使用 std::stop_sourcestd::stop_token 提供了一种优雅地请求线程停止的方式,但实际上停止的决定和实现都由用户代码来完成

using namespace std::literals::chrono_literals;
+
+void f(std::stop_token stop_token, int value){
+    while (!stop_token.stop_requested()){ // 检查是否已经收到停止请求
+        std::cout << value++ << ' ' << std::flush;
+        std::this_thread::sleep_for(200ms);
+    }
+    std::cout << std::endl;
+}
+
+int main(){
+    std::jthread thread{ f, 1 }; // 打印 1..15 大约 3 秒
+    std::this_thread::sleep_for(3s);
+    // jthread 的析构函数调用 request_stop() 和 join()。
+}

运行测试。截止目前(2024/5/29 clang19 未发布) libc++ 不完全支持 std::jthread,建议使用 clang 的开发者链接 libstdc++MSVC STL 进行编译。如果非要使用 libc++,可以添加 -fexperimental-library 编译选项,启用不稳定库功能和实验库功能。这样,我们的这段代码就可以通过编译。

std::jthread 提供了三个成员函数进行所谓的线程停止

上面这段代码并未出现这三个函数的任何一个调用,不过在 jthread 的析构函数中,会调用 request_stop 请求线程停止。

void _Try_cancel_and_join() noexcept {
+    if (_Impl.joinable()) {
+        _Ssource.request_stop();
+        _Impl.join();
+    }
+}
+~jthread() {
+    _Try_cancel_and_join();
+}

至于 std::jthread thread{ f, 1 }; 函数 f 的 std::stop_token 的形参是谁传递的?其实就是线程对象自己调用 get_token() 传递的 ,源码一眼便可发现:

template <class _Fn, class... _Args, enable_if_t<!is_same_v<remove_cvref_t<_Fn>, jthread>, int> = 0>
+_NODISCARD_CTOR_JTHREAD explicit jthread(_Fn&& _Fx, _Args&&... _Ax) {
+    if constexpr (is_invocable_v<decay_t<_Fn>, stop_token, decay_t<_Args>...>) {
+        _Impl._Start(_STD forward<_Fn>(_Fx), _Ssource.get_token(), _STD forward<_Args>(_Ax)...);
+    } else {
+        _Impl._Start(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...);
+    }
+}

也就是说虽然最初的那段代码看似什么都没调用,但是实际什么都调用了。这所谓的线程停止,其实简单来说,有点像外部给线程传递信号一样。


std::stop_source

std::stop_token

总结

零开销原则应当很好理解。我们本节的难点只在于使用到了一些 MSVC STL 的源码实现来配合理解,其主要在于“线程停止”。线程停止设施你会感觉是一种类似于外部与线程进行某种信号通信的设施,std::stop_sourcestd::stop_token 都与线程对象关联,然后来管理函数到底如何执行。

我们并没有举很多的例子,我们觉得这一个小例子所牵扯到的内容也就足够了,关键在于理解其设计与概念。

总结

本章节的内容围绕着:“使用线程”,也就是"使用 std::thread"展开, std::thread 是我们学习 C++ 并发支持库的重中之重,在最后谈起了 C++20 引入的 std::jthread ,它的使用与概念也非常的简单。本章的内容在市面上并不算少见,但是却是少有的准确与完善。即使你早已学习乃至使用 C++ 标准库进行多线程编程,我相信本章也一定可以让你收获良多。

并且如果是第一次学习本章的内容,可能会有一些难以理解的地方。建议你多思考、多记忆,并在以后反复查看和实践。

我尽量以简单通俗的方式进行讲解。学完本章后,你可能还无法在实际环境利用多线程提升程序效率,至少还需要学习到使用互斥量来保护共享数据,才能实际应用多线程编程。


  1. 重载决议简单来说就是编译器必须要根据规则选择最合适的函数重载进行调用↩︎

  2. 注:通常需要线程执行的函数中有一些系统调用,设置取消点,线程会在那个调用中结束。 ↩︎

  3. 注:“停止状态”指的是由 std::stop_source 和 std::stop_token 管理的一种标志,用于通知线程应该停止执行。这种机制不是强制性的终止线程,而是提供一种线程内外都能检查和响应的信号。 ↩︎

`,52))])}const A=e(r,[["render",c],["__file","02使用线程.html.vue"]]),E=JSON.parse('{"path":"/md/02%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B.html","title":"使用线程","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"Hello World","slug":"hello-world","link":"#hello-world","children":[]},{"level":2,"title":"当前环境支持并发线程数","slug":"当前环境支持并发线程数","link":"#当前环境支持并发线程数","children":[]},{"level":2,"title":"线程管理","slug":"线程管理","link":"#线程管理","children":[{"level":3,"title":"启动新线程","slug":"启动新线程","link":"#启动新线程","children":[]},{"level":3,"title":"RAII","slug":"raii","link":"#raii","children":[]},{"level":3,"title":"传递参数","slug":"传递参数","link":"#传递参数","children":[]},{"level":3,"title":"std::this_thread","slug":"std-this-thread","link":"#std-this-thread","children":[]},{"level":3,"title":"std::thread 转移所有权","slug":"std-thread-转移所有权","link":"#std-thread-转移所有权","children":[]}]},{"level":2,"title":"std::thread 的构造-源码解析","slug":"std-thread-的构造-源码解析","link":"#std-thread-的构造-源码解析","children":[]},{"level":2,"title":"实现 joining_thread","slug":"实现-joining-thread","link":"#实现-joining-thread","children":[]},{"level":2,"title":"C++20 std::jthread","slug":"c-20-std-jthread","link":"#c-20-std-jthread","children":[{"level":3,"title":"零开销原则","slug":"零开销原则","link":"#零开销原则","children":[]},{"level":3,"title":"线程停止","slug":"线程停止","link":"#线程停止","children":[]},{"level":3,"title":"总结","slug":"总结","link":"#总结","children":[]}]},{"level":2,"title":"总结","slug":"总结-1","link":"#总结-1","children":[]}],"git":{"createdTime":1709646719000,"updatedTime":1726577909000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":16},{"name":"归故里","email":"3326284481@qq.com","commits":10},{"name":"A. Jiang","email":"de34@live.cn","commits":2}]},"readingTime":{"minutes":35.99,"words":10796},"filePathRelative":"md/02使用线程.md","localizedDate":"2024年3月5日","excerpt":"\\n

在标准 C++ 中,std::thread 可以指代线程,本章中,使用线程也就是代表使用 std::thread (C++20 std::jthread)。

\\n

本章围绕着它们来讲解。

\\n

Hello World

\\n

在我们初学 C++ 的时候应该都写过这样一段代码:

"}');export{A as comp,E as data}; diff --git "a/assets/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html-Cuvtvbpc.js" "b/assets/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html-Cuvtvbpc.js" new file mode 100644 index 00000000..cb288512 --- /dev/null +++ "b/assets/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html-Cuvtvbpc.js" @@ -0,0 +1,339 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,d as i,a as n,e as l,o as h,r as k}from"./app-Ca-A-iaw.js";const p={};function d(r,s){const a=k("Mermaid");return h(),t("div",null,[s[4]||(s[4]=i(`

st::asyncstd::future 源码解析

前言

和之前一样的,我们以 MSVC STL 的实现进行讲解。

std::future,即未来体,是用来管理一个共享状态的类模板,用于等待关联任务的完成并获取其返回值。它自身不包含状态,需要通过如 std::async 之类的函数进行初始化。std::async 函数模板返回一个已经初始化且具有共享状态的 std::future 对象。

因此,所有操作的开始应从 std::async 开始讲述。

需要注意的是,它们的实现彼此之间会共用不少设施,在讲述 std::async 源码的时候,对于 std::future 的内容同样重要。

MSVC STL 很早之前就不支持 C++11 了,它的实现完全基于 C++14,出于某些原因 C++17 的一些库(如 invoke, _v 变量模板)被向后移植到了 C++14 模式,所以即使是 C++11 标准库设施,实现中可能也是使用到了 C++14、17 的东西。

注意,不用感到奇怪。

std::async

_EXPORT_STD template <class _Fty, class... _ArgTypes>
+_NODISCARD_ASYNC future<_Invoke_result_t<decay_t<_Fty>, decay_t<_ArgTypes>...>> async(
+    launch _Policy, _Fty&& _Fnarg, _ArgTypes&&... _Args) {
+    // manages a callable object launched with supplied policy
+    using _Ret   = _Invoke_result_t<decay_t<_Fty>, decay_t<_ArgTypes>...>;
+    using _Ptype = typename _P_arg_type<_Ret>::type;
+    _Promise<_Ptype> _Pr(
+        _Get_associated_state<_Ret>(_Policy, _Fake_no_copy_callable_adapter<_Fty, _ArgTypes...>(
+                                                 _STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...)));
+
+    return future<_Ret>(_From_raw_state_tag{}, _Pr._Get_state_for_future());
+}
+
+_EXPORT_STD template <class _Fty, class... _ArgTypes>
+_NODISCARD_ASYNC future<_Invoke_result_t<decay_t<_Fty>, decay_t<_ArgTypes>...>> async(
+    _Fty&& _Fnarg, _ArgTypes&&... _Args) {
+    // manages a callable object launched with default policy
+    return _STD async(launch::async | launch::deferred, _STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...);
+}

这段代码最直观的信息是,函数模板 std::async 有两个重载,其中第二个重载只是给了一个执行策略并将参数全部转发,调用第一个重载。也就是不指明执行策略的时候就会匹配到第二个重载版本。因此我们也只需要关注第二个版本了。

`,10)),n("ol",null,[s[2]||(s[2]=i(`
  • 模板参数和函数体外部信息

  • 函数返回类型:

    future<_Invoke_result_t<decay_t<_Fty>, decay_t<_ArgTypes>...>>

    虽然看起来复杂,但实际上是通过 _Invoke_result_t 获取可调用对象的返回类型。与标准库中的 std::invoke_result_t 基本相同。

    可以举一个使用 std::invoke_result_t 的例子:

    template<class Fty, class... ArgTypes>
    +std::future<std::invoke_result_t<std::decay_t<Fty>,std::decay_t<ArgTypes>...>>
    +test_fun(Fty&& f,ArgTypes&&... args){
    +    return std::async(std::launch::async, std::forward<Fty>(f), std::forward<ArgTypes>(args)...);
    +}
    +
    +auto result = test_fun([](int) {return 1; }, 1); // std::future<int>

    值得注意的是,所有类型在传递前都进行了 decay 处理,也就是说不存在引用类型,是默认按值传递与 std::thread 的行为一致。

  • 函数形参:

    async(launch _Policy, _Fty&& _Fnarg, _ArgTypes&&... _Args)

    launch _Policy: 表示任务的执行策略,可以是 launch::async(表示异步执行)或 launch::deferred(表示延迟执行),或者两者的组合。

    _Fty&& _Fnarg: 可调用对象,通过完美转发机制将其转发给实际的异步任务。

    _ArgTypes&&... _Args: 调用该可调用对象时所需的参数,同样通过完美转发机制进行转发。

  • using _Ret = _Invoke_result_t<decay_t<_Fty>, decay_t<_ArgTypes>...>;

    using _Ptype = typename _P_arg_type<_Ret>::type;

  • _Promise<_Ptype> _Pr

    _Promise 类型本身不重要,很简单,关键还在于其存储的数据成员。

    template <class _Ty>
    +class _Promise {
    +public:
    +    _Promise(_Associated_state<_Ty>* _State_ptr) noexcept : _State(_State_ptr, false), _Future_retrieved(false) {}
    +
    +    _Promise(_Promise&&) = default;
    +
    +    _Promise& operator=(_Promise&&) = default;
    +
    +    void _Swap(_Promise& _Other) noexcept {
    +        _State._Swap(_Other._State);
    +        _STD swap(_Future_retrieved, _Other._Future_retrieved);
    +    }
    +
    +    const _State_manager<_Ty>& _Get_state() const noexcept {
    +        return _State;
    +    }
    +    _State_manager<_Ty>& _Get_state() noexcept {
    +        return _State;
    +    }
    +
    +    _State_manager<_Ty>& _Get_state_for_set() {
    +        if (!_State.valid()) {
    +            _Throw_future_error2(future_errc::no_state);
    +        }
    +
    +        return _State;
    +    }
    +
    +    _State_manager<_Ty>& _Get_state_for_future() {
    +        if (!_State.valid()) {
    +            _Throw_future_error2(future_errc::no_state);
    +        }
    +
    +        if (_Future_retrieved) {
    +            _Throw_future_error2(future_errc::future_already_retrieved);
    +        }
    +
    +        _Future_retrieved = true;
    +        return _State;
    +    }
    +
    +    bool _Is_valid() const noexcept {
    +        return _State.valid();
    +    }
    +
    +    bool _Is_ready() const noexcept {
    +        return _State._Is_ready();
    +    }
    +
    +    _Promise(const _Promise&)            = delete;
    +    _Promise& operator=(const _Promise&) = delete;
    +
    +private:
    +    _State_manager<_Ty> _State;
    +    bool _Future_retrieved;
    +};

    _Promise 类模板是对 _State_manager 类模板的包装,并增加了一个表示状态的成员 _Future_retrieved

    状态成员用于跟踪 _Promise 是否已经调用过 _Get_state_for_future() 成员函数;它默认为 false,在第一次调用 _Get_state_for_future() 成员函数时被置为 true,如果二次调用,就会抛出 future_errc::future_already_retrieved 异常。

    这类似于 std::promise 调用 get_future() 成员函数。测试

    _Promise 的构造函数接受的却不是 _State_manager 类型的对象,而是 _Associated_state 类型的指针,用来初始化数据成员 _State

    _State(_State_ptr, false)

    这是因为实际上 _State_manager 类型的实现就是保有了 Associated_state 指针,以及一个状态成员:

    private:
    +    _Associated_state<_Ty>* _Assoc_state = nullptr;
    +    bool _Get_only_once                  = false;

    也可以简单理解 _State_manager 又是对 Associated_state 的包装,其中的大部分接口实际上是调用 _Assoc_state 的成员函数,如:

    void wait() const { // wait for signal
    +    if (!valid()) {
    +        _Throw_future_error2(future_errc::no_state);
    +    }
    +
    +    _Assoc_state->_Wait();
    +}

    然而它也是最为复杂的,我们在讲 std::thread-构造源码解析 中提到过一句话:

    public:
    +    conditional_t<is_default_constructible_v<_Ty>, _Ty, _Result_holder<_Ty>> _Result;
    +    exception_ptr _Exception;
    +    mutex _Mtx;
    +    condition_variable _Cond;
    +    bool _Retrieved;
    +    int _Ready;
    +    bool _Ready_at_thread_exit; // TRANSITION, ABI
    +    bool _Has_stored_result;
    +    bool _Running;

    这是 Associated_state 的数据成员,其中有许多的 bool 类型的状态成员,同时最为明显重要的三个设施是:异常指针互斥量条件变量

    根据这些数据成员我们就能很轻松的猜测出 Associated_state 模板类的作用和工作方式。

    _Associated_state 模板类负责管理异步任务的状态,包括结果的存储、异常的处理以及任务完成的通知。它是实现 std::futurestd::promise 的核心组件之一,通过 _State_manager_Promise 类模板对其进行封装和管理,提供更高级别的接口和功能。

    +---------------------+
    +|    _Promise<_Ty>    |
    +|---------------------|
    +| - _State            | -----> +---------------------+
    +| - _Future_retrieved |       |  _State_manager<_Ty> |
    ++---------------------+       |----------------------|
    +                              | - _Assoc_state       | -----> +-------------------------+
    +                              | - _Get_only_once     |       | _Associated_state<_Ty>*   |
    +                              +----------------------+       +-------------------------+

    上图是 _Promise、_State_manager_Associated_state 之间的包含关系示意图,理解这个关系对我们后面非常重要

    到此就可以了,我们不需要在此处就详细介绍这三个类,但是你需要大概的看一下,这非常重要。

  • `,5)),n("li",null,[s[0]||(s[0]=i(`

    初始化 _Promie 对象:

    _Get_associated_state<_Ret>(_Policy, _Fake_no_copy_callable_adapter<_Fty, _ArgTypes...>(_STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...))

    很明显,这是一个函数调用,将我们 std::async 的参数全部转发给它,它是重要而直观的。

    _Get_associated_state 函数根据启动模式(launch)来决定创建的异步任务状态对象类型:

    template <class _Ret, class _Fty>
    +_Associated_state<typename _P_arg_type<_Ret>::type>* _Get_associated_state(launch _Psync, _Fty&& _Fnarg) {
    +    // construct associated asynchronous state object for the launch type
    +    switch (_Psync) { // select launch type
    +    case launch::deferred:
    +        return new _Deferred_async_state<_Ret>(_STD forward<_Fty>(_Fnarg));
    +    case launch::async: // TRANSITION, fixed in vMajorNext, should create a new thread here
    +    default:
    +        return new _Task_async_state<_Ret>(_STD forward<_Fty>(_Fnarg));
    +    }
    +}

    _Get_associated_state 函数返回一个 _Associated_state 指针,该指针指向一个新的 _Deferred_async_state_Task_async_state 对象。这两个类分别对应于异步任务的两种不同执行策略:延迟执行异步执行

    其实就是父类指针指向了子类对象,注意 _Associated_state 是有虚函数的,子类进行覆盖,这很重要。比如在后续聊 std::futureget() 成员函数的时候就会讲到

    这段代码也很好的说明在 MSVC STL 中,launch::async | launch::deferredlaunch::async 的行为是相同的,即都是异步执行。


    _Task_async_state_Deferred_async_state 类型

    template <class _Rx>
    +class _Task_async_state : public _Packaged_state<_Rx()>
    +template <class _Rx>
    +class _Deferred_async_state : public _Packaged_state<_Rx()>

    _Task_async_state_Deferred_async_state 都继承自 _Packaged_state,用于异步执行任务。它们的构造函数都接受一个函数对象,并将其转发给基类 _Packaged_state 的构造函数。

    _Packaged_state 类型只有一个数据成员 std::function 类型的对象 _Fn,它用来存储需要执行的异步任务,而它又继承自 _Associated_state

    template <class _Ret, class... _ArgTypes>
    +class _Packaged_state<_Ret(_ArgTypes...)>
    +    : public _Associated_state<_Ret>
    `,14)),l(a,{id:"mermaid-235",code:"eJxLzkksLnbJTEwvSszlUlBQAPMV4h2Li/OTMxNLUlPii0uAlEI1SBIE9PT0QMxaLiTVAYnJ2YnpmGp1i0tSrKzSSvOSSzLz8xTi3fIwtIYkFmfHJxZX5iVjaLaycs7PSy4tKkrNS660sioBqrQpy89MsYPowjDKJTUtFag4BdM4iDJMT9nU6OpiuN5K4fnu5c8694O1oMlBNGC4mbAWrG6Da+MCAFPNg0c="}),s[1]||(s[1]=i(`

    我们直接先看 _Task_async_state_Deferred_async_state 类型的构造函数实现即可:

    template <class _Fty2>
    +_Task_async_state(_Fty2&& _Fnarg) : _Mybase(_STD forward<_Fty2>(_Fnarg)) {
    +    _Task = ::Concurrency::create_task([this]() { // do it now
    +        this->_Call_immediate();
    +    });
    +
    +    this->_Running = true;
    +}
    +template <class _Fty2>
    +_Deferred_async_state(const _Fty2& _Fnarg) : _Packaged_state<_Rx()>(_Fnarg) {}
    +
    +template <class _Fty2>
    +_Deferred_async_state(_Fty2&& _Fnarg) : _Packaged_state<_Rx()>(_STD forward<_Fty2>(_Fnarg)) {}

    _Task_async_state 它的数据成员:

    private:
    +    ::Concurrency::task<void> _Task;

    _Task_async_state 的实现使用到了微软自己实现的 并行模式库(PPL),简而言之 launch::async 策略并不是单纯的创建线程让任务执行,而是使用了微软的 ::Concurrency::create_task ,它从线程池中获取线程并执行任务返回包装对象。

    this->_Call_immediate(); 是调用 _Task_async_state 的父类 _Packaged_state 的成员函数 _Call_immediate

    _Packaged_state 有三个偏特化_Call_immediate 自然也拥有三个不同版本,用来应对我们传入的函数对象返回类型的三种情况:

    void _Call_immediate(_ArgTypes... _Args) {
    +    _TRY_BEGIN
    +    // 调用函数对象并捕获异常 传递返回值
    +    this->_Set_value(_Fn(_STD forward<_ArgTypes>(_Args)...), false);
    +    _CATCH_ALL
    +    // 函数对象抛出异常就记录
    +    this->_Set_exception(_STD current_exception(), false);
    +    _CATCH_END
    +}
    void _Call_immediate(_ArgTypes... _Args) {
    +    _TRY_BEGIN
    +    // 调用函数对象并捕获异常 传递返回值的地址
    +    this->_Set_value(_STD addressof(_Fn(_STD forward<_ArgTypes>(_Args)...)), false);
    +    _CATCH_ALL
    +    // 函数对象抛出异常就记录
    +    this->_Set_exception(_STD current_exception(), false);
    +    _CATCH_END
    +}
    void _Call_immediate(_ArgTypes... _Args) { // call function object
    +    _TRY_BEGIN
    +    // 调用函数对象并捕获异常 因为返回 void 不获取返回值 而是直接 _Set_value 传递一个 1
    +    _Fn(_STD forward<_ArgTypes>(_Args)...);
    +    this->_Set_value(1, false);
    +    _CATCH_ALL
    +    // 函数对象抛出异常就记录
    +    this->_Set_exception(_STD current_exception(), false);
    +    _CATCH_END
    +}

    说白了,无非是把返回引用类型的可调用对象返回的引用获取地址传递给 _Set_value,把返回 void 类型的可调用对象传递一个 1 表示正确执行的状态给 _Set_value

    _Call_immediate 则又调用了父类 _Associated_state 的成员函数(_Set_value_set_exception),传递的可调用对象执行结果,以及可能的异常,将结果或异常存储在 _Associated_state 中。

    _Deferred_async_state 并不会在线程中执行任务,但它同样调用 _Call_immediate 函数执行保有的函数对象,它有一个 _Run_deferred_function 函数:

    void _Run_deferred_function(unique_lock<mutex>& _Lock) override { // run the deferred function
    +    _Lock.unlock();
    +    _Packaged_state<_Rx()>::_Call_immediate();
    +    _Lock.lock();
    +}

    然后也就和上面说的没什么区别了 。

    `,18))]),s[3]||(s[3]=i(`
  • 返回 std::future

    return future<_Ret>(_From_raw_state_tag{}, _Pr._Get_state_for_future());

    它选择到了 std::future 的构造函数是:

    future(_From_raw_state_tag, const _Mybase& _State) noexcept : _Mybase(_State, true) {}
    using _Mybase = _State_manager<_Ty*>;

    _From_raw_state_tag 是一个空类,并没有什么特殊作用,只是为了区分重载。

    _Get_state_for_future 代码如下:

    _State_manager<_Ty>& _Get_state_for_future() {
    +    if (!_State.valid()) {
    +        _Throw_future_error2(future_errc::no_state);
    +    }
    +
    +    if (_Future_retrieved) {
    +        _Throw_future_error2(future_errc::future_already_retrieved);
    +    }
    +
    +    _Future_retrieved = true;
    +    return _State;
    +}

    检查状态,修改状态,返回底层 _State ,完成转移状态。

    总而言之这行代码通过调用 std::future 的特定构造函数,将 _Promise 对象中的 _State_manager 状态转移到 std::future 对象中,从而创建并返回一个 std::future 对象。这使得 std::future 可以访问并管理异步任务的状态,包括获取任务的结果或异常,并等待任务的完成。

  • `,1))]),s[5]||(s[5]=i(`

    std::future

    先前的 std::async 的内容非常之多,希望各位开发者不要搞晕了,其实重中之重主要是那几个类,关系图如下:

    +---------------------+
    +|    _Promise<_Ty>    |
    +|---------------------|
    +| - _State            | -----> +---------------------+
    +| - _Future_retrieved |       |  _State_manager<_Ty> |
    ++---------------------+       |----------------------|
    +                              | - _Assoc_state       | -----> +-------------------------+
    +                              | - _Get_only_once     |       | _Associated_state<_Ty>*   |
    +                              +----------------------+       +-------------------------+

    _Promise、_State_manager_Associated_state 之间的包含关系示意图

    `,4)),l(a,{id:"mermaid-332",code:"eJxLzkksLnbJTEwvSszlUlBQAPMV4h2Li/OTMxNLUlPii0uAlEI1SBIE9PT0QMxaLiTVAYnJ2YnpmGp1i0tSrKzSSvOSSzLz8xTi3fIwtIYkFmfHJxZX5iVjaLaycs7PSy4tKkrNS660sioBqrQpy89MsYPowjDKJTUtFag4BdM4iDJMT9nU6OpiuN5K4fnu5c8694O1oMlBNGC4mbAWrG6Da+MCAFPNg0c="}),s[6]||(s[6]=i(`

    _Asscociated_state_Packaged_state_Task_async_state_Deferred_async_state 继承关系示意图

    这其中的 _Associated_state_State_manager 类型是我们的核心,它在后续 std::future 乃至其它并发设施都有众多使用。


    介绍 std::future 的源码我认为无需过多篇幅或者示例,引入过多的源码实现等等从头讲解,只会让各位开发者感觉复杂难。

    我们直接从它的最重要、常见的 get()wait() 成员函数开始即可。

    std::future<int> future = std::async([] { return 0; });
    +future.get();

    我们先前已经详细介绍过了 std::async 返回 std::future 的步骤。以上这段代码,唯一的问题是:future.get() 做了什么?

    _EXPORT_STD template <class _Ty>
    +class future : public _State_manager<_Ty> {
    +    // class that defines a non-copyable asynchronous return object that holds a value
    +private:
    +    using _Mybase = _State_manager<_Ty>;
    +
    +public:
    +    static_assert(!is_array_v<_Ty> && is_object_v<_Ty> && is_destructible_v<_Ty>,
    +        "T in future<T> must meet the Cpp17Destructible requirements (N4950 [futures.unique.future]/4).");
    +
    +    future() = default;
    +
    +    future(future&& _Other) noexcept : _Mybase(_STD move(_Other), true) {}
    +
    +    future& operator=(future&&) = default;
    +
    +    future(_From_raw_state_tag, const _Mybase& _State) noexcept : _Mybase(_State, true) {}
    +
    +    _Ty get() {
    +        // block until ready then return the stored result or throw the stored exception
    +        future _Local{_STD move(*this)};
    +        return _STD move(_Local._Get_value());
    +    }
    +
    +    _NODISCARD shared_future<_Ty> share() noexcept {
    +        return shared_future<_Ty>(_STD move(*this));
    +    }
    +
    +    future(const future&)            = delete;
    +    future& operator=(const future&) = delete;
    +};

    std::future 其实还有两种特化,不过整体大差不差。

    template <class _Ty>
    +class future<_Ty&> : public _State_manager<_Ty*>
    template <>
    +class future<void> : public _State_manager<int>

    也就是对返回类型为引用和 void 的情况了。其实先前已经聊过很多次了,无非就是内部的返回引用实际按指针操作,返回 void,那么也得给个 1。参见前面的 _Call_immediate 实现。

    可以看到 std::future 整体代码实现很少,很简单,那是因为其实现细节都在其父类 _State_manager 。然而 _State_manager 又保有一个 _Associated_state<_Ty>* 类型的成员。而 _Associated_state 又是一切的核心,之前已经详细描述过了。

    阅读 std::future 的源码你可能注意到了一个问题:*没有 wait()成员函数?

    它的定义来自于父类 _State_manager

    void wait() const { // wait for signal
    +    if (!valid()) {
    +        _Throw_future_error2(future_errc::no_state);
    +    }
    +
    +    _Assoc_state->_Wait();
    +}

    然而这还不够,实际上还需要调用了 _Associated_statewait() 成员函数:

    virtual void _Wait() { // wait for signal
    +    unique_lock<mutex> _Lock(_Mtx);
    +    _Maybe_run_deferred_function(_Lock);
    +    while (!_Ready) {
    +        _Cond.wait(_Lock);
    +    }
    +}

    先使用锁进行保护,然后调用函数,再循环等待任务执行完毕。_Maybe_run_deferred_function

    void _Maybe_run_deferred_function(unique_lock<mutex>& _Lock) { // run a deferred function if not already done
    +    if (!_Running) { // run the function
    +        _Running = true;
    +        _Run_deferred_function(_Lock);
    +    }
    +}

    _Run_deferred_function 相信你不会陌生,在讲述 std::async 源码中其实已经提到了,就是解锁然后调用 _Call_immediate 罢了。

    void _Run_deferred_function(unique_lock<mutex>& _Lock) override { // run the deferred function
    +    _Lock.unlock();
    +    _Packaged_state<_Rx()>::_Call_immediate();
    +    _Lock.lock();
    +}

    _Call_immediate 就是执行我们实际传入的函数对象,先前已经提过。

    _Wait 函数中调用 _Maybe_run_deferred_function 是为了确保延迟执行(launch::deferred)的任务能够在等待前被启动并执行完毕。这样,在调用 wait 时可以正确地等待任务完成。

    至于下面的循环等待部分:

    while (!_Ready) {
    +    _Cond.wait(_Lock);
    +}

    这段代码使用了条件变量、互斥量、以及一个状态对象,主要目的有两个:

    1. 避免虚假唤醒
    2. 等待 launch::async 的任务在其它线程执行完毕

    这样,当调用 wait 函数时,可以保证无论任务是 launch::deferred 还是 launch::async 模式,当前线程都会正确地等待任务的完成信号,然后继续执行。


    wait() 介绍完了,那么接下来就是 get()

    // std::future<void>
    +void get() {
    +    // block until ready then return or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    _Local._Get_value();
    +}
    +// std::future<T>
    +_Ty get() {
    +    // block until ready then return the stored result or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    return _STD move(_Local._Get_value());
    +}
    +// std::future<T&>
    +_Ty& get() {
    +    // block until ready then return the stored result or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    return *_Local._Get_value();
    +}

    在第四章的 “future 的状态变化”一节中我们也详细聊过 get() 成员函数。由于 future 本身有三个特化,get() 成员函数自然那也有三个版本,不过总体并无多大区别。

    它们都是将当前对象(*this)的共享状态转移给了这个局部对象 _Local,然后再去调用父类_State_manager 的成员函数 _Get_value() 获取值并返回。而局部对象 _Local 在函数结束时析构。这意味着当前对象(*this)失去共享状态,并且状态被完全销毁。

    _Get_value()

    _Ty& _Get_value() const {
    +    if (!valid()) {
    +        _Throw_future_error2(future_errc::no_state);
    +    }
    +
    +    return _Assoc_state->_Get_value(_Get_only_once);
    +}

    先进行一下状态判断,如果拥有共享状态则继续,调用 _Assoc_state 的成员函数 _Get_value ,传递 _Get_only_once 参数,其实就是代表这个成员函数只能调用一次,次参数是里面进行状态判断的而已。

    _Assoc_state 的类型是 _Associated_state<_Ty>* ,是一个指针类型,它实际会指向自己的子类对象,我们在讲 std::async 源码的时候提到了,它必然指向 _Deferred_async_state 或者 _Task_async_state

    _Assoc_state->_Get_value 这其实是个多态调用,父类有这个虚函数:

    virtual _Ty& _Get_value(bool _Get_only_once) {
    +    unique_lock<mutex> _Lock(_Mtx);
    +    if (_Get_only_once && _Retrieved) {
    +        _Throw_future_error2(future_errc::future_already_retrieved);
    +    }
    +
    +    if (_Exception) {
    +        _STD rethrow_exception(_Exception);
    +    }
    +
    +    // TRANSITION: \`_Retrieved\` should be assigned before \`_Exception\` is thrown so that a \`future::get\`
    +    // that throws a stored exception invalidates the future (N4950 [futures.unique.future]/17)
    +    _Retrieved = true;
    +    _Maybe_run_deferred_function(_Lock);
    +    while (!_Ready) {
    +        _Cond.wait(_Lock);
    +    }
    +
    +    if (_Exception) {
    +        _STD rethrow_exception(_Exception);
    +    }
    +
    +    if constexpr (is_default_constructible_v<_Ty>) {
    +        return _Result;
    +    } else {
    +        return _Result._Held_value;
    +    }
    +}

    但是子类 _Task_async_state 进行了重写,以 launch::async 策略创建的 future,那么实际会调用 _Task_async_state::_Get_value

    _State_type& _Get_value(bool _Get_only_once) override {
    +    // return the stored result or throw stored exception
    +    _Task.wait();
    +    return _Mybase::_Get_value(_Get_only_once);
    +}

    _Deferred_async_state 则没有进行重写,就是直接调用父类虚函数。

    _Task 就是 ::Concurrency::task<void> _Task;,调用 wait() 成员函数确保任务执行完毕。

    _Mybase::_Get_value(_Get_only_once) 其实又是回去调用父类的虚函数了。

    _Get_value 方法详细解释

    1. 状态检查
    2. 异常处理
    3. 标记结果已被检索
    4. 执行延迟函数
    5. 等待结果就绪
    6. 再次检查异常
    7. 返回结果

    _Result 是通过执行 _Call_immediate 函数,然后 _Call_immediate 再执行 _Set_value_Set_value 再执行 _Emplace_result_Emplace_result 再执行 _Emplace_result 获取到我们执行任务的值的。以 Ty 的偏特化为例:

    // _Packaged_state
    +void _Call_immediate(_ArgTypes... _Args) {
    +    _TRY_BEGIN
    +    // 调用函数对象并捕获异常 传递返回值
    +    this->_Set_value(_Fn(_STD forward<_ArgTypes>(_Args)...), false);
    +    _CATCH_ALL
    +    // 函数对象抛出异常就记录
    +    this->_Set_exception(_STD current_exception(), false);
    +    _CATCH_END
    +}
    +
    +// _Asscoiated_state
    +void _Set_value(const _Ty& _Val, bool _At_thread_exit) { // store a result
    +    unique_lock<mutex> _Lock(_Mtx);
    +    _Set_value_raw(_Val, &_Lock, _At_thread_exit);
    +}
    +void _Set_value_raw(const _Ty& _Val, unique_lock<mutex>* _Lock, bool _At_thread_exit) {
    +    // store a result while inside a locked block
    +    if (_Already_has_stored_result()) {
    +        _Throw_future_error2(future_errc::promise_already_satisfied);
    +    }
    +
    +    _Emplace_result(_Val);
    +    _Do_notify(_Lock, _At_thread_exit);
    +}
    +template <class _Ty2>
    +void _Emplace_result(_Ty2&& _Val) {
    +    // TRANSITION, incorrectly assigns _Result when _Ty is default constructible
    +    if constexpr (is_default_constructible_v<_Ty>) {
    +        _Result = _STD forward<_Ty2>(_Val); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    +    } else {
    +        ::new (static_cast<void*>(_STD addressof(_Result._Held_value))) _Ty(_STD forward<_Ty2>(_Val));
    +        _Has_stored_result = true;
    +    }
    +}

    总结

    好了,到此也就可以了。

    你不会期待我们将每一个成员函数都分析一遍吧?首先是没有必要,其次是篇幅限制。

    std::future 的继承关系让人感到头疼,但是如果耐心的看了一遍,全部搞明白了继承关系, std::async 如何创建的 std::future 也就没有问题了。

    其实各位不用着急完全理解,可以慢慢看,至少有许多的显著的信息,比如:

    1. sttd::future 的很多部分,如 get() 成员函数实现中,实际使用了虚函数。
    2. std::async 创建 std::future 对象中,内部其实也有父类指针指向子类对象,以及多态调用。
    3. std::async 的非延迟执行策略,使用到了自家的 PPL 库。
    4. 微软的 std::async 策略实现并不符合标准,不区分 launch::async | launch::deferredlaunch::async
    5. std::future 内部使用到了互斥量、条件变量、异常指针等设施。
    `,52))])}const c=e(p,[["render",d],["__file","03async与future源码解析.html.vue"]]),y=JSON.parse('{"path":"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/03async%E4%B8%8Efuture%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","title":"st::async 与 std::future 源码解析","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"前言","slug":"前言","link":"#前言","children":[]},{"level":2,"title":"std::async","slug":"std-async","link":"#std-async","children":[]},{"level":2,"title":"std::future","slug":"std-future","link":"#std-future","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1711507419000,"updatedTime":1721221993000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":11},{"name":"归故里","email":"3326284481@qq.com","commits":1}]},"readingTime":{"minutes":18.56,"words":5569},"filePathRelative":"md/详细分析/03async与future源码解析.md","localizedDate":"2024年3月27日","excerpt":"\\n

    前言

    \\n

    和之前一样的,我们以 MSVC STL 的实现进行讲解。

    \\n

    std::future,即未来体,是用来管理一个共享状态的类模板,用于等待关联任务的完成并获取其返回值。它自身不包含状态,需要通过如 std::async 之类的函数进行初始化。std::async 函数模板返回一个已经初始化且具有共享状态的 std::future 对象。

    \\n

    因此,所有操作的开始应从 std::async 开始讲述。

    \\n

    需要注意的是,它们的实现彼此之间会共用不少设施,在讲述 std::async 源码的时候,对于 std::future 的内容同样重要。

    "}');export{c as comp,y as data}; diff --git "a/assets/03\345\205\261\344\272\253\346\225\260\346\215\256.html-BLgsE6xw.js" "b/assets/03\345\205\261\344\272\253\346\225\260\346\215\256.html-BLgsE6xw.js" new file mode 100644 index 00000000..134c84b9 --- /dev/null +++ "b/assets/03\345\205\261\344\272\253\346\225\260\346\215\256.html-BLgsE6xw.js" @@ -0,0 +1,396 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,d as a,a as i,b as n,e as t,w as k,r as p,o as d}from"./app-Ca-A-iaw.js";const r={};function B(c,s){const l=p("RouteLink");return d(),h("div",null,[s[2]||(s[2]=a(`

    共享数据

    本章节主要内容:

    在上一章内容,我们对于线程的基本使用和管理,可以说已经比较了解了,甚至深入阅读了部分的 std::thread 源码。所以如果你好好学习了上一章,本章也完全不用担心。

    我们本章,就要开始聊共享数据的那些事。

    条件竞争

    在多线程的情况下,每个线程都抢着完成自己的任务。在大多数情况下,即使会改变执行顺序,也是良性竞争,这是无所谓的。比如两个线程都要往标准输出输出一段字符,谁先谁后并不会有什么太大影响。

    void f() { std::cout << "❤️\\n"; }
    +void f2() { std::cout << "😢\\n"; }
    +
    +int main(){
    +    std::thread t{ f };
    +    std::thread t2{ f2 };
    +    t.join();
    +    t2.join();
    +}

    std::cout 的 operator<< 调用是线程安全的,不会被打断。即:同步的 C++ 流保证是线程安全的(从多个线程输出的单独字符可能交错,但无数据竞争)

    只有在涉及多线程读写相同共享数据的时候,才会导致“恶性的条件竞争”。

    std::vector<int>v;
    +
    +void f() { v.emplace_back(1); }
    +void f2() { v.erase(v.begin()); }
    +
    +int main() {
    +    std::thread t{ f };
    +    std::thread t2{ f2 };
    +    t.join();
    +    t2.join();
    +    std::cout << v.size() << '\\n';
    +}

    比如这段代码就是典型的恶性条件竞争,两个线程共享一个 vector,并对它进行修改。可能导致许多问题,比如 f2 先执行,此时 vector 还没有元素,导致抛出异常。又或者 f 执行了一半,调用了 f2(),等等。

    当然了,也有可能先执行 f,然后执行 f2,最后打印了 0,程序老老实实执行完毕。

    但是我们显然不能寄希望于这种操作系统的调度。

    而且即使不是一个添加元素,一个删除元素,全是 emplace_back 添加元素,也一样会有问题,由于 std::vector 不是线程安全的容器,因此当多个线程同时访问并修改 v 时,可能会发生未定义的行为。具体来说,当两个线程同时尝试向 v 中添加元素时,但是 emplace_back 函数却是可以被打断的,执行了一半,又去执行另一个线程。可能会导致数据竞争,从而引发未定义的结果。

    当某个表达式的求值写入某个内存位置,而另一求值读或修改同一内存位置时,称这些表达式冲突拥有两个冲突的求值的程序就有数据竞争,除非

    如果出现数据竞争,那么程序的行为未定义。

    标量类型等都同理,有数据竞争未定义行为

    int cnt = 0;
    +auto f = [&]{cnt++;};
    +std::thread t1{f}, t2{f}, t3{f}; // 未定义行为

    使用互斥量

    互斥量(Mutex),又常被称为互斥锁、互斥体(或者直接被称作“锁”),是一种用来保护临界区[1]的特殊对象,其相当于实现了一个公共的“标志位”。它可以处于锁定(locked)状态,也可以处于解锁(unlocked)状态:

    1. 如果互斥量是锁定的,通常说某个特定的线程正持有这个锁。

    2. 如果没有线程持有这个互斥量,那么这个互斥量就处于解锁状态。


    概念从来不是我们的重点,用一段对比代码为你直观的展示互斥量的作用:

    void f() {
    +    std::cout << std::this_thread::get_id() << '\\n';
    +}
    +
    +int main() {
    +    std::vector<std::thread> threads;
    +    for (std::size_t i = 0; i < 10; ++i)
    +        threads.emplace_back(f);
    +
    +    for (auto& thread : threads)
    +        thread.join();
    +}

    这段代码你多次运行它会得到毫无规律和格式的结果,我们可以使用互斥量解决这个问题:

    #include <mutex> // 必要标头
    +std::mutex m;
    +
    +void f() {
    +    m.lock();
    +    std::cout << std::this_thread::get_id() << '\\n';
    +    m.unlock();
    +}
    +
    +int main() {
    +    std::vector<std::thread>threads;
    +    for (std::size_t i = 0; i < 10; ++i)
    +        threads.emplace_back(f);
    +
    +    for (auto& thread : threads)
    +        thread.join();
    +}

    当多个线程执行函数 f 的时候,只有一个线程能成功调用 lock() 给互斥量上锁,其他所有的线程 lock() 的调用将阻塞执行,直至获得锁。第一个调用 lock() 的线程得以继续往下执行,执行我们的 std::cout 输出语句,不会有任何其他的线程打断这个操作。直到线程执行 unlock(),就解锁了互斥量。

    那么其他线程此时也就能再有一个成功调用 lock...

    至于到底哪个线程才会成功调用,这个是由操作系统调度决定的。

    看一遍描述就可以了,简而言之,被 lock()unlock() 包含在其中的代码是线程安全的,同一时间只有一个线程执行,不会被其它线程的执行所打断。

    std::lock_guard

    不过一般不推荐这样显式的 lock()unlock(),我们可以使用 C++11 标准库引入的“管理类” std::lock_guard

    void f() {
    +    std::lock_guard<std::mutex> lc{ m };
    +    std::cout << std::this_thread::get_id() << '\\n';
    +}

    那么问题来了,std::lock_guard 是如何做到的呢?它是怎么实现的呢?首先顾名思义,这是一个“管理类”模板,用来管理互斥量的上锁与解锁,我们来看它在 MSVC STL 的实现:

    _EXPORT_STD template <class _Mutex>
    +class _NODISCARD_LOCK lock_guard { // class with destructor that unlocks a mutex
    +public:
    +    using mutex_type = _Mutex;
    +
    +    explicit lock_guard(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock
    +        _MyMutex.lock();
    +    }
    +
    +    lock_guard(_Mutex& _Mtx, adopt_lock_t) noexcept // strengthened
    +        : _MyMutex(_Mtx) {} // construct but don't lock
    +
    +    ~lock_guard() noexcept {
    +        _MyMutex.unlock();
    +    }
    +
    +    lock_guard(const lock_guard&)            = delete;
    +    lock_guard& operator=(const lock_guard&) = delete;
    +
    +private:
    +    _Mutex& _MyMutex;
    +};

    这段代码极其简单,首先管理类,自然不可移动不可复制,我们定义复制构造与复制赋值为弃置函数,同时阻止了移动等函数的隐式定义。

    它只保有一个私有数据成员,一个引用,用来引用互斥量。

    构造函数中初始化这个引用,同时上锁,析构函数中解锁,这是一个非常典型的 RAII 式的管理。

    同时它还提供一个有额外std::adopt_lock_t参数的构造函数 ,如果使用这个构造函数,则构造函数不会上锁。

    所以有的时候你可能会看到一些这样的代码:

    void f(){
    +    //code..
    +    {
    +        std::lock_guard<std::mutex> lc{ m };
    +        // 涉及共享资源的修改的代码...
    +    }
    +    //code..
    +}

    使用 {} 创建了一个块作用域,限制了对象 lc 的生存期,进入作用域构造 lock_guard 的时候上锁(lock),离开作用域析构的时候解锁(unlock)。

    “粒度”通常用于描述锁定的范围大小,较小的粒度意味着锁定的范围更小,因此有更好的性能和更少的竞争。

    我们举一个例子:

    std::mutex m;
    +
    +void add_to_list(int n, std::list<int>& list) {
    +    std::vector<int> numbers(n + 1);
    +    std::iota(numbers.begin(), numbers.end(), 0);
    +    int sum = std::accumulate(numbers.begin(), numbers.end(), 0);
    +
    +    {
    +        std::lock_guard<std::mutex> lc{ m };
    +        list.push_back(sum);
    +    }
    +}
    +void print_list(const std::list<int>& list){
    +    std::lock_guard<std::mutex> lc{ m };
    +    for(const auto& i : list){
    +        std::cout << i << ' ';
    +    }
    +    std::cout << '\\n';
    +}
    std::list<int> list;
    +std::thread t1{ add_to_list,i,std::ref(list) };
    +std::thread t2{ add_to_list,i,std::ref(list) };
    +std::thread t3{ print_list,std::cref(list) };
    +std::thread t4{ print_list,std::cref(list) };
    +t1.join();
    +t2.join();
    +t3.join();
    +t4.join();

    完整代码测试

    先看 add_to_list,只有 list.push_back(sum) 涉及到了对共享数据的修改,需要进行保护,我们用 {} 包起来了。

    假设有线程 A、B执行函数 add_to_list() :线程 A 中的 numbers、sum 与线程 B 中的,不是同一个,希望大家分清楚,自然不存在数据竞争,也不需要上锁。线程 A、B执行完了前面求 0-n 的计算,只有一个线程能在 lock_guard 的构造函数中成功调用 lock() 给互斥量上锁。假设线程 A 成功调用 lock(),那么线程 B 的 lock() 调用就阻塞了,必须等待线程 A 执行完里面的代码,然后作用域结束,调用 lock_guard 的析构函数,解锁 unlock(),此时线程 B 就可以进去执行了,避免了数据竞争,不存在一个对象同时被多个线程修改。

    函数 print_list() 就更简单了,打印 list,给整个函数上锁,同一时刻只能有一个线程执行。

    我们的使用代码是多个线程执行这两个函数,两个函数共享了一个锁,这样确保了当执行函数 print_list() 打印的时候,list 的状态是确定的。打印函数 print_listadd_to_list 函数的修改操作同一时间只能有一个线程在执行。print_list() 不可能看到正在被add_to_list() 修改的 list。

    至于到底哪个函数哪个线程会先执行,执行多少次,这些都由操作系统调度决定,也完全有可能连续 4 次都是执行函数 print_list 的线程成功调用 lock,会打印出了一样的值,这都很正常。


    C++17 添加了一个新的特性,类模板实参推导std::lock_guard 可以根据传入的参数自行推导,而不需要写明模板类型参数:

    std::mutex m;
    +std::lock_guard lc{ m }; // std::lock_guard<std::mutex>

    并且 C++17 还引入了一个新的“管理类”:std::scoped_lock,它相较于 lock_guard的区别在于,它可以管理多个互斥量。不过对于处理一个互斥量的情况,它和 lock_guard 几乎完全相同。

    std::mutex m;
    +std::scoped_lock lc{ m }; // std::scoped_lock<std::mutex>

    我们在后续管理多个互斥量,会详细了解这个类。

    try_lock

    try_lock 是互斥量中的一种尝试上锁的方式。与常规的 lock 不同,try_lock 会尝试上锁,但如果锁已经被其他线程占用,则不会阻塞当前线程,而是立即返回

    它的返回类型是 bool ,如果上锁成功就返回 true,失败就返回 false

    这种方法在多线程编程中很有用,特别是在需要保护临界区的同时,又不想线程因为等待锁而阻塞的情况下。

    std::mutex mtx;
    +
    +void thread_function(int id) {
    +    // 尝试加锁
    +    if (mtx.try_lock()) {
    +        std::cout << "线程:" << id << " 获得锁" << std::endl;
    +        // 临界区代码
    +        std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 模拟临界区操作
    +        mtx.unlock(); // 解锁
    +        std::cout << "线程:" << id << " 释放锁" << std::endl;
    +    } else {
    +        std::cout << "线程:" << id << " 获取锁失败 处理步骤" << std::endl;
    +    }
    +}

    如果有两个线程运行这段代码,必然有一个线程无法成功上锁,要走 else 的分支。

    std::thread t1(thread_function, 1);
    +std::thread t2(thread_function, 2);
    +
    +t1.join();
    +t2.join();

    可能的运行结果

    线程:1 获得锁
    +线程:2 获取锁失败 处理步骤
    +线程:1 释放锁

    保护共享数据

    互斥量主要也就是为了保护共享数据,上一节的使用互斥量也已经为各位展示了一些。

    然而使用互斥量来保护共享数据也并不是在函数中加上一个 std::lock_guard 就万事大吉了。有的时候只需要一个指针或者引用,就能让这种保护形同虚设

    class Data{
    +    int a{};
    +    std::string b{};
    +public:
    +    void do_something(){
    +        // 修改数据成员等...
    +    }
    +};
    +
    +class Data_wrapper{
    +    Data data;
    +    std::mutex m;
    +public:
    +    template<class Func>
    +    void process_data(Func func){
    +        std::lock_guard<std::mutex> lc{m};
    +        func(data);  // 受保护数据传递给函数
    +    }
    +};
    +
    +Data* p = nullptr;
    +
    +void malicious_function(Data& protected_data){
    +    p = &protected_data; // 受保护的数据被传递到外部
    +}
    +
    +Data_wrapper d;
    +
    +void foo(){
    +    d.process_data(malicious_function);  // 传递了一个恶意的函数
    +    p->do_something();                   // 在无保护的情况下访问保护数据
    +}

    成员函数模板 process_data 看起来一点问题也没有,使用 std::lock_guard 对数据做了保护,但是调用方传递了 malicious_function 这样一个恶意的函数,使受保护数据传递给外部,可以在没有被互斥量保护的情况下调用 do_something()

    我们传递的函数就不该是涉及外部副作用的,就应该是单纯的在受互斥量保护的情况下老老实实调用 do_something() 操作受保护的数据。

    process_data 的确算是没问题,用户非要做这些事情也是防不住的,我们只是告诉各位可能的情况。

    死锁:问题与解决

    试想一下,有一个玩具,这个玩具有两个部分,必须同时拿到两部分才能玩。比如一个遥控汽车,需要遥控器和玩具车才能玩。有两个小孩,他们都想玩这个玩具。当其中一个小孩拿到了遥控器和玩具车时,就可以尽情玩耍。当另一个小孩也想玩,他就得等待另一个小孩玩完才行。再试想,遥控器和玩具车被放在两个不同的地方,并且两个小孩都想要玩,并且一个拿到了遥控器,另一个拿到了玩具车。问题就出现了,除非其中一个孩子决定让另一个先玩,他把自己的那个部分给另一个小孩。但如果他们都不愿意,那么这个遥控汽车就谁都没有办法玩。

    我们当然不在乎小孩抢玩具,我们要聊的是线程对锁的竞争:两个线程需要对它们所有的互斥量做一些操作,其中每个线程都有一个互斥量,且等待另一个线程的互斥量解锁。因为它们都在等待对方释放互斥量,没有线程工作。 这种情况就是死锁。

    避免死锁的一般建议是让两个互斥量以相同的顺序上锁,总在互斥量 B 之前锁住互斥量 A,就通常不会死锁。反面示例

    std::mutex m1,m2;
    +std::size_t n{};
    +
    +void f(){
    +    std::lock_guard<std::mutex> lc1{ m1 };
    +    std::lock_guard<std::mutex> lc2{ m2 };
    +    ++n;
    +}
    +void f2() {
    +    std::lock_guard<std::mutex> lc1{ m2 };
    +    std::lock_guard<std::mutex> lc2{ m1 };
    +    ++n;
    +}

    ff2 因为互斥量上锁顺序不同,就有死锁风险。函数 f 先锁定 m1,然后再尝试锁定 m2,而函数 f2 先锁定 m2 再锁定 m1 。如果两个线程同时运行,它们就可能会彼此等待对方释放其所需的锁,从而造成死锁。

    简而言之,有可能函数 f 锁定了 m1,函数 f2 锁定了 m2,函数 f 要往下执行,给 m2 上锁,所以在等待 f2 解锁 m2,然而函数 f2 也在等待函数 f 解锁 m1 它才能往下执行。所以死锁。测试代码


    但是有的时候即使固定锁顺序,依旧会产生问题。当有多个互斥量保护同一个类的对象时,对于相同类型的两个不同对象进行数据的交换操作,为了保证数据交换的正确性,就要避免其它线程修改,确保每个对象的互斥量都锁住自己要保护的区域。如果按照前面的的选择一个固定的顺序上锁解锁,则毫无意义,比如:

    struct X{
    +    X(const std::string& str) :object{ str } {}
    +
    +    friend void swap(X& lhs, X& rhs);
    +private:
    +    std::string object;
    +    std::mutex m;
    +};
    +
    +void swap(X& lhs, X& rhs) {
    +    if (&lhs == &rhs) return;
    +    std::lock_guard<std::mutex> lock1{ lhs.m }; 
    +    std::lock_guard<std::mutex> lock2{ rhs.m }; 
    +    swap(lhs.object, rhs.object);
    +}

    考虑用户调用的时候将参数交换,就会产生死锁

    X a{ "🤣" }, b{ "😅" };
    +std::thread t{ [&] {swap(a, b); } };  // 1
    +std::thread t2{ [&] {swap(b, a); } }; // 2

    1 执行的时候,先上锁 a 的互斥量,再上锁 b 的互斥量。

    2 执行的时候,先上锁 b 的互斥量,再上锁 a 的互斥量。

    完全可能线程 A 执行 1 的时候上锁了 a 的互斥量,线程 B 执行 2 上锁了 b 的互斥量。线程 A 往下执行需要上锁 b 的互斥量,线程 B 则要上锁 a 的互斥量执行完毕才能解锁,哪个都没办法往下执行,死锁测试代码

    其实也就是回到了第一个示例的问题。

    C++ 标准库有很多办法解决这个问题,可以使用 std::lock ,它能一次性锁住多个互斥量,并且没有死锁风险。修改 swap 代码后如下:

    void swap(X& lhs, X& rhs) {
    +    if (&lhs == &rhs) return;
    +    std::lock(lhs.m, rhs.m);    // 给两个互斥量上锁
    +    std::lock_guard<std::mutex> lock1{ lhs.m,std::adopt_lock }; 
    +    std::lock_guard<std::mutex> lock2{ rhs.m,std::adopt_lock }; 
    +    swap(lhs.object, rhs.object);
    +}

    因为前面已经使用了 std::lock 上锁,所以后的 std::lock_guard 构造都额外传递了一个 std::adopt_lock 参数,让其选择到不上锁的构造函数。函数退出也能正常解锁。

    std::locklhs.mrhs.m 上锁时若抛出异常,则在重抛前对任何已锁的对象调用 unlock() 解锁,也就是 std::lock 要么将互斥量都上锁,要么一个都不锁。

    C++17 新增了 std::scoped_lock ,提供此函数的 RAII 包装,通常它比裸调用 std::lock 更好。

    所以我们前面的代码可以改写为:

    void swap(X& lhs, X& rhs) {
    +    if (&lhs == &rhs) return;
    +    std::scoped_lock guard{ lhs.m,rhs.m };
    +    swap(lhs.object, rhs.object);
    +}
    `,100)),i("p",null,[s[1]||(s[1]=n("对此类有兴趣或任何疑问,建议阅读")),t(l,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/02scoped_lock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:k(()=>s[0]||(s[0]=[i("strong",null,[i("code",null,"std::scoped_lock"),n(" 的源码实现与解析")],-1)])),_:1})]),s[3]||(s[3]=a(`

    使用 std::scoped_lock 可以将所有 std::lock 替换掉,减少错误发生。

    然而它们的帮助都是有限的,一切最终都是依靠开发者使用与管理。

    死锁是多线程编程中令人相当头疼的问题,并且死锁经常是不可预见,甚至难以复现,因为在大部分时间里,程序都能正常完成工作。我们可以通过一些简单的规则,约束开发者的行为,帮助写出“无死锁”的代码

    std::unique_lock 灵活的锁

    std::unique_lock 是 C++11 引入的一种通用互斥包装器,它相比于 std::lock_guard 更加的灵活。当然,它也更加的复杂,尤其它还可以与我们下一章要讲的条件变量一起使用。使用它可以将之前使用 std::lock_guardswap 改写一下:

    void swap(X& lhs, X& rhs) {
    +    if (&lhs == &rhs) return;
    +    std::unique_lock<std::mutex> lock1{ lhs.m, std::defer_lock };
    +    std::unique_lock<std::mutex> lock2{ rhs.m, std::defer_lock };
    +    std::lock(lock1, lock2);
    +    swap(lhs.object, rhs.object);
    +}

    解释这段代码最简单的方式就是直接展示标准库的源码,首先,我们要了解 std::defer_lock 是“不获得互斥体的所有权”。没有所有权自然构造函数就不会上锁,但不止如此。我们还要先知道 std::unique_lock 保有的数据成员(都以 MSVC STL 为例):

    private:
    +    _Mutex* _Pmtx = nullptr;
    +    bool _Owns    = false;

    如你所见很简单,一个互斥量的指针,还有一个就是表示对象是否拥有互斥量所有权的 bool 类型的对象 _Owns 了。我们前面代码会调用构造函数:

    unique_lock(_Mutex& _Mtx, defer_lock_t) noexcept
    +    : _Pmtx(_STD addressof(_Mtx)), _Owns(false) {} // construct but don't lock

    如你所见,只是初始化了数据成员而已,注意,这个构造函数没有给互斥量上锁,且 _Ownsfalse 表示没有互斥量所有权。并且 std::unique_lock 是有 lock()try_lock()unlock() 成员函数的,所以可以直接传递给 std::lock、 进行调用。这里还需要提一下 lock() 成员函数的代码:

    void lock() { // lock the mutex
    +    _Validate();
    +    _Pmtx->lock();
    +    _Owns = true;
    +}

    如你所见,正常上锁,并且把 _Owns 设置为 true,即表示当前对象拥有互斥量的所有权。那么接下来看析构函数:

    ~unique_lock() noexcept {
    +    if (_Owns) {
    +        _Pmtx->unlock();
    +    }
    +}

    必须得是当前对象拥有互斥量的所有权析构函数才会调用 unlock() 解锁互斥量。我们的代码因为调用了 lock ,所以 _Owns 设置为 true ,函数结束对象析构的时候会解锁互斥量。


    设计挺奇怪的对吧,这个所有权语义。其实上面的代码还不够简单直接,我们再举个例子:

    std::mutex m;
    +
    +int main() {
    +    std::unique_lock<std::mutex> lock{ m,std::adopt_lock };
    +    lock.lock();
    +}

    这段代码运行会抛出异常,原因很简单,因为 std::adopt_lock 只是不上锁,但是有所有权,即 _Owns 设置为 true 了,当运行 lock() 成员函数的时候,调用了 _Validate() 进行检测,也就是:

    void _Validate() const { // check if the mutex can be locked
    +    if (!_Pmtx) {
    +        _Throw_system_error(errc::operation_not_permitted);
    +    }
    +
    +    if (_Owns) {
    +        _Throw_system_error(errc::resource_deadlock_would_occur);
    +    }
    +}

    满足第二个 if,因为 _Ownstrue 所以抛出异常,别的标准库也都有类似设计。很诡异的设计对吧,正常。除非我们写成:

    lock.mutex()->lock();

    也就是说 std::unique_lock 要想调用 lock() 成员函数,必须是当前没有所有权

    所以正常的用法其实是,先上锁了互斥量,然后传递 std::adopt_lock 构造 std::unique_lock 对象表示拥有互斥量的所有权,即可在析构的时候正常解锁。如下:

    std::mutex m;
    +
    +int main() {
    +    m.lock();
    +    std::unique_lock<std::mutex> lock { m,std::adopt_lock };
    +}

    简而言之:


    我们前面提到了 std::unique_lock 更加灵活,那么灵活在哪?很简单,它拥有 lock()unlock() 成员函数,所以我们能写出如下代码:

    void f() {
    +    //code..
    +    
    +    std::unique_lock<std::mutex> lock{ m };
    +
    +    // 涉及共享资源的修改的代码...
    +
    +    lock.unlock(); // 解锁并释放所有权,析构函数不会再 unlock()
    +
    +    //code..
    +}

    而不是像之前 std::lock_guard 一样使用 {}

    另外再聊一聊开销吧,其实倒也还好,多了一个 bool ,内存对齐,x64 环境也就是 16 字节。这都不是最重要的,主要是复杂性和需求,通常建议优先 std::lock_guard,当它无法满足你的需求或者显得代码非常繁琐,那么可以考虑使用 std::unique_lock

    在不同作用域传递互斥量

    首先我们要明白,互斥量满足互斥体 (Mutex)的要求,不可复制不可移动。所谓的在不同作用域传递互斥量,其实只是传递了它们的指针或者引用罢了。可以利用各种类来进行传递,比如前面提到的 std::unique_lock

    std::unique_lock 可以获取互斥量的所有权,而互斥量的所有权可以通过移动操作转移给其他的 std::unique_lock 对象。有些时候,这种转移(就是调用移动构造)是自动发生的,比如当函数返回 std::unique_lock 对象。另一种情况就是得显式使用 std::move

    请勿对移动语义和转移所有权抱有错误的幻想,我们说的无非是调用 std::unique_lock 的移动构造罢了:

    _NODISCARD_CTOR_LOCK unique_lock(unique_lock&& _Other) noexcept : _Pmtx(_Other._Pmtx), _Owns(_Other._Owns) {
    +    _Other._Pmtx = nullptr;
    +    _Other._Owns = false;
    +}

    将数据成员赋给新对象,原来的置空,这就是所谓的 所有权”转移,切勿被词语迷惑。

    std::unique_lock 是只能移动不可复制的类,它移动即标志其管理的互斥量的所有权转移了。

    一种可能的使用是允许函数去锁住一个互斥量,并将互斥量的所有权转移到调用者上,所以调用者可以在这个锁保护的范围内执行代码。

    std::unique_lock<std::mutex> get_lock(){
    +    extern std::mutex some_mutex;
    +    std::unique_lock<std::mutex> lk{ some_mutex };
    +    return lk;
    +}
    +void process_data(){
    +    std::unique_lock<std::mutex> lk{ get_lock() };
    +    // 执行一些任务...
    +}

    return lk 这里会调用移动构造,将互斥量的所有权转移给调用方, process_data 函数结束的时候会解锁互斥量。

    我相信你可能对 extern std::mutex some_mutex 有疑问,其实不用感到奇怪,这是一个互斥量的声明,可能别的翻译单元(或 dll 等)有它的定义,成功链接上。我们前面也说了:“所谓的在不同作用域传递互斥量,其实只是传递了它们的指针或者引用罢了”,所以要特别注意互斥量的生存期

    extern 说明符只能搭配变量声明和函数声明(除了类成员或函数形参)。它指定外部链接,而且技术上不影响存储期,但它不能用来定义自动存储期的对象,故所有 extern 对象都具有静态或线程存储期

    如果你简单写一个 std::mutex some_mutex 那么函数 process_data 中的 lk 会持有一个悬垂指针。

    举一个使用 extern std::mutex 的完整运行示例。当然,其实理论上你 new std::mutex 也是完全可行...... 🤣🤣

    std::unique_lock 是灵活的,同样允许在对象销毁之前就解锁互斥量,调用 unlock() 成员函数即可,不再强调。

    保护共享数据的初始化过程

    保护共享数据并非必须使用互斥量,互斥量只是其中一种常见的方式而已,对于一些特殊的场景,也有专门的保护方式,比如对于共享数据的初始化过程的保护。我们通常就不会用互斥量,这会造成很多的额外开销

    我们不想为各位介绍其它乱七八糟的各种保护初始化的方式,我们只介绍三种:双检锁(错误)使用 std::call_once静态局部变量初始化从 C++11 开始是线程安全

    1. 双检锁(错误)线程不安全

      void f(){
      +    if(!ptr){      // 1
      +        std::lock_guard<std::mutex> lk{ m };
      +        if(!ptr){  // 2
      +            ptr.reset(new some);  // 3
      +        }
      +    }
      +    ptr->do_something();  // 4
      +}

      ① 是查看指针是否为空,空才需要初始化,才需要获取锁。指针为空,当获取锁后会再检查一次指针②(这就是双重检查),避免另一线程在第一次检查后再做初始化,并且让当前线程获取锁。

      然而这显然没用,因为有潜在的条件竞争。未被锁保护的读取操作①没有与其他线程里被锁保护的写入操作③进行同步,因此就会产生条件竞争。

      简而言之:一个线程知道另一个线程已经在执行③,但是此时还没有创建 some 对象,而只是分配内存对指针写入。那么这个线程在①的时候就不会进入,直接执行了 ptr->do_something()④,得不到正确的结果,因为对象还没构造。

      如果你觉得难以理解,那就记住 ptr.reset(new some); 并非是不可打断不可交换的固定指令。

      这种错误写法在一些单例中也非常的常见。如果你的同事或上司写出此代码,一般不建议指出,因为不见得你能教会他们,不要“没事找事”,只要不影响自己即可。

    2. C++ 标准委员会也认为处理此问题很重要,所以标准库提供了 std::call_oncestd::once_flag 来处理这种情况。比起锁住互斥量并显式检查指针,每个线程只需要使用 std::call_once 就可以。使用 std::call_once 比显式使用互斥量消耗的资源更少,特别是当初始化完成之后

      std::shared_ptr<some> ptr;
      +std::once_flag resource_flag;
      +
      +void init_resource(){
      +    ptr.reset(new some);
      +}
      +
      +void foo(){
      +    std::call_once(resource_flag, init_resource); // 线程安全的一次初始化
      +    ptr->do_something();
      +}

      以上代码 std::once_flag 对象是全局命名空间作用域声明,如果你有需要,它也可以是类的成员。用于搭配 std::call_once 使用,保证线程安全的一次初始化。std::call_once 只需要接受可调用 (Callable)对象即可,也不要求一定是函数。

      初始化”,那自然是只有一次。但是 std::call_once 也有一些例外情况(比如异常)会让传入的可调用对象被多次调用,即“多次”初始化:

      std::once_flag flag;
      +int n = 0;
      +
      +void f(){
      +    std::call_once(flag, [] {
      +        ++n;
      +        std::cout << "第" << n << "次调用\\n";
      +        throw std::runtime_error("异常");
      +    });
      +}
      +
      +int main(){
      +    try{
      +        f();
      +    }
      +    catch (std::exception&){}
      +    
      +    try{
      +        f();
      +    }
      +    catch (std::exception&){}
      +}

      测试链接。正常情况会保证传入的可调用对象只调用一次,即初始化只有一次。异常之类的是例外。

      这种行为很合理,因为异常代表操作失败,需要进行回溯和重置状态,符合语义和设计。

    3. 静态局部变量初始化在 C++11 是线程安全

      class my_class;
      +inline my_class& get_my_class_instance(){
      +    static my_class instance;  // 线程安全的初始化过程 初始化严格发生一次
      +    return instance;
      +}

      即使多个线程同时访问 get_my_class_instance 函数,也只有一个线程会执行 instance 的初始化,其它线程会等待初始化完成。这种实现方式是线程安全的,不用担心数据竞争。此方式也在单例中多见,被称作“Meyers Singleton”单例,是简单合理的做法。


    其实还有不少其他的做法或者反例,但是觉得没必要再聊了,这些已经足够了,再多下去就冗余了。且本文不是详尽的文档,而是“教程”。

    保护不常更新的数据结构

    试想一下,你有一个数据结构存储了用户的设置信息,每次用户打开程序的时候,都要进行读取,且运行时很多地方都依赖这个数据结构需要读取,所以为了效率,我们使用了多线程读写。这个数据结构很少进行改变,而我们知道,多线程读取,是没有数据竞争的,是安全的,但是有些时候又不可避免的有修改和读取都要工作的时候,所以依然必须得使用互斥量进行保护。

    然而使用 std::mutex 的开销是过大的,它不管有没有发生数据竞争(也就是就算全是读的情况)也必须是老老实实上锁解锁,只有一个线程可以运行。如果你学过其它语言或者操作系统,相信这个时候就已经想到了:“读写锁”。

    C++ 标准库自然为我们提供了: std::shared_timed_mutex(C++14)、 std::shared_mutex(C++17)。它们的区别简单来说,前者支持更多的操作方式,后者有更高的性能优势。

    std::shared_mutex 同样支持 std::lock_guardstd::unique_lock。和 std::mutex 做的一样,保证写线程的独占访问。而那些无需修改数据结构的读线程,可以使用 std::shared_lock<std::shared_mutex> 获取访问权,多个线程可以一起读取。

    class Settings {
    +private:
    +    std::map<std::string, std::string> data_;
    +    mutable std::shared_mutex mutex_; // “M&M 规则”:mutable 与 mutex 一起出现
    +
    +public:
    +    void set(const std::string& key, const std::string& value) {
    +        std::lock_guard<std::shared_mutex> lock{ mutex_ };
    +        data_[key] = value;
    +    }
    +
    +    std::string get(const std::string& key) const {
    +        std::shared_lock<std::shared_mutex> lock(mutex_);
    +        auto it = data_.find(key);
    +        return (it != data_.end()) ? it->second : ""; // 如果没有找到键返回空字符串
    +    }
    +};

    完整代码测试链接。标准输出可能交错,但无数据竞争。

    std::shared_timed_mutex 具有 std::shared_mutex 的所有功能,并且额外支持超时功能。所以以上代码可以随意更换这两个互斥量。

    std::recursive_mutex

    线程对已经上锁的 std::mutex 再次上锁是错误的,这是未定义行为。然而在某些情况下,一个线程会尝试在释放一个互斥量前多次获取,所以提供了std::recursive_mutex

    std::recursive_mutex 是 C++ 标准库提供的一种互斥量类型,它允许同一线程多次锁定同一个互斥量,而不会造成死锁。当同一线程多次对同一个 std::recursive_mutex 进行锁定时,只有在解锁与锁定次数相匹配时,互斥量才会真正释放。但它并不影响不同线程对同一个互斥量进行锁定的情况。不同线程对同一个互斥量进行锁定时,会按照互斥量的规则进行阻塞

    #include <iostream>
    +#include <thread>
    +#include <mutex>
    +
    +std::recursive_mutex mtx;
    +
    +void recursive_function(int count) {
    +    // 递归函数,每次递归都会锁定互斥量
    +    mtx.lock();
    +    std::cout << "Locked by thread: " << std::this_thread::get_id() << ", count: " << count << std::endl;
    +    if (count > 0) {
    +        recursive_function(count - 1); // 递归调用
    +    }
    +    mtx.unlock(); // 解锁互斥量
    +}
    +
    +int main() {
    +    std::thread t1(recursive_function, 3);
    +    std::thread t2(recursive_function, 2);
    +
    +    t1.join();
    +    t2.join();
    +}

    运行测试。

    我们重点的强调了一下这两个成员函数的这个概念,其实也很简单,总而言之就是 unlock 必须和 lock 的调用次数一样,才会真正解锁互斥量。

    同样的,我们也可以使用 std::lock_guardstd::unique_lock 帮我们管理 std::recursive_mutex,而非显式调用 lockunlock

    void recursive_function(int count) {
    +    std::lock_guard<std::recursive_mutex> lc{ mtx };
    +    std::cout << "Locked by thread: " << std::this_thread::get_id() << ", count: " << count << std::endl;
    +    if (count > 0) {
    +        recursive_function(count - 1);
    +    }
    +}

    运行测试。

    newdelete 是线程安全的吗?

    如果你的标准达到 C++11,要求下列函数是线程安全的:

    所以以下函数在多线程运行是线程安全的:

    void f(){
    +    T* p = new T{};
    +    delete p;
    +}

    内存分配、释放操作是线程安全,构造和析构不涉及共享资源。而局部对象 p 对于每个线程来说是独立的。换句话说,每个线程都有其自己的 p 对象实例,因此它们不会共享同一个对象,自然没有数据竞争。

    如果 p 是全局对象(或者外部的,只要可被多个线程读写),多个线程同时对其进行访问和修改时,就可能会导致数据竞争和未定义行为。因此,确保全局对象的线程安全访问通常需要额外的同步措施,比如互斥量或原子操作。

    T* p = nullptr;
    +void f(){
    +    p = new T{}; // 存在数据竞争
    +    delete p;
    +}

    即使 p 是局部对象,如果构造函数(析构同理)涉及读写共享资源,那么一样存在数据竞争,需要进行额外的同步措施进行保护。

    int n = 1;
    +
    +struct X{
    +    X(int v){
    +        ::n += v;
    +    }
    +};
    +
    +void f(){
    +    X* p = new X{ 1 }; // 存在数据竞争
    +    delete p;
    +}

    一个直观的展示是,我们可以在构造函数中使用 std::cout,看到无序的输出,例子


    值得注意的是,如果是自己重载 operator newoperator delete 替换了库的全局版本,那么它的线程安全就要我们来保证。

    // 全局的 new 运算符,替换了库的版本
    +void* operator new  (std::size_t count){
    +    return ::operator new(count); 
    +}

    以上代码是线程安全的,因为 C++11 保证了 new 运算符的库版本,即 ::operator new 是线程安全的,我们直接调用它自然不成问题。如果你需要更多的操作,就得使用互斥量之类的方式保护了。


    总而言之,new 表达式线程安全要考虑三方面:operator new、构造函数、修改指针。

    delete 表达式线程安全考虑两方面:operator delete、析构函数。

    C++ 只保证了 operator newoperator delete 这两个方面的线程安全(不包括用户定义的),其它方面就得自己保证了。前面的内容也都提到了。

    线程存储期

    线程存储期(也有人喜欢称作“线程局部存储”)的概念源自操作系统,是一种非常古老的机制,广泛应用于各种编程语言。线程存储期的对象在线程开始时分配,并在线程结束时释放。每个线程拥有自己独立的对象实例,互不干扰。在 C++11中,引入了thread_local关键字,用于声明具有线程存储期的对象。不少开发者喜欢直接将声明为线程存储期的对象称为:线程变量;也与全局变量CPU 变量,在一起讨论。

    以下是一段示例代码,展示了 thread_local 关键字的使用:

    int global_counter = 0;
    +thread_local int thread_local_counter = 0;
    +
    +void print_counters(){
    +    std::cout << "global:" << global_counter++ << '\\n';
    +    std::cout << "thread_local:" << thread_local_counter++ << '\\n';
    +}
    +
    +int main(){
    +    std::thread{ print_counters }.join();
    +    std::thread{ print_counters }.join();
    +}

    运行结果

    global:0
    +thread_local:0
    +global:1
    +thread_local:0

    这段代码很好的展示了 thread_local 关键字的使用以及它的作用。每一个线程都有独立的 thread_local_counter 对象,它们不是同一个。


    我知道你会有问题:“那么 C++11 之前呢?”那时开发者通常使用 POSIX 线程(Pthreads)或 Win32 线程的接口,或者依赖各家编译器的扩展。例如:

    POSIX 与 Win32 接口的就不再介绍了,有兴趣参见我们的链接即可。我们就拿先前的代码改成使用 GCC 与 MSVC 的编译器扩展即可。

    __thread int thread_local_counter = 0;           // GCC
    +__declspec(thread) int thread_local_counter = 0; // MSVC

    MSVC 无法使用 GCC 的编译器扩展,GCC 也肯定无法使用 MSVC 的扩展,不过 Clang 编译器可以,它支持 __thread__declspec(thread) 两种。Clang 默认情况就支持 GCC 的编译器扩展,如果要支持 MSVC,需要设置 -fms-extensions 编译选项。

    要注意的是,这些扩展并不是标准的 C++ 语言特性,它们的跨平台性和可移植性较差,我们应当使用 C++ 标准的 thread_local

    了解其它 API 以及编译器扩展有助于理解历史上线程存储期的演进。同时扩展知识面。

    注意事项

    需要注意的是,在 MSVC 的实现中,如果 std::async 策略为 launch::async ,但却并不是每次都创建一个新的线程,而是从线程池获取线程。这意味着无法保证线程局部变量在任务完成时会被销毁。如果线程被回收并用于新的 std::async 调用,则旧的线程局部变量仍然存在。因此,建议不要将线程局部变量与 std::async 一起使用文档

    虽然还没有讲 std::async ,不过还是可以注意一下这个问题,我们用一个简单的示例为你展示:

    int n = 0;
    +
    +struct X {
    + ~X() { ++n; }
    +};
    +
    +thread_local X x{};
    +
    +void use_thread_local_x() {
    + // 如果不写此弃值表达式,那么在 Gcc 与 Clang 编译此代码,会优化掉 x
    + (void)x;
    +}
    +
    +int main() {
    + std::cout << "使用 std::thread: \\n";
    + std::thread{ use_thread_local_x }.join();
    + std::cout << n << '\\n';
    +
    + std::cout << "使用 std::async: \\n";
    + std::async(std::launch::async, use_thread_local_x);
    + std::cout << n << '\\n';
    +}

    在不同编译器上的输出结果:

    CPU 变量

    CPU 变量的概念很好理解。就像线程变量为每个线程提供独立的对象实例,互不干扰一样,CPU 变量也是如此。在创建 CPU 变量时,系统上的每个 CPU [2] 都会获得该变量的一个副本。

    在 Linux 内核中,从 2.6[3] 版本开始引入了 Per-CPU 变量(Per-CPU variables)功能。Per-CPU 变量是为每个处理器单独分配的变量副本,旨在减少多处理器访问共享数据时的同步开销,提升性能。每个处理器只访问自己的变量副本,不需要进行同步操作,避免了数据竞争,增强了并行处理能力。

    在 Windows 内核中,没有直接对应的 Per-CPU 变量机制。

    本节是偏向概念的认识,而非实际进行内核编程,C++ 语言层面也并未提供此抽象。理解 CPU 变量的概念对于系统编程和内核开发非常重要。这些概念在面试和技术讨论中常常出现,掌握这些知识不仅有助于应对面试问题,也能提升对多处理器系统性能优化的理解。

    局部、全局、线程、CPU 变量的对比与使用

    在并发编程中,不同的变量有不同的使用场景和特点。以下是局部变量、全局变量、线程变量、CPU变量的对比:

    局部变量(不考虑静态局部)

    全局变量

    线程变量

    CPU变量


    总而言之,结合实际使用即可,把这四种变量拿出来进行对比,增进理解,加深印象。

    总结

    本章讨论了多线程的共享数据引发的恶性条件竞争会带来的问题。并说明了可以使用互斥量(std::mutex)保护共享数据,并且要注意互斥量上锁的“粒度”。C++标准库提供了很多工具,包括管理互斥量的管理类(std::lock_guard),但是互斥量只能解决它能解决的问题,并且它有自己的问题(死锁)。同时我们讲述了一些避免死锁的方法和技术。还讲了一下互斥量所有权转移。然后讨论了面对不同情况保护共享数据的不同方式,使用 std::call_once() 保护共享数据的初始化过程,使用读写锁(std::shared_mutex)保护不常更新的数据结构。以及特殊情况可能用到的互斥量 recursive_mutex,有些人可能喜欢称作:递归锁。然后聊了一下 newdelete 运算符的库函数实际是线程安全的。最后介绍了一下线程存储期、CPU 变量,和各种变量进行了一个对比。

    下一章,我们将开始讲述同步操作,会使用到 Futures条件变量等设施。


    1. "临界区"指的是一个访问共享资源的程序片段,而这些共享资源又无法同时被多个线程访问的特性。在临界区中,通常会使用同步机制,比如我们要讲的互斥量(Mutex)。 ↩︎

    2. 每个 CPU”,指的是系统中的每个物理处理器或每个逻辑处理器(如果超线程被启用)。 ↩︎

    3. Linux 内核版本历史↩︎

    4. 静态局部变量”:是指拥有静态或线程存储期的局部变量。 ↩︎

    5. 之所以说是“几乎”,是因为局部对象的构造、析构,或其它成员函数也可能修改共享数据、全局状态。如果它们不是线程安全的,同样可能产生数据竞争,例如,某类型 X 的构造函数会自增一个全局变量 n,那么即使局部对象本身是独立的,但由于构造函数修改了共享数据,依然会产生数据竞争。不过实践中这种情况较少,即使涉及到全局的状态,通常其本身也是线程安全的,例如前文提到的 newdelete 线程安全的问题。 ↩︎

    6. 之所以说“通常”而不是一定,是因为理论上线程变量一样可能产生数据竞争(例如有一个全局的指针指向了一个线程局部变量,其它线程通过这个指针读写线程局部变量而不附加同步,自然会产生数据竞争),只不过实践中通常不会那样做,所以我们不额外提及。 ↩︎

    `,130))])}const y=e(r,[["render",B],["__file","03共享数据.html.vue"]]),F=JSON.parse('{"path":"/md/03%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE.html","title":"共享数据","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"条件竞争","slug":"条件竞争","link":"#条件竞争","children":[]},{"level":2,"title":"使用互斥量","slug":"使用互斥量","link":"#使用互斥量","children":[{"level":3,"title":"std::lock_guard","slug":"std-lock-guard","link":"#std-lock-guard","children":[]},{"level":3,"title":"try_lock","slug":"try-lock","link":"#try-lock","children":[]}]},{"level":2,"title":"保护共享数据","slug":"保护共享数据","link":"#保护共享数据","children":[]},{"level":2,"title":"死锁:问题与解决","slug":"死锁-问题与解决","link":"#死锁-问题与解决","children":[]},{"level":2,"title":"std::unique_lock 灵活的锁","slug":"std-unique-lock-灵活的锁","link":"#std-unique-lock-灵活的锁","children":[]},{"level":2,"title":"在不同作用域传递互斥量","slug":"在不同作用域传递互斥量","link":"#在不同作用域传递互斥量","children":[]},{"level":2,"title":"保护共享数据的初始化过程","slug":"保护共享数据的初始化过程","link":"#保护共享数据的初始化过程","children":[]},{"level":2,"title":"保护不常更新的数据结构","slug":"保护不常更新的数据结构","link":"#保护不常更新的数据结构","children":[]},{"level":2,"title":"std::recursive_mutex","slug":"std-recursive-mutex","link":"#std-recursive-mutex","children":[]},{"level":2,"title":"new、delete 是线程安全的吗?","slug":"new、delete-是线程安全的吗","link":"#new、delete-是线程安全的吗","children":[]},{"level":2,"title":"线程存储期","slug":"线程存储期","link":"#线程存储期","children":[]},{"level":2,"title":"CPU 变量","slug":"cpu-变量","link":"#cpu-变量","children":[]},{"level":2,"title":"局部、全局、线程、CPU 变量的对比与使用","slug":"局部、全局、线程、cpu-变量的对比与使用","link":"#局部、全局、线程、cpu-变量的对比与使用","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1710730998000,"updatedTime":1727176170000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":28},{"name":"mq白","email":"3326284481@qq.com","commits":19},{"name":"A. Jiang","email":"de34@live.cn","commits":3},{"name":"LeeZQXML","email":"2919625053@qq.com","commits":2}]},"readingTime":{"minutes":40.1,"words":12031},"filePathRelative":"md/03共享数据.md","localizedDate":"2024年3月18日","excerpt":"\\n

    本章节主要内容:

    \\n\\n

    在上一章内容,我们对于线程的基本使用和管理,可以说已经比较了解了,甚至深入阅读了部分的 std::thread 源码。所以如果你好好学习了上一章,本章也完全不用担心。

    \\n

    我们本章,就要开始聊共享数据的那些事。

    \\n

    条件竞争

    \\n

    在多线程的情况下,每个线程都抢着完成自己的任务。在大多数情况下,即使会改变执行顺序,也是良性竞争,这是无所谓的。比如两个线程都要往标准输出输出一段字符,谁先谁后并不会有什么太大影响。

    "}');export{y as comp,F as data}; diff --git "a/assets/04\345\220\214\346\255\245\346\223\215\344\275\234.html-rJexZaMy.js" "b/assets/04\345\220\214\346\255\245\346\223\215\344\275\234.html-rJexZaMy.js" new file mode 100644 index 00000000..b5a09f4c --- /dev/null +++ "b/assets/04\345\220\214\346\255\245\346\223\215\344\275\234.html-rJexZaMy.js" @@ -0,0 +1,868 @@ +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,d as n,o as h}from"./app-Ca-A-iaw.js";const l="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E8%BF%9B%E5%BA%A6%E6%9D%A1-QdAFSPTh.png",t={};function k(e,s){return h(),a("div",null,s[0]||(s[0]=[n(`

    同步操作

    "同步操作"是指在计算机科学和信息技术中的一种操作方式,其中不同的任务或操作按顺序执行,一个操作完成后才能开始下一个操作。在多线程编程中,各个任务通常需要通过同步设施进行相互协调和等待,以确保数据的一致性正确性

    本章的主要内容有:

    本章将讨论如何使用条件变量等待事件,介绍 future 等标准库设施用作同步操作,使用Qt+CMake 构建一个项目展示多线程的必要性,介绍 C++20 引入的新的同步设施。

    等待事件或条件

    假设你正在一辆夜间运行的地铁上,那么你要如何在正确的站点下车呢?

    1. 一直不休息,每一站都能知道,这样就不会错过你要下车的站点,但是这会很疲惫。

    2. 可以看一下时间,估算一下地铁到达目的地的时间,然后设置一个稍早的闹钟,就休息。这个方法听起来还行,但是你可能被过早的叫醒,甚至估算错误导致坐过站,又或者闹钟没电了睡过站。

    3. 事实上最简单的方式是,到站的时候有人或者其它东西能将你叫醒(比如手机的地图,到达设置的位置就提醒)。

    这和线程有什么关系呢?其实第一种方法就是在说”忙等待(busy waiting)”也称“自旋“。

    bool flag = false;
    +std::mutex m;
    +
    +void wait_for_flag(){
    +    std::unique_lock<std::mutex> lk{ m };
    +    while (!flag){
    +        lk.unlock();    // 1 解锁互斥量
    +        lk.lock();      // 2 上锁互斥量
    +    }
    +}

    第二种方法就是加个延时,这种实现进步了很多,减少浪费的执行时间,但很难确定正确的休眠时间。这会影响到程序的行为,在需要快速响应的程序中就意味着丢帧或错过了一个时间片。循环中,休眠②前函数对互斥量解锁①,再休眠结束后再对互斥量上锁,让另外的线程有机会获取锁并设置标识(因为修改函数和等待函数共用一个互斥量)。

    void wait_for_flag(){
    +    std::unique_lock<std::mutex> lk{ m };
    +    while (!flag){
    +        lk.unlock();    // 1 解锁互斥量
    +        std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 2 休眠
    +        lk.lock();      // 3 上锁互斥量
    +    }
    +}

    第三种方式(也是最好的)实际上就是使用条件变量了。通过另一线程触发等待事件的机制是最基本的唤醒方式,这种机制就称为“条件变量”。

    C++ 标准库对条件变量有两套实现:std::condition_variablestd::condition_variable_any,这两个实现都包含在 <condition_variable> 头文件中。

    condition_variable_any 类是 std::condition_variable 的泛化。相对于只在 std::unique_lock<std::mutex> 上工作的 std::condition_variablecondition_variable_any 能在任何满足可基本锁定(BasicLockable)要求的锁上工作,所以增加了 _any 后缀。显而易见,这种区分必然是 any更加通用但是却有更多的性能开销。所以通常首选 std::condition_variable。有特殊需求,才会考虑 std::condition_variable_any

    std::mutex mtx;
    +std::condition_variable cv;
    +bool arrived = false;
    +
    +void wait_for_arrival() {
    +    std::unique_lock<std::mutex> lck(mtx);
    +    cv.wait(lck, []{ return arrived; }); // 等待 arrived 变为 true
    +    std::cout << "到达目的地,可以下车了!" << std::endl;
    +}
    +
    +void simulate_arrival() {
    +    std::this_thread::sleep_for(std::chrono::seconds(5)); // 模拟地铁到站,假设5秒后到达目的地
    +    {
    +        std::lock_guard<std::mutex> lck(mtx);
    +        arrived = true; // 设置条件变量为 true,表示到达目的地
    +    }
    +    cv.notify_one(); // 通知等待的线程
    +}

    运行测试。更换为 std::condition_variable_any 效果相同

    wait_for_arrival 函数中:

    1. std::unique_lock<std::mutex> lck(mtx): 使用互斥量创建了一个独占锁。

    2. cv.wait(lck, []{ return arrived; }): 阻塞当前线程,释放(unlock)锁,直到条件被满足。

    3. 一旦条件满足,即 arrived 变为 true,并且条件变量 cv唤醒(包括虚假唤醒),那么当前线程会重新获取锁(lock),并执行后续的操作。

    simulate_arrival 函数中:

    1. std::this_thread::sleep_for(std::chrono::seconds(5)): 模拟地铁到站,暂停当前线程 5 秒。

    2. 设置 arrived 为 true,表示到达目的地。

    3. cv.notify_one(): 唤醒一个等待条件变量的线程。

    这样,当 simulate_arrival 函数执行后,arrived 被设置为 true,并且通过 cv.notify_one() 唤醒了等待在条件变量上的线程,从而使得 wait_for_arrival 函数中的等待结束,可以执行后续的操作,即输出提示信息。


    条件变量的 wait 成员函数有两个版本,以上代码使用的就是第二个版本,传入了一个谓词

    void wait(std::unique_lock<std::mutex>& lock);                 // 1
    +
    +template<class Predicate>
    +void wait(std::unique_lock<std::mutex>& lock, Predicate pred); // 2

    ②等价于:

    while (!pred())
    +    wait(lock);

    第二个版本只是对第一个版本的包装,等待并判断谓词,会调用第一个版本的重载。这可以避免“虚假唤醒(spurious wakeup)”。

    条件变量虚假唤醒是指在使用条件变量进行线程同步时,有时候线程可能会在没有收到通知的情况下被唤醒。问题取决于程序和系统的具体实现。解决方法很简单,在循环中等待并判断条件可一并解决。使用 C++ 标准库则没有这个烦恼了。

    我们也可以简单看一下 MSVC STL 的源码实现

    void wait(unique_lock<mutex>& _Lck) noexcept {
    +    _Cnd_wait(_Mycnd(), _Lck.mutex()->_Mymtx());
    +}
    +
    +template <class _Predicate>
    +void wait(unique_lock<mutex>& _Lck, _Predicate _Pred) {
    +    while (!_Pred()) {
    +        wait(_Lck);
    +    }
    +}

    线程安全的队列

    在本节中,我们介将绍一个更为复杂的示例,以巩固我们对条件变量的学习。为了实现一个线程安全的队列,我们需要考虑以下两个关键点:

    1. 当执行 push 操作时,需要确保没有其他线程正在执行 pushpop 操作;同样,在执行 pop 操作时,也需要确保没有其他线程正在执行 pushpop 操作。

    2. 当队列为时,不应该执行 pop 操作。因此,我们需要使用条件变量来传递一个谓词,以确保在执行 pop 操作时队列不为空。

    基于以上思考,我们设计了一个名为 threadsafe_queue 的模板类,如下:

    template<typename T>
    +class threadsafe_queue {
    +    mutable std::mutex m;              // 互斥量,用于保护队列操作的独占访问
    +    std::condition_variable data_cond; // 条件变量,用于在队列为空时等待
    +    std::queue<T> data_queue;          // 实际存储数据的队列
    +public:
    +    threadsafe_queue() {}
    +    void push(T new_value) {
    +        {
    +            std::lock_guard<std::mutex> lk { m };
    +            data_queue.push(new_value);
    +        }
    +        data_cond.notify_one();
    +    }
    +    // 从队列中弹出元素(阻塞直到队列不为空)
    +    void pop(T& value) {
    +        std::unique_lock<std::mutex> lk{ m };
    +        data_cond.wait(lk, [this] {return !data_queue.empty(); });
    +        value = data_queue.front();
    +        data_queue.pop();
    +    }
    +    // 从队列中弹出元素(阻塞直到队列不为空),并返回一个指向弹出元素的 shared_ptr
    +    std::shared_ptr<T> pop() {
    +        std::unique_lock<std::mutex> lk{ m };
    +        data_cond.wait(lk, [this] {return !data_queue.empty(); });
    +        std::shared_ptr<T> res { std::make_shared<T>(data_queue.front()) };
    +        data_queue.pop();
    +        return res;
    +    }
    +    bool empty()const {
    +        std::lock_guard<std::mutex> lk (m);
    +        return data_queue.empty();
    +    }
    +};

    请无视我们省略的构造、赋值、交换、try_xx 等操作。以上示例已经足够。

    光写好了肯定不够,我们还得测试运行,我们可以写一个经典的:”生产者消费者模型“,也就是一个线程 push生产“,一个线程 pop消费“。

    void producer(threadsafe_queue<int>& q) {
    +    for (int i = 0; i < 5; ++i) {
    +        q.push(i);
    +    }
    +}
    +void consumer(threadsafe_queue<int>& q) {
    +    for (int i = 0; i < 5; ++i) {
    +        int value{};
    +        q.pop(value);
    +    }
    +}

    两个线程分别运行 producerconsumer,为了观测运行我们可以为 pushpop 中增加打印语句:

    std::cout << "push:" << new_value << std::endl;
    +std::cout << "pop:" << value << std::endl;

    可能运行结果是:

    push:0
    +pop:0
    +push:1
    +pop:1
    +push:2
    +push:3
    +push:4
    +pop:2
    +pop:3
    +pop:4

    这很正常,到底哪个线程会抢到 CPU 时间片持续运行,是系统调度决定的,我们只需要保证一开始提到的两点就行了:

    pushpop 都只能单独执行;当队列为时,不执行 pop 操作。

    我们可以给一个简单的示意图帮助你理解这段运行结果:

    初始状态:队列为空
    ++---+---+---+---+---+
    +
    +Producer 线程插入元素 0:
    ++---+---+---+---+---+
    +| 0 |   |   |   |   |
    +
    +Consumer 线程弹出元素 0:
    ++---+---+---+---+---+
    +|   |   |   |   |   |
    +
    +Producer 线程插入元素 1:
    ++---+---+---+---+---+
    +| 1 |   |   |   |   |
    +
    +Consumer 线程弹出元素 1:
    ++---+---+---+---+---+
    +|   |   |   |   |   |
    +
    +Producer 线程插入元素 2:
    ++---+---+---+---+---+
    +|   | 2 |   |   |   |
    +
    +Producer 线程插入元素 3:
    ++---+---+---+---+---+
    +|   | 2 | 3 |   |   |
    +
    +Producer 线程插入元素 4:
    ++---+---+---+---+---+
    +|   | 2 | 3 | 4 |   |
    +
    +Consumer 线程弹出元素 2:
    ++---+---+---+---+---+
    +|   |   | 3 | 4 |   |
    +
    +Consumer 线程弹出元素 3:
    ++---+---+---+---+---+
    +|   |   |   | 4 |   |
    +
    +Consumer 线程弹出元素 4:
    ++---+---+---+---+---+
    +|   |   |   |   |   |
    +
    +队列为空,所有元素已被弹出

    到此,也就可以了。

    使用条件变量实现后台提示音播放

    一个常见的场景是:当你的软件完成了主要功能后,领导可能突然要求添加一些竞争对手产品的功能。比如领导看到了人家的设备跑起来总是有一些播报,说明当前的情况,执行的过程,或者报错了也会有提示音说明。于是就想让我们的程序也增加“语音提示”的功能。此时,你需要考虑如何在程序运行到不同状态时添加适当的语音播报,并且确保这些提示音的播放不会影响其他功能的正常运行

    为了不影响程序的流畅执行,提示音的播放显然不能占据业务线程的资源。我们需要额外启动一个线程来专门处理这个任务。

    但是,大多数的提示音播放都是短暂且简单。如果每次播放提示音时都新建一个线程,且不说创建线程也需要大量时间,可能影响业务正常的执行任务的流程,就光是其频繁创建线程的开销也是不能接受的。


    因此,更合理的方案是:在程序启动时,就启动一个专门用于播放提示音的线程。当没有需要播放的提示时,该线程会一直处于等待状态;一旦有提示音需要播放,线程就被唤醒,完成播放任务

    具体来说,我们可以通过条件变量来实现这一逻辑,核心是监控一个音频队列。我们可以封装一个类型,包含以下功能:

    这种设计通过合理利用条件变量互斥量,不仅有效减少了 CPU 的无效开销,还能够确保主线程的顺畅运行。它不仅适用于提示音的播放,还能扩展用于其他类似的后台任务场景。

    我们引入 SFML 三方库进行声音播放,然后再自己进行上层封装。

    class AudioPlayer {
    +public:
    +    AudioPlayer() : stop{ false }, player_thread{ &AudioPlayer::playMusic, this }
    +    {}
    +
    +    ~AudioPlayer() {
    +        // 等待队列中所有音乐播放完毕
    +        while (!audio_queue.empty()) {
    +            std::this_thread::sleep_for(50ms);
    +        }
    +        stop = true;
    +        cond.notify_all();
    +        if (player_thread.joinable()) {
    +            player_thread.join();
    +        }
    +    }
    +
    +    void addAudioPath(const std::string& path) {
    +        std::lock_guard<std::mutex> lock{ mtx }; // 互斥量确保了同一时间不会有其它地方在操作共享资源(队列)
    +        audio_queue.push(path); // 为队列添加元素 表示有新的提示音需要播放
    +        cond.notify_one();      // 通知线程新的音频
    +    }
    +
    +private:
    +    void playMusic() {
    +        while (!stop) {
    +            std::string path;
    +            {
    +                std::unique_lock<std::mutex> lock{ mtx };
    +                cond.wait(lock, [this] { return !audio_queue.empty() || stop; });
    +
    +                if (audio_queue.empty()) return; // 防止在对象为空时析构出错
    +
    +                path = audio_queue.front(); // 从队列中取出元素
    +                audio_queue.pop();          // 取出后就删除元素,表示此元素已被使用
    +            }
    +
    +            if (!music.openFromFile(path)) {
    +                std::cerr << "无法加载音频文件: " << path << std::endl;
    +                continue;  // 继续播放下一个音频
    +            }
    +
    +            music.play();
    +
    +            // 等待音频播放完毕
    +            while (music.getStatus() == sf::SoundSource::Playing) {
    +                sf::sleep(sf::seconds(0.1f));  // sleep 避免忙等占用 CPU
    +            }
    +        }
    +    }
    +
    +    std::atomic<bool> stop;              // 控制线程的停止与退出,
    +    std::thread player_thread;           // 后台执行音频任务的专用线程
    +    std::mutex mtx;                      // 保护共享资源
    +    std::condition_variable cond;        // 控制线程等待和唤醒,当有新任务时通知音频线程
    +    std::queue<std::string> audio_queue; // 音频任务队列,存储待播放的音频文件路径
    +    sf::Music music;                     // SFML 音频播放器,用于加载和播放音频文件
    +};

    该代码实现了一个简单的后台音频播放类型,通过条件变量互斥量确保播放线程 playMusic 只在只在有音频任务需要播放时工作(当外部通过调用 addAudioPath() 向队列添加播放任务时)。在没有任务时,线程保持等待状态,避免占用 CPU 资源影响主程序的运行。

    注意

    其实这段代码还存在着一个初始化顺序导致的问题,见 #27

    此外,关于提示音的播报,为了避免每次都手动添加路径,我们可以创建一个音频资源数组,便于使用:

    此外,关于提示音的播报,为了避免每次都手动添加路径,我们可以创建一个音频资源数组,便于使用:

    static constexpr std::array soundResources{
    +    "./sound/01初始化失败.ogg",
    +    "./sound/02初始化成功.ogg",
    +    "./sound/03试剂不足,请添加.ogg",
    +    "./sound/04试剂已失效,请更新.ogg",
    +    "./sound/05清洗液不足,请添加.ogg",
    +    "./sound/06废液桶即将装满,请及时清空.ogg",
    +    "./sound/07废料箱即将装满,请及时清空.ogg",
    +    "./sound/08激发液A液不足,请添加.ogg",
    +    "./sound/09激发液B液不足,请添加.ogg",
    +    "./sound/10反应杯不足,请添加.ogg",
    +    "./sound/11检测全部完成.ogg"
    +};

    为了提高代码的可读性,我们还可以使用一个枚举类型来表示音频资源的索引:

    enum SoundIndex {
    +    InitializationFailed,
    +    InitializationSuccessful,
    +    ReagentInsufficient,
    +    ReagentExpired,
    +    CleaningAgentInsufficient,
    +    WasteBinAlmostFull,
    +    WasteContainerAlmostFull,
    +    LiquidAInsufficient,
    +    LiquidBInsufficient,
    +    ReactionCupInsufficient,
    +    DetectionCompleted,
    +    SoundCount // 总音频数量,用于计数
    +};

    需要注意的是 SFML不支持 .mp3 格式的音频文件,大家可以使用 ffmpeg 或者其它软件网站将音频转换为支持的格式。

    如果是测试使用,不知道去哪生成这些语音播报,我们推荐 tts-vue

    我们的代码也可以在 Linux 中运行,并且整体仅需 C++11 标准,除了 soundResources 数组以外。
    SFML 依赖于 FLACOpenAL 这两个库。在 Windows 上下载的 SFML 版本已包含这些依赖,但在 Linux 上需要用户自行下载并安装它们。如:

    sudo apt-get install libflac-dev
    +sudo apt-get install libopenal-dev

    使用 future

    举个例子:我们在车站等车,你可能会做一些别的事情打发时间,比如学习现代 C++ 模板教程、观看 mq白 的视频教程、玩手机等。不过,你始终在等待一件事情:车到站

    C++ 标准库将这种事件称为 future。它用于处理线程中需要等待某个事件的情况,线程知道预期结果。等待的同时也可以执行其它的任务。

    C++ 标准库有两种 future,都声明在 <future> 头文件中:独占的 std::future 、共享的 std::shared_future。它们的区别与 std::unique_ptrstd::shared_ptr 类似。std::future 只能与单个指定事件关联,而 std::shared_future 能关联多个事件。它们都是模板,它们的模板类型参数,就是其关联的事件(函数)的返回类型。当多个线程需要访问一个独立 future 对象时, 必须使用互斥量或类似同步机制进行保护。而多个线程访问同一共享状态,若每个线程都是通过其自身的 shared_future 对象副本进行访问,则是安全的。

    最简单有效的使用是,我们先前讲的 std::thread 在线程中执行任务是没有返回值的,这个问题就能使用 future 解决。

    创建异步任务获取返回值

    假设需要执行一个耗时任务并获取其返回值,但是并不急切的需要它。那么就可以启动新线程计算,然而 std::thread 没提供直接从线程获取返回值的机制。所以我们可以使用 std::async 函数模板。

    使用 std::async 启动一个异步任务,它会返回一个 std::future 对象,这个对象和任务关联,将持有最终计算出来的结果。当需要任务执行完的结果的时候,只需要调用 get() 成员函数,就会阻塞直到 future 为就绪为止(即任务执行完毕),返回执行结果。valid() 成员函数检查 future 当前是否关联共享状态,即是否当前关联任务。还未关联,或者任务已经执行完(调用了 get()、set()),都会返回 false

    #include <iostream>
    +#include <thread>
    +#include <future> // 引入 future 头文件
    +
    +int task(int n) {
    +    std::cout << "异步任务 ID: " << std::this_thread::get_id() << '\\n';
    +    return n * n;
    +}
    +
    +int main() {
    +    std::future<int> future = std::async(task, 10);
    +    std::cout << "main: " << std::this_thread::get_id() << '\\n';
    +    std::cout << std::boolalpha << future.valid() << '\\n'; // true
    +    std::cout << future.get() << '\\n';
    +    std::cout << std::boolalpha << future.valid() << '\\n'; // false
    +}

    运行测试。

    std::thread 一样,std::async 支持任意可调用(Callable)对象,以及传递调用参数。包括支持使用 std::ref ,以及支持只能移动的类型。我们下面详细聊一下 std::async 参数传递的事。

    struct X{
    +    int operator()(int n)const{
    +        return n * n;
    +    }
    +};
    +struct Y{
    +    int f(int n)const{
    +        return n * n;
    +    }
    +};
    +void f(int& p) { std::cout << &p << '\\n'; }
    +
    +int main(){
    +    Y y;
    +    int n = 0;
    +    auto t1 = std::async(X{}, 10);
    +    auto t2 = std::async(&Y::f,&y,10);
    +    auto t3 = std::async([] {});         
    +    auto t4 = std::async(f, std::ref(n));
    +    std::cout << &n << '\\n';
    +}

    运行测试。

    如你所见,它支持所有可调用(Callable)对象,并且也是默认按值复制,必须使用 std::ref 才能传递引用。并且它和 std::thread 一样,内部会将保有的参数副本转换为右值表达式进行传递,这是为了那些只支持移动的类型,左值引用没办法引用右值表达式,所以如果不使用 std::ref,这里 void f(int&) 就会导致编译错误,如果是 void f(const int&) 则可以通过编译,不过引用的不是我们传递的局部对象。

    void f(const int& p) {}
    +void f2(int& p ){}
    +
    +int n = 0;
    +std::async(f, n);   // OK! 可以通过编译,不过引用的并非是局部的n
    +std::async(f2, n);  // Error! 无法通过编译

    我们来展示使用 std::move ,也就是移动传递参数并接受返回值:

    struct move_only{
    +    move_only() { std::puts("默认构造"); }
    +    move_only(move_only&&)noexcept { std::puts("移动构造"); }
    +    move_only& operator=(move_only&&) noexcept {
    +        std::puts("移动赋值");
    +        return *this;
    +    }
    +    move_only(const move_only&) = delete;
    +};
    +
    +move_only task(move_only x){
    +    std::cout << "异步任务 ID: " << std::this_thread::get_id() << '\\n';
    +    return x;
    +}
    +
    +int main(){
    +    move_only x;
    +    std::future<move_only> future = std::async(task, std::move(x));
    +    std::this_thread::sleep_for(std::chrono::seconds(1));
    +    std::cout << "main\\n";
    +    move_only result = future.get();  // 等待异步任务执行完毕
    +}

    运行测试。

    如你所见,它支持只移动类型,我们将参数使用 std::move 传递,接收参数的时候直接调用 get 函数即可。


    接下来我们聊 std::async执行策略,我们前面一直没有使用,其实就是在传递可调用对象与参数之前传递枚举值罢了:

    1. std::launch::async 在不同线程上执行异步任务。
    2. std::launch::deferred 惰性求值,不创建线程,等待 future 对象调用 waitget 成员函数的时候执行任务。

    而我们先前一直没有写明这个参数,是因为 std::async 函数模板有两个重载,不给出执行策略就是以:std::launch::async | std::launch::deferred 调用另一个重载版本(这一点中在源码中很明显),此策略表示由实现选择到底是否创建线程执行异步任务。典型情况是,如果系统资源充足,并且异步任务的执行不会导致性能问题,那么系统可能会选择在新线程中执行任务。但是,如果系统资源有限,或者延迟执行可以提高性能或节省资源,那么系统可能会选择延迟执行。

    如果你阅读 libstdc++ 的代码,会发现的确如此。

    然而值得注意的是,在 MSVC STL 的实现中,launch::async | launch::deferredlaunch::async 执行策略毫无区别,源码如下:

    template <class _Ret, class _Fty>
    +_Associated_state<typename _P_arg_type<_Ret>::type>* _Get_associated_state(launch _Psync, _Fty&& _Fnarg) {
    +     // construct associated asynchronous state object for the launch type
    +     switch (_Psync) { // select launch type
    +     case launch::deferred:
    +           return new _Deferred_async_state<_Ret>(_STD forward<_Fty>(_Fnarg));
    +     case launch::async: // TRANSITION, fixed in vMajorNext, should create a new thread here
    +     default:
    +           return new _Task_async_state<_Ret>(_STD forward<_Fty>(_Fnarg));
    +     }
    +}

    _Task_async_state 会通过 ::Concurrency::create_task[1] 从线程池中获取线程并执行任务返回包装对象。

    简而言之,使用 std::async,只要不是 launch::deferred 策略,那么 MSVC STL 实现中都是必然在线程中执行任务。因为是线程池,所以执行新任务是否创建新线程,任务执行完毕线程是否立即销毁,不确定

    我们来展示一下:

    void f(){
    +    std::cout << std::this_thread::get_id() << '\\n';
    +}
    +
    +int main(){
    +    std::cout << std::this_thread::get_id() << '\\n';
    +    auto f1 = std::async(std::launch::deferred, f);
    +    f1.wait(); // 在 wait() 或 get() 调用时执行,不创建线程
    +    auto f2 = std::async(std::launch::async,f); // 创建线程执行异步任务
    +    auto f3 = std::async(std::launch::deferred | std::launch::async, f); // 实现选择的执行方式
    +}

    运行测试。


    其实到此基本就差不多了,我们再介绍两个常见问题即可:

    1. 如果从 std::async 获得的 std::future 没有被移动或绑定到引用,那么在完整表达式结尾, std::future 的**析构函数将阻塞,直到到异步任务完成**。因为临时对象的生存期就在这一行,而对象生存期结束就会调用调用析构函数。

      std::async(std::launch::async, []{ f(); }); // 临时量的析构函数等待 f()
      +std::async(std::launch::async, []{ g(); }); // f() 完成前不开始

      如你所见,这并不能创建异步任务,它会阻塞,然后逐个执行。

    2. 被移动的 std::future 没有所有权,失去共享状态,不能调用 getwait 成员函数。

      auto t = std::async([] {});
      +std::future<void> future{ std::move(t) };
      +t.wait();   // Error! 抛出异常

      如同没有线程资源所有权的 std::thread 对象调用 join() 一样错误,这是移动语义的基本语义逻辑。

    futurestd::packaged_task

    类模板 std::packaged_task 包装任何可调用(Callable)目标(函数、lambda 表达式、bind 表达式或其它函数对象),使得能异步调用它。其返回值或所抛异常被存储于能通过 std::future 对象访问的共享状态中。

    通常它会和 std::future 一起使用,不过也可以单独使用,我们一步一步来:

    std::packaged_task<double(int, int)> task([](int a, int b){
    +    return std::pow(a, b);
    +});
    +task(10, 2); // 执行传递的 lambda,但无法获取返回值

    它有 operator() 的重载,它会执行我们传递的可调用(Callable)对象,不过这个重载的返回类型是 void 没办法获取返回值

    如果想要异步的获取返回值,我们需要在调用 operator() 之前,让它和 future 关联,然后使用 future.get(),也就是:

    std::packaged_task<double(int, int)> task([](int a, int b){
    +    return std::pow(a, b);
    +});
    +std::future<double>future = task.get_future();
    +task(10, 2); // 此处执行任务
    +std::cout << future.get() << '\\n'; // 不阻塞,此处获取返回值

    运行测试。

    先关联任务,再执行任务,当我们想要获取任务的返回值的时候,就 future.get() 即可。值得注意的是,任务并不会在线程中执行,想要在线程中执行异步任务,然后再获取返回值,我们可以这么做:

    std::packaged_task<double(int, int)> task([](int a, int b){
    +    return std::pow(a, b);
    +});
    +std::future<double> future = task.get_future();
    +std::thread t{ std::move(task),10,2 }; // 任务在线程中执行
    +// todo.. 幻想还有许多耗时的代码
    +t.join();
    +
    +std::cout << future.get() << '\\n'; // 并不阻塞,获取任务返回值罢了

    运行测试。

    因为 task 本身是重载了 operator() 的,是可调用对象,自然可以传递给 std::thread 执行,以及传递调用参数。唯一需要注意的是我们使用了 std::move ,这是因为 std::packaged_task 只能移动,不能复制。


    简而言之,其实 std::packaged_task 也就是一个“包装”类而已,它本身并没什么特殊的,老老实实执行我们传递的任务,且方便我们获取返回值罢了,明确这一点,那么一切都不成问题。

    std::packaged_task 也可以在线程中传递,在需要的时候获取返回值,而非像上面那样将它自己作为可调用对象:

    template<typename R, typename...Ts, typename...Args>
    +    requires std::invocable<std::packaged_task<R(Ts...)>&, Args...> 
    +void async_task(std::packaged_task<R(Ts...)>& task, Args&&...args) {
    +    // todo..
    +    task(std::forward<Args>(args)...);
    +}
    +
    +int main() {
    +    std::packaged_task<int(int,int)> task([](int a,int b){
    +        return a + b;
    +    });
    +    
    +    int value = 50;
    +    std::future<int> future = task.get_future();
    +    // 创建一个线程来执行异步任务
    +    std::thread t{ [&] {async_task(task, value, value); } };
    +    std::cout << future.get() << '\\n';
    +    t.join();
    +}

    运行测试。

    我们套了一个 lambda,这是因为函数模板不是函数,它并非具体类型,没办法直接被那样传递使用,只能包一层了。这只是一个简单的示例,展示可以使用 std::packaged_task 作函数形参,然后我们来传递任务进行异步调用等操作。

    我们再将第二章实现的并行 sum 改成 std::package_task + std::future 的形式:

    template<typename ForwardIt>
    +auto sum(ForwardIt first, ForwardIt last) {
    +    using value_type = std::iter_value_t<ForwardIt>;
    +    std::size_t num_threads = std::thread::hardware_concurrency();
    +    std::ptrdiff_t distance = std::distance(first, last);
    +
    +    if (distance > 1024000) {
    +        // 计算每个线程处理的元素数量
    +        std::size_t chunk_size = distance / num_threads;
    +        std::size_t remainder = distance % num_threads;
    +
    +        // 存储每个线程要执行的任务
    +        std::vector<std::packaged_task<value_type()>>tasks;
    +        // 和每一个任务进行关联的 future 用于获取返回值
    +        std::vector<std::future<value_type>>futures(num_threads);
    +
    +        // 存储关联线程的线程对象
    +        std::vector<std::thread> threads;
    +
    +        // 制作任务、与 future 关联、启动线程执行
    +        auto start = first;
    +        for (std::size_t i = 0; i < num_threads; ++i) {
    +            auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0));
    +            tasks.emplace_back(std::packaged_task<value_type()>{[start, end, i] {
    +                return std::accumulate(start, end, value_type{});
    +            }});
    +            start = end; // 开始迭代器不断向前
    +            futures[i] = tasks[i].get_future(); // 任务与 std::future 关联
    +            threads.emplace_back(std::move(tasks[i]));
    +        }
    +
    +        // 等待所有线程执行完毕
    +        for (auto& thread : threads)
    +            thread.join();
    +
    +        // 汇总线程的计算结果
    +        value_type total_sum {};
    +        for (std::size_t i = 0; i < num_threads; ++i) {
    +            total_sum += futures[i].get();
    +        }
    +        return total_sum;
    +    }
    +
    +    value_type total_sum = std::accumulate(first, last, value_type{});
    +    return total_sum;
    +}

    运行测试。

    相比于之前,其实不同无非是定义了 std::vector<std::packaged_task<value_type()>> tasksstd::vector<std::future<value_type>> futures ,然后在循环中制造任务插入容器,关联 future,再放到线程中执行。最后汇总的时候写一个循环,futures[i].get() 获取任务的返回值加起来即可。

    到此,也就可以了。

    使用 std::promise

    类模板 std::promise 用于存储一个值或一个异常,之后通过 std::promise 对象所创建的 std::future 对象异步获得。

    // 计算函数,接受一个整数并返回它的平方
    +void calculate_square(std::promise<int> promiseObj, int num) {
    +    // 模拟一些计算
    +    std::this_thread::sleep_for(std::chrono::seconds(1));
    +
    +    // 计算平方并设置值到 promise 中
    +    promiseObj.set_value(num * num);
    +}
    +
    +// 创建一个 promise 对象,用于存储计算结果
    +std::promise<int> promise;
    +
    +// 从 promise 获取 future 对象进行关联
    +std::future<int> future = promise.get_future();
    +
    +// 启动一个线程进行计算
    +int num = 5;
    +std::thread t(calculate_square, std::move(promise), num);
    +
    +// 阻塞,直到结果可用
    +int result = future.get();
    +std::cout << num << " 的平方是:" << result << std::endl;
    +
    +t.join();

    运行测试。

    我们在新线程中通过调用 set_value() 函数设置 promise 的值,并在主线程中通过与其关联的 future 对象的 get() 成员函数获取这个值,如果promise的值还没有被设置,那么将阻塞当前线程,直到被设置为止。同样的 std::promise 只能移动,不可复制,所以我们使用了 std::move 进行传递。


    除了 set_value() 函数外,std::promise 还有一个 set_exception() 成员函数,它接受一个 std::exception_ptr 类型的参数,这个参数通常通过 std::current_exception() 获取,用于指示当前线程中抛出的异常。然后,std::future 对象通过 get() 函数获取这个异常,如果 promise 所在的函数有异常被抛出,则 std::future 对象会重新抛出这个异常,从而允许主线程捕获并处理它。

    void throw_function(std::promise<int> prom) {
    +    try {
    +        throw std::runtime_error("一个异常");
    +    }
    +    catch (...) {
    +        prom.set_exception(std::current_exception());
    +    }
    +}
    +
    +int main() {
    +    std::promise<int> prom;
    +    std::future<int> fut = prom.get_future();
    +
    +    std::thread t(throw_function, std::move(prom));
    +
    +    try {
    +        std::cout << "等待线程执行,抛出异常并设置\\n";
    +        fut.get();
    +    }
    +    catch (std::exception& e) {
    +        std::cerr << "来自线程的异常: " << e.what() << '\\n';
    +    }
    +    t.join();
    +}

    运行结果

    等待线程执行,抛出异常并设置
    +来自线程的异常: 一个异常

    你可能对这段代码还有一些疑问:我们写的是 promise<int> ,但是却没有使用 set_value 设置值,你可能会想着再写一行 prom.set_value(0)

    共享状态的 promise 已经存储值或者异常,再次调用 set_valueset_exception) 会抛出 std::future_error 异常,将错误码设置为 promise_already_satisfied。这是因为 std::promise 对象只能是存储值或者异常其中一种,而无法共存

    简而言之,set_valueset_exception 二选一,如果先前调用了 set_value ,就不可再次调用 set_exception,反之亦然(不然就会抛出异常),示例如下:

    void throw_function(std::promise<int> prom) {
    +    prom.set_value(100);
    +    try {
    +        throw std::runtime_error("一个异常");
    +    }
    +    catch (...) {
    +        try{
    +            // 共享状态的 promise 已存储值,调用 set_exception 产生异常
    +            prom.set_exception(std::current_exception());
    +        }catch (std::exception& e){
    +            std::cerr << "来自 set_exception 的异常: " << e.what() << '\\n';
    +        }
    +    }
    +}
    +
    +int main() {
    +    std::promise<int> prom;
    +    std::future<int> fut = prom.get_future();
    +
    +    std::thread t(throw_function, std::move(prom));
    +    
    +    std::cout << "等待线程执行,抛出异常并设置\\n";
    +    std::cout << "值:" << fut.get() << '\\n'; // 100
    +
    +    t.join();
    +}

    运行结果

    等待线程执行,抛出异常并设置
    +值:100
    +来自 set_exception 的异常: promise already satisfied

    future 的状态变化

    需要注意的是,future 是一次性的,所以你需要注意移动。并且,调用 get 函数后,future 对象也会失去共享状态

    std::future<void>future = std::async([] {});
    +std::cout << std::boolalpha << future.valid() << '\\n'; // true
    +future.get();
    +std::cout << std::boolalpha << future.valid() << '\\n'; // false
    +try {
    +    future.get(); // 抛出 future_errc::no_state 异常
    +}
    +catch (std::exception& e) {
    +    std::cerr << e.what() << '\\n';
    +}

    运行测试。

    这个问题在许多文档中没有明确说明,但通过阅读源码(MSVC STL),可以很清楚地理解:

    // std::future<void>
    +void get() {
    +    // block until ready then return or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    _Local._Get_value();
    +}
    +// std::future<T>
    +_Ty get() {
    +    // block until ready then return the stored result or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    return _STD move(_Local._Get_value());
    +}
    +// std::future<T&>
    +_Ty& get() {
    +    // block until ready then return the stored result or throw the stored exception
    +    future _Local{_STD move(*this)};
    +    return *_Local._Get_value();
    +}

    如上所示,我们展示了 std::future 的所有特化中 get 成员函数的实现。注意到了吗?尽管我们可能不了解移动构造函数的具体实现,但根据通用的语义,可以看出 future _Local{_STD move(*this)}; 将当前对象的共享状态转移给了这个局部对象,而局部对象在函数结束时析构。这意味着当前对象失去共享状态,并且状态被完全销毁。

    另外一提,std::future<T> 这个特化,它 return std::move 是为了支持只能移动的类型能够使用 get 返回值,参见前文的 move_only 类型。

    如果需要进行多次 get 调用,可以考虑使用下文提到的 std::shared_future

    多个线程的等待 std::shared_future

    之前的例子中我们一直使用 std::future,但 std::future 有一个局限:future 是一次性的,它的结果只能被一个线程获取。get() 成员函数只能调用一次,当结果被某个线程获取后,std::future 就无法再用于其他线程。

    int task(){
    +    // todo..
    +    return 10;
    +}
    +
    +void thread_functio(std::future<int>& fut){
    +    // todo..
    +    int result = fut.get();
    +    std::cout << result << '\\n';
    +    // todo..
    +}
    +
    +int main(){
    +    auto future = std::async(task); // 启动耗时的异步任务
    +
    +    // 可能有多个线程都需要此任务的返回值,于是我们将与其关联的 future 对象的引入传入
    +    std::thread t{ thread_functio,std::ref(future) };
    +    std::thread t2{ thread_functio,std::ref(future) };
    +    t.join();
    +    t2.join();
    +}

    可能有多个线程都需要耗时的异步任务的返回值,于是我们将与其关联的 future 对象的引入传给线程对象,让它能在需要的时候获取。

    但是这存在个问题,future 是一次性的,只能被调用一次 get() 成员函数,所以以上代码存在问题。

    此时就需要使用 std::shared_future 来替代 std::future 了。std::futurestd::shared_future 的区别就如同 std::unique_ptrstd::shared_ptr 一样。

    std::future 是只能移动的,其所有权可以在不同的对象中互相传递,但只有一个对象可以获得特定的同步结果。而 std::shared_future 是可复制的,多个对象可以指代同一个共享状态。

    在多个线程中对同一个 std::shared_future 对象进行操作时(如果没有进行同步保护)存在条件竞争。而从多个线程访问同一共享状态,若每个线程都是通过其自身的 shared_future 对象副本进行访问,则是安全的。

    std::string fetch_data() {
    +    std::this_thread::sleep_for(std::chrono::seconds(1)); // 模拟耗时操作
    +    return "从网络获取的数据!";
    +}
    +
    +int main() {
    +    std::future<std::string> future_data = std::async(std::launch::async, fetch_data);
    +
    +    // // 转移共享状态,原来的 future 被清空  valid() == false
    +    std::shared_future<std::string> shared_future_data = future_data.share();
    +
    +    // 第一个线程等待结果并访问数据
    +    std::thread thread1([&shared_future_data] {
    +        std::cout << "线程1:等待数据中..." << std::endl;
    +        shared_future_data.wait();
    +        std::cout << "线程1:收到数据:" << shared_future_data.get() << std::endl;
    +    });
    +
    +    // 第二个线程等待结果并访问数据
    +    std::thread thread2([&shared_future_data] {
    +        std::cout << "线程2:等待数据中..." << std::endl;
    +        shared_future_data.wait();
    +        std::cout << "线程2:收到数据:" << shared_future_data.get() << std::endl;
    +    });
    +
    +    thread1.join();
    +    thread2.join();
    +}

    这段代码存在数据竞争,就如同我们先前所说:“在多个线程中对同一个 std::shared_future 对象进行操作时(如果没有进行同步保护)存在条件竞争”,它并没有提供线程安全的方式。而我们的 lambda 是按引用传递,也就是“同一个”进行操作了。可以改为:

    std::string fetch_data() {
    +    std::this_thread::sleep_for(std::chrono::seconds(1)); // 模拟耗时操作
    +    return "从网络获取的数据!";
    +}
    +
    +int main() {
    +    std::future<std::string> future_data = std::async(std::launch::async, fetch_data);
    +
    +    std::shared_future<std::string> shared_future_data = future_data.share();
    +
    +    std::thread thread1([shared_future_data] {
    +        std::cout << "线程1:等待数据中..." << std::endl;
    +        shared_future_data.wait();
    +        std::cout << "线程1:收到数据:" << shared_future_data.get() << std::endl;
    +    });
    +
    +    std::thread thread2([shared_future_data] {
    +        std::cout << "线程2:等待数据中..." << std::endl;
    +        shared_future_data.wait();
    +        std::cout << "线程2:收到数据:" << shared_future_data.get() << std::endl;
    +    });
    +
    +    thread1.join();
    +    thread2.join();
    +}

    这样访问的就都是 std::shared_future 的副本了,我们的 lambda 按复制捕获 std::shared_future 对象,每个线程都有一个 shared_future 的副本,这样不会有任何问题。这一点和 std::shared_ptr 类似[2]

    std::promise 也同,它的 get_future() 成员函数一样可以用来构造 std::shared_future,虽然它的返回类型是 std::future,不过不影响,这是因为 std::shared_future 有一个 std::future<T>&& 参数的构造函数,转移 std::future 的所有权。

    std::promise<std::string> p;
    +std::shared_future<std::string> sf{ p.get_future() }; // 隐式转移所有权

    就不需要再强调了。

    限时等待

    阻塞调用会将线程挂起一段(不确定的)时间,直到对应的事件发生。通常情况下,这样的方式很好,但是在一些情况下,需要限定线程等待的时间,因为无限期地等待事件发生可能会导致性能下降或资源浪费。一个常见的例子是在很多网络库中的 connect 函数,这个函数调用是阻塞的,但是也是限时的,一定时间内没有连接到服务器就不会继续阻塞了,会进行其它处理,比如抛出异常。

    介绍两种指定超时的方式,一种是“时间段”,另一种是“时间点”,其实就是先前讲的 std::this::thread::sleep_forstd::this_thread::sleep_until 的区别。前者是需要指定等待一段时间(比如 10 毫秒)。而后者是指定等待到一个具体的时间点(比如到 2024-05-07T12:01:10.123)。多数函数都对两种超时方式进行处理。处理持续时间的函数以 _for 作为后缀,处理绝对时间的函数以 _until 作为后缀

    条件变量 std::condition_variable 的等待函数,也有两个超时的版本 wait_forwait_until 。它们和我们先前讲的 wait 成员函数一样有两个重载,可以选择是否传递一个谓词。它们相比于 wait 多了一个解除阻塞的可能,即:超过指定的时长或抵达指定的时间点

    在讲述它的使用细节之前,我们还是要来先聊一下 C++ 中的时间库(chrono),指定时间的方式,它较为麻烦。我们分:时钟(clock)时间段(duration)、*时间点(time point)*三个阶段稍微介绍一下。

    时钟

    在 C++ 标准库中,时钟被视为时间信息的来源。C++ 定义了很多种时间类型,每种时钟类型都提供了四种不同的信息:

    当前时间可以通过静态成员函数 now 获取,例如,std::chrono::system_clock::now() 会返回系统的当前时间。特定的时间点则可以通过 time_point 来指定。system_clock::now() 的返回类型就是 time_point

    时钟节拍被指定为 1/x(x 在不同硬件上有不同的值)秒,这是由时间周期所决定。假设一个时钟一秒有 25 个节拍,因此一个周期为 std::ratio<1,25> 。当一个时钟的时钟节拍每 2.5 秒一次,周期就可以表示为 std::ratio<5,2>

    类模板 std::chrono::duration 表示时间间隔。

    template<class Rep, class Period = std::ratio<1>>
    +class duration;

    std::ratio 是一个分数类模板,它有两个非类型模板参数,也就是分子与分母,分母有默认实参 1,所以 std::ratio<1> 等价于 std::ratio<1,1>

    如你所见,它默认的时钟节拍是 1,这是一个很重要的类,标准库通过它定义了很多的时间类型,比如 std::chrono::minutes 是分钟类型,那么它的 Period 就是 std::ratio<60> ,因为一分钟等于 60 秒。

    using minutes      = duration<int, ratio<60>>;

    稳定时钟(Steady Clock)是指提供稳定、持续递增的时间流逝信息的时钟。它的特点是不受系统时间调整或变化的影响,即使在系统休眠或时钟调整的情况下,它也能保持稳定。在 C++ 标准库中,std::chrono::steady_clock 就是一个稳定时钟。它通常用于测量时间间隔和性能计时等需要高精度和稳定性的场景。可以通过 is_steady 静态常量判断当前时钟是否是稳定时钟。

    稳定时钟的主要优点在于,它可以提供相对于起始时间的稳定的递增时间,因此适用于需要保持时间顺序和不受系统时间变化影响的应用场景。相比之下,像 std::chrono::system_clock 这样的系统时钟可能会受到系统时间调整或变化的影响,因此在某些情况下可能不适合对时间间隔进行精确测量。

    不管使用哪种时钟获取时间,C++ 都提供了函数,可以将时间点转换为 time_t 类型的值:

    auto now = std::chrono::system_clock::now();
    +time_t now_time = std::chrono::system_clock::to_time_t(now);
    +std::cout << "Current time:\\t" << std::put_time(std::localtime(&now_time), "%H:%M:%S\\n");
    +
    +auto now2 = std::chrono::steady_clock::now();
    +now_time = std::chrono::system_clock::to_time_t(now);
    +std::cout << "Current time:\\t" << std::put_time(std::localtime(&now_time), "%H:%M:%S\\n");

    C++ 的时间库极其繁杂,主要在于类型之多,以及实现之复杂。根据我们的描述,了解基本构成、概念、使用,即可。

    时间段

    时间部分最简单的就是时间段,主要的内容就是我们上面讲的类模板 std::chrono::duration ,它用于对时间段进行处理。

    它的第一个参数是类型表示,第二个参数就是先前提到的“节拍”,需要传递一个 std::ratio 类型,也就是一个时钟所用的秒数。

    标准库在 std::chrono 命名空间内为时间段提供了一系列的类型,它们都是通过 std::chrono::duration 定义的别名

    using nanoseconds  = duration<long long, nano>;
    +using microseconds = duration<long long, micro>;
    +using milliseconds = duration<long long, milli>;
    +using seconds      = duration<long long>;
    +using minutes      = duration<int, ratio<60>>;
    +using hours        = duration<int, ratio<3600>>;
    +// CXX20
    +using days   = duration<int, ratio_multiply<ratio<24>, hours::period>>;
    +using weeks  = duration<int, ratio_multiply<ratio<7>, days::period>>;
    +using years  = duration<int, ratio_multiply<ratio<146097, 400>, days::period>>;
    +using months = duration<int, ratio_divide<years::period, ratio<12>>>;

    如果没有指明 duration 的第二个非类型模板参数,那么代表默认 std::ratio<1>,比如 seconds 也就是一秒。

    如上,是 MSVC STL 定义的,看似有一些没有使用 ratio 作为第二个参数,其实也还是别名罢了,

    using milli = ratio<1, 1000>; // 千分之一秒,也就是一毫秒了

    并且为了方便使用,在 C++14 标准库增加了时间字面量,存在于 std::chrono_literals 命名空间中,让我们得以简单的使用:

    using namespace std::chrono_literals;
    +
    +auto one_nanosecond = 1ns;
    +auto one_microsecond = 1us;
    +auto one_millisecond = 1ms;
    +auto one_second = 1s;
    +auto one_minute = 1min;
    +auto one_hour = 1h;

    当不要求截断值的情况下(时转换为秒时没问题的,但反过来不行)时间段有隐式转换,显式转换可以由 std::chrono::duration_cast<> 来完成。

    std::chrono::milliseconds ms{ 3999 };
    +std::chrono::seconds s = std::chrono::duration_cast<std::chrono::seconds>(ms);
    +std::cout << s.count() << '\\n';

    这里的结果是截断的,而不会进行所谓的四舍五入,3999 毫秒,也就是 3.999 秒最终的值是 3

    很多时候这并不是我们想要的,比如我们想要的其实是输出 3.999 秒,而不是 3 秒 或者 3999 毫秒。

    seconds 是 duration<long long> 这意味着它无法接受浮点数,我们直接改成 duration<double> 即可:

    std::chrono::duration<double> s = std::chrono::duration_cast<std::chrono::duration<double>>(ms);

    当然了,这样写很冗余,并且这种形式的转换是可以直接隐式的,也就是其实我们可以直接:

    std::chrono::duration<double> s = ms;

    无需使用 duration_cast,可以直接隐式转换。

    另外我们用的 duration 都是省略了 ratio 的,其实默认类型就是 ratio<1>,代表一秒。参见源码声明

    _EXPORT_STD template <class _Rep, class _Period = ratio<1>>
    +class duration;

    时间库支持四则运算,可以对两个时间段进行加减乘除。时间段对象可以通过 count() 成员函数获得计次数。例如 std::chrono::milliseconds{123}.count() 的结果就是 123。

    基于时间段的等待都是由 std::chrono::duration<> 来完成。例如:等待一个 future 对象在 35 毫秒内变为就绪状态:

    std::future<int> future = std::async([] {return 6; });
    +if (future.wait_for(35ms) == std::future_status::ready)
    +    std::cout << future.get() << '\\n';

    wait_for: 等待结果,如果在指定的超时间隔后仍然无法得到结果,则返回。它的返回类型是一个枚举类 std::future_status ,三个枚举项分别表示三种 future 状态。

    deferred共享状态持有的函数正在延迟运行,结果将仅在明确请求时计算
    ready共享状态就绪
    timeout共享状态在经过指定的等待时间内仍未就绪

    timeout 超时,也很好理解,那我们就提一下 deferred

    auto future = std::async(std::launch::deferred, []{});
    +if (future.wait_for(35ms) == std::future_status::deferred)
    +    std::cout << "future_status::deferred " << "正在延迟执行\\n";
    +future.wait(); // 在 wait() 或 get() 调用时执行,不创建线程

    时间点

    时间点可用 std::chrono::time_point<> 来表示,第一个模板参数用来指定使用的时钟,第二个模板参数用来表示时间单位(std::chrono::duration<>)。时间点顾名思义就是时间中的一个点,在 C++ 中用于表达当前时间,先前提到的静态成员函数 now() 获取当前时间,它们的返回类型都是 std::chrono::time_point

    template<
    +    class Clock,
    +    class Duration = typename Clock::duration
    +> class time_point;

    如你所见,它的第二个模板参数是时间段,就是时间的间隔,其实也就可以理解为表示时间点的精度,默认是根据第一个参数时钟得到的,所以假设有类型:

    std::chrono::time_point<std::chrono::system_clock>

    那它等价于:

    std::chrono::time_point<std::chrono::system_clock, std::chrono::system_clock::duration>

    也就是说第二个参数的实际类型是:

    std::chrono::duration<long long,std::ratio<1, 10000000>> //  // 100 nanoseconds

    也就是说 std::chrono::time_point<std::chrono::system_clock> 的精度是 100 纳秒。

    更多的问题参见源码都很直观。

    注意,这里的精度并非是实际的时间精度。时间和硬件系统等关系极大,以 windows 为例:

    Windows 内核中的时间间隔计时器默认每隔 15.6 毫秒触发一次中断。因此,如果你使用基于系统时钟的计时方法,默认情况下精度约为 15.6 毫秒。不可能达到纳秒级别。

    由于这个系统时钟的限制,那些基于系统时钟的 API(例如 Sleep()WaitForSingleObject() 等)的最小睡眠时间默认就是 15.6 毫秒左右。

    如:

    std::this_thread::sleep_for(std::chrono::milliseconds(1));

    不过我们也可以使用系统 API 调整系统时钟的精度,需要链接 windows 多媒体库 winmm.lib ,然后使用 API:

    timeBeginPeriod(1); // 设置时钟精度为 1 毫秒
    +// todo..
    +timeEndPeriod(1);   // 恢复默认精度

    同样的,时间点也支持加减以及比较操作。

    std::chrono::steady_clock::now() + std::chrono::nanoseconds(500); // 500 纳秒之后的时间

    可以减去一个时间点,结果是两个时间点的时间差。这对于代码块的计时是很有用的,如:

    auto start = std::chrono::steady_clock::now();
    +std::this_thread::sleep_for(std::chrono::seconds(1));
    +auto end = std::chrono::steady_clock::now();
    +
    +auto result = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
    +std::cout << result.count() << '\\n';

    运行测试。

    我们进行了一个显式的转换,最终输出的是以毫秒作为单位,有可能不会是 1000,没有这么精确。


    等待条件变量满足条件——带超时功能

    using namespace std::chrono_literals;
    +
    +std::condition_variable cv;
    +bool done{};
    +std::mutex m;
    +
    +bool wait_loop() {
    +    const auto timeout = std::chrono::steady_clock::now() + 500ms;
    +    std::unique_lock<std::mutex> lk{ m };
    +    while (!done) {
    +        if (cv.wait_until(lk, timeout) == std::cv_status::timeout) {
    +            std::cout << "超时 500ms\\n";
    +            return false;
    +        }
    +    }
    +    return true;
    +}

    运行测试。

    _until 也就是等待到一个时间点,我们设置的是等待到当前时间往后 500 毫秒。如果超过了这个时间还没有被唤醒,那就打印超时,并退出循环,函数返回 false

    到此,时间点的知识也就足够了。

    异步任务执行

    在开发带有 UI 的程序时,主线程用于处理 UI 更新和用户交互,如果在主线程中执行耗时任务会导致界面卡顿。因此,需要使用异步任务来减轻主线程的压力。以下是一个使用 Qt 实现异步任务的示例,展示了如何在不阻塞 UI 线程的情况下执行耗时任务,并更新进度条。

    背景介绍

    在 Qt 中,GUI 控件通常只能在创建它们的线程中进行操作,因为它们是线程不安全的。我们可以使用 QMetaObject::invokeMethod 来跨线程调用主线程上的控件方法,从而在其他线程中安全地更新 UI 控件。以下代码示例展示了如何通过 QMetaObject::invokeMethod 确保 UI 控件的更新操作在主线程中执行。

    void task(){
    +    future = std::async(std::launch::async, [=] {
    +        QMetaObject::invokeMethod(this, [this] {
    +            button->setEnabled(false);
    +            progressBar->setRange(0, 1000);
    +            button->setText("正在执行...");
    +        });
    +        for (int i = 0; i < 1000; ++i) {
    +            std::this_thread::sleep_for(10ms);
    +            QMetaObject::invokeMethod(this, [this, i] {
    +                progressBar->setValue(i);
    +            });
    +        }
    +        QMetaObject::invokeMethod(this, [this] {
    +            button->setText("start");
    +            button->setEnabled(true);
    +        });
    +    });
    +}

    上面的代码创建了一个异步任务,并指明了执行策略。任务在线程中执行,不会阻塞 UI 线程。如果不这样做,界面将会卡顿(可以尝试将函数的第一行与最后一行注释掉以验证这一点)。

    进度条
    进度条

    在启动进度条后,能够正常点击“测试”按钮并触发弹窗,说明 UI 没有被阻塞。相反,如果不使用线程,界面将会卡住,无法点击“测试”按钮或移动窗口。

    项目说明

    项目使用 Visual Studio + CMake,可以直接安装 Qt 插件后打开此项目。项目结构简单,所有界面与设置均通过代码控制,无需进行其他 UI 操作。只需关注 async_progress_bar.hasync_progress_bar.cppmain.cpp 这三个文件,它们位于仓库的 code 文件夹中。

    完整代码实现

    class async_progress_bar : public QMainWindow{
    +    Q_OBJECT
    +
    +public:
    +    async_progress_bar(QWidget *parent = nullptr);
    +    ~async_progress_bar();
    +
    +    void task(){
    +        future = std::async(std::launch::async, [=] {
    +            QMetaObject::invokeMethod(this, [this] {
    +                // 这里显示的线程 ID 就是主线程,代表这些任务就是在主线程,即 UI 线程执行
    +                QMessageBox::information(nullptr, "线程ID", std::to_string(_Thrd_id()).c_str());
    +                button->setEnabled(false);
    +                progress_bar->setRange(0, 1000);
    +                button->setText("正在执行...");
    +            });
    +            for (int i = 0; i <= 1000; ++i) {
    +                std::this_thread::sleep_for(10ms);
    +                QMetaObject::invokeMethod(this, [this, i] {
    +                    progress_bar->setValue(i);
    +                });
    +            }
    +            QMetaObject::invokeMethod(this, [this] {
    +                button->setText("start");
    +                button->setEnabled(true);
    +            });
    +            // 不在 invokeMethod 中获取线程 ID,这里显示的是子线程的ID
    +            auto s = std::to_string(_Thrd_id());
    +            QMetaObject::invokeMethod(this, [=] {
    +                QMessageBox::information(nullptr, "线程ID", s.c_str());
    +            });
    +        });
    +    }
    +private:
    +    QString progress_bar_style =
    +        "QProgressBar {"
    +        "    border: 2px solid grey;"
    +        "    border-radius: 5px;"
    +        "    background-color: lightgrey;"
    +        "    text-align: center;"  // 文本居中
    +        "    color: #000000;"      // 文本颜色
    +        "}"
    +        "QProgressBar::chunk {"
    +        "    background-color: #7FFF00;"
    +        "    width: 10px;"         // 设置每个进度块的宽度
    +        "    font: bold 14px;"     // 设置进度条文本字体
    +        "}";
    +    QString button_style =
    +        "QPushButton {"
    +        "    text-align: center;"  // 文本居中
    +        "}";
    +    QProgressBar* progress_bar{};
    +    QPushButton* button{};
    +    QPushButton* button2{};
    +    Ui::async_progress_barClass ui{};
    +    std::future<void>future;
    +};
    +// 创建控件 设置布局、样式 连接信号
    +async_progress_bar::async_progress_bar(QWidget *parent)
    +    : QMainWindow{ parent }, progress_bar{ new QProgressBar(this) },
    +    button{ new QPushButton("start",this) },button2{ new QPushButton("测试",this) } {
    +    ui.setupUi(this);
    +
    +    progress_bar->setStyleSheet(progress_bar_style);
    +    progress_bar->setRange(0, 1000);
    +
    +    button->setMinimumSize(100, 50);
    +    button->setMaximumWidth(100);
    +    button->setStyleSheet(button_style);
    +    button->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
    +
    +    button2->setMinimumSize(100, 50);
    +    button2->setMaximumWidth(100);
    +    button2->setStyleSheet(button_style);
    +    button2->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
    +
    +    QVBoxLayout* layout = new QVBoxLayout;
    +    layout->addWidget(progress_bar);
    +    layout->addWidget(button, 0, Qt::AlignHCenter);
    +    layout->addWidget(button2, 0, Qt::AlignHCenter);
    +    // 设置窗口布局为垂直布局管理器
    +    centralWidget()->setLayout(layout);
    +
    +    connect(button, &QPushButton::clicked, this, &async_progress_bar::task);
    +    connect(button2, &QPushButton::clicked, []{
    +        QMessageBox::information(nullptr, "测试", "没有卡界面!");
    +    });
    +}

    注意事项

    跨平台兼容性

    C++11 的 std::this_thread::get_id() 返回的内部类 std::thread::id 没办法直接转换为 unsigned int,我们就直接使用了 win32 的 API _Thrd_id() 了。如果您是 Linux 之类的环境,使用 POSIX 接口 pthread_self()

    实践建议

    这个例子其实很好的展示了多线程异步的作用,因为有 UI,所以很直观,毕竟如果你不用线程,那么不就卡界面了,用了就没事。

    建议下载并运行此项目,通过实际操作理解代码效果。同时,可以尝试修改代码,观察不同情况下 UI 的响应情况,以加深对异步任务处理的理解。

    C++20 信号量

    C++20 引入了信号量,对于那些熟悉操作系统或其它并发支持库的开发者来说,这个同步设施的概念应该不会感到陌生。信号量源自操作系统,是一个古老而广泛应用的同步设施,在各种编程语言中都有自己的抽象实现。然而,C++ 标准库对其的支持却来得很晚,在 C++20 中才得以引入。

    信号量是一个非常轻量简单的同步设施,它维护一个计数,这个计数不能小于 0。信号量提供两种基本操作:释放(增加计数)和等待(减少计数)。如果当前信号量的计数值为 0,那么执行“等待”操作的线程将会一直阻塞,直到计数大于 0,也就是其它线程执行了“释放”操作。

    C++ 提供了两个信号量类型:std::counting_semaphorestd::binary_semaphore,定义在 <semaphore> 中。

    binary_semaphore[3] 只是 counting_semaphore 的一个特化别名:

    using binary_semaphore = counting_semaphore<1>;

    好了,我们举一个简单的例子来使用一下:

    // 全局二元信号量对象
    +// 设置对象初始计数为 0
    +std::binary_semaphore smph_signal_main_to_thread{ 0 };
    +std::binary_semaphore smph_signal_thread_to_main{ 0 };
    +
    +void thread_proc() {
    +    smph_signal_main_to_thread.acquire();
    +    std::cout << "[线程] 获得信号" << std::endl;
    +
    +    std::this_thread::sleep_for(3s);
    +
    +    std::cout << "[线程] 发送信号\\n";
    +    smph_signal_thread_to_main.release();
    +}
    +
    +int main() {
    +    std::jthread thr_worker{ thread_proc };
    +
    +    std::cout << "[主] 发送信号\\n";
    +    smph_signal_main_to_thread.release();
    +
    +    smph_signal_thread_to_main.acquire();
    +    std::cout << "[主] 获得信号\\n";
    +}

    运行结果

    [主] 发送信号
    +[线程] 获得信号
    +[线程] 发送信号
    +[主] 获得信号

    acquire 函数就是我们先前说的“等待”(原子地减少计数),release 函数就是"释放"(原子地增加计数)。


    信号量常用于发信/提醒而非互斥,通过初始化该信号量为 0 从而阻塞尝试 acquire() 的接收者,直至提醒者通过调用 release(n) “发信”。在此方面可把信号量当作条件变量的替代品通常它有更好的性能

    假设我们有一个 Web 服务器,它只能处理有限数量的并发请求。为了防止服务器过载,我们可以使用信号量来限制并发请求的数量

    // 定义一个信号量,最大并发数为 3
    +std::counting_semaphore<3> semaphore{ 3 };
    +
    +void handle_request(int request_id) {
    +    // 请求到达,尝试获取信号量
    +    std::cout << "进入 handle_request 尝试获取信号量\\n";
    +
    +    semaphore.acquire();
    +
    +    std::cout << "成功获取信号量\\n";
    +
    +    // 此处延时三秒可以方便测试,会看到先输出 3 个“成功获取信号量”,因为只有三个线程能成功调用 acquire,剩余的会被阻塞
    +    std::this_thread::sleep_for(3s);
    +
    +    // 模拟处理时间
    +    std::random_device rd;
    +    std::mt19937 gen{ rd() };
    +    std::uniform_int_distribution<> dis(1, 5);
    +    int processing_time = dis(gen);
    +    std::this_thread::sleep_for(std::chrono::seconds(processing_time));
    +
    +    std::cout << std::format("请求 {} 已被处理\\n", request_id);
    +
    +    semaphore.release(); 
    +}
    +
    +int main() {
    +    // 模拟 10 个并发请求
    +    std::vector<std::jthread> threads;
    +    for (int i = 0; i < 10; ++i) {
    +        threads.emplace_back(handle_request, i);
    +    }
    +}

    运行测试。

    这段代码很简单,以至于我们可以在这里来再说一条概念:

    LeastMaxValue 是我们设置的非类型模板参数,意思是信号量维护的计数最大值。我们这段代码设置的是 3,也就是允许 3 个同时访问者。

    虽然说是说有 LeastMaxValue 可能不是最大,但是我们通常不用在意这个事情,MSVC STL 的实现中 max 函数就是直接返回 LeastMaxValue,将它视为信号量维护的计数最大值即可。

    牢记信号量的基本的概念不变,计数的值不能小于 0,如果当前信号量的计数值为 0,那么执行“等待”(acquire)操作的线程将会一直阻塞。明白这点,那么就都不存在问题。

    通过这种方式,可以有效控制 Web 服务器处理并发请求的数量,防止服务器过载。

    C++20 闩与屏障

    闩 (latch) 与屏障 (barrier) 是线程协调机制,允许任何数量的线程阻塞直至期待数量的线程到达。闩不能重复使用,而屏障则可以。

    它们定义在标头 <latch><barrier>

    与信号量类似,屏障也是一种古老而广泛应用的同步机制。许多系统 API 提供了对屏障机制的支持,例如 POSIX 和 Win32。此外,OpenMP 也提供了屏障机制来支持多线程编程。

    std::latch

    ” ,中文语境一般说“门闩” 是指门背后用来关门的棍子。不过不用在意,在 C++ 中的意思就是先前说的:单次使用的线程屏障

    latch 类维护着一个 std::ptrdiff_t 类型的计数[5],且只能减少计数,无法增加计数。在创建对象的时候初始化计数器的值。线程可以阻塞,直到 latch 对象的计数减少到零。由于无法增加计数,这使得 latch 成为一种单次使用的屏障

    std::latch work_start{ 3 };
    +
    +void work(){
    +    std::cout << "等待其它线程执行\\n";
    +    work_start.wait(); // 等待计数为 0
    +    std::cout << "任务开始执行\\n";
    +}
    +
    +int main(){
    +    std::jthread thread{ work };
    +    std::this_thread::sleep_for(3s);
    +    std::cout << "休眠结束\\n";
    +    work_start.count_down();  // 默认值是 1 减少计数 1
    +    work_start.count_down(2); // 传递参数 2 减少计数 2
    +}

    运行结果

    等待其它线程执行
    +休眠结束
    +任务开始执行

    在这个例子中,通过调用 wait 函数阻塞子线程,直到主线程调用 count_down 函数原子地将计数减至 0,从而解除阻塞。这个例子清楚地展示了 latch 的使用,其逻辑比信号量更简单。


    由于 latch 的计数不可增加,它的使用通常非常简单,可以用来划分任务执行的工作区间。例如:

    std::latch latch{ 10 };
    +
    +void f(int id) {
    +    //todo.. 脑补任务
    +    std::this_thread::sleep_for(1s);
    +    std::cout << std::format("线程 {} 执行完任务,开始等待其它线程执行到此处\\n", id);
    +    latch.arrive_and_wait();
    +    std::cout << std::format("线程 {} 彻底退出函数\\n", id);
    +}
    +
    +int main() {
    +    std::vector<std::jthread> threads;
    +    for (int i = 0; i < 10; ++i) {
    +        threads.emplace_back(f,i);
    +    }
    +}

    运行测试。

    arrive_and_wait 函数等价于:count_down(n); wait();。也就是减少计数 + 等待。这意味着

    必须等待所有线程执行到 latch.arrive_and_wait(); 将 latch 的计数减少至 0 才能继续往下执行。这个示例非常直观地展示了如何使用 latch 来划分任务执行的工作区间。

    由于 latch 的功能受限,通常用于简单直接的需求,不少情况很多同步设施都能完成你的需求,在这个时候请考虑使用尽可能功能最少的那一个

    std::barrier

    上节我们学习了 std::latch ,本节内容也不会对你构成难度。

    template< class CompletionFunction = /* 未指定 */ >
    +class barrier;

    CompletionFunction - 函数对象类型。


    std::barrierstd::latch 最大的不同是,前者可以在阶段完成之后将计数重置为构造时传递的值,而后者只能减少计数。我们用一个非常简单直观的示例为你展示:

    std::barrier barrier{ 10,
    +    [n = 1]()mutable noexcept {std::cout << "\\t第" << n++ << "轮结束\\n"; }
    +};
    +
    +void f(int start, int end){
    +    for (int i = start; i <= end; ++i) {
    +        std::osyncstream{ std::cout } << i << ' '; 
    +        barrier.arrive_and_wait(); // 减少计数并等待 解除阻塞时就重置计数并调用函数对象
    +        
    +        std::this_thread::sleep_for(300ms);
    +    }
    +}
    +
    +int main(){
    +    std::vector<std::jthread> threads;
    +    for (int i = 0; i < 10; ++i) {
    +        threads.emplace_back(f, i * 10 + 1, (i + 1) * 10);
    +    }
    +}

    可能的运行结果

    1 21 11 31 41 51 61 71 81 91    第1轮结束
    +12 2 22 32 42 52 62 72 92 82    第2轮结束
    +13 63 73 33 23 53 83 93 43 3    第3轮结束
    +14 44 24 34 94 74 64 4 84 54    第4轮结束
    +5 95 15 45 75 25 55 65 35 85    第5轮结束
    +6 46 16 26 56 96 86 66 76 36    第6轮结束
    +47 17 57 97 87 67 77 7 27 37    第7轮结束
    +38 8 28 78 68 88 98 58 18 48    第8轮结束
    +9 39 29 69 89 99 59 19 79 49    第9轮结束
    +30 40 70 10 90 50 60 20 80 100  第10轮结束

    注意输出的规律,第一轮每个数字最后一位都是 1,第二轮每个数字最后一位都是 2……以此类推,因为我们分配给每个线程的输出任务就是如此,然后利用了屏障一轮一轮地打印。

    arrive_and_wait 等价于 wait(arrive());。原子地将期待计数减少 1,然后在当前阶段的同步点阻塞直至运行当前阶段的阶段完成步骤。

    arrive_and_wait() 会在期待计数减少至 0 时调用我们构造 barrier 对象时传入的 lambda 表达式,并解除所有在阶段同步点上阻塞的线程。之后重置期待计数为构造中指定的值。屏障的一个阶段就完成了。

    另外你可能注意到我们使用了 std::osyncstream ,它是 C++20 引入的,此处是确保输出流在多线程环境中同步,避免除数据竞争,而且将不以任何方式穿插或截断

    虽然 std::coutoperator<< 调用是线程安全的,不会被打断,但多个 operator<< 的调用在多线程环境中可能会交错,导致输出结果混乱,使用 std::osyncstream 就可以解决这个问题。开发者可以尝试去除 std::osyncstream 直接使用 std::cout,效果会非常明显。


    使用 arrivearrive_and_wait 减少的都是当前屏障计数,我们称作“期待计数”。不管如何减少计数,当完成一个阶段,就重置期待计数为构造中指定的值了。

    标准库还提供一个函数 arrive_and_drop 可以改变重置的计数值:它将所有后继阶段的初始期待计数减少一,当前阶段的期待计数也减少一

    不用感到难以理解,我们来解释一下这个概念:

    std::barrier barrier{ 4 }; // 初始化计数为 4 完成阶段重置计数也是 4
    +barrier.arrive_and_wait(); // 当前计数减 1,不影响之后重置计数 4
    +barrier.arrive_and_drop(); // 当前计数与重置之后的计数均减 1 完成阶段会重置计数为 3

    arrive_and_drop 可以用来控制在需要的时候,让一些线程退出同步,如:

    std::atomic_int active_threads{ 4 };
    +std::barrier barrier{ 4,
    +    [n = 1]() mutable noexcept {
    +        std::cout << "\\t第" << n++ << "轮结束,活跃线程数: " << active_threads << '\\n';
    +    }
    +};
    +
    +void f(int thread_id) {
    +    for (int i = 1; i <= 5; ++i) {
    +        std::osyncstream{ std::cout } << "线程 " << thread_id << " 输出: " << i << '\\n';
    +        if (i == 3 && thread_id == 2) {  // 假设线程 ID 为 2 的线程在完成第三轮同步后退出
    +            std::osyncstream{ std::cout } << "线程 " << thread_id << " 完成并退出\\n";
    +            --active_threads; // 减少活跃线程数
    +            barrier.arrive_and_drop(); // 减少当前计数 1,并减少重置计数 1
    +            return;
    +        }
    +        barrier.arrive_and_wait(); // 减少计数并等待,解除阻塞时重置计数并调用函数对象
    +    }
    +}
    +
    +int main() {
    +    std::vector<std::jthread> threads;
    +    for (int i = 1; i <= 4; ++i) {
    +        threads.emplace_back(f, i);
    +    }
    +}

    运行测试。

    初始线程有 4 个,线程 2 在执行了三轮同步便直接退出了,调用 arrive_and_drop 函数,下一个阶段的计数会重置为 3,也就是执行完第三轮同步后只有三个活跃线程继续执行。查看输出结果,非常的直观。

    这样,arrive_and_drop 的作用就非常明显了,使用也十分的简单。


    最后请注意,我们的 lambda 表达式必须声明为 noexcept ,因为 std::barrier 要求其函数对象类型必须是不抛出异常的。即要求 std::is_nothrow_invocable_v<_Completion_function&>true,见 MSVC STL

    std::barrier barrier{ 1,[] {} };

    按照标准规定,这行代码会产生一个编译错误。因为传入的函数对象它不是 noexcept 的。不过,在 gcc 与 clang(即 libstdc++ 和 libc++)均可以通过编译,这是因为它们没有进行相应的检测,存在缺陷,为了代码的可维护性开发者应遵守标准规定,确保传入的函数对象是 noexcept 的。

    总结

    在并发编程中,同步操作对于并发编程至关重要。如果没有同步,线程基本上就是独立的,因其任务之间的相关性,才可作为一个整体执行(比如第二章的并行求和)。本章讨论了多种用于同步操作的工具,包括条件变量、future、promise、package_task、信号量。同时,详细介绍了 C++ 时间库的知识,以使用并发支持库中的“限时等待”。还使用 CMake + Qt 构建了一个带有 UI 界面的示例,展示异步多线程的必要性。最后介绍了 C++20 引入的两种新的并发设施,信号量、闩与屏障。

    在讨论了 C++ 中的高级工具之后,现在让我们来看看底层工具:C++ 内存模型与原子操作。


    1. 此设施来自微软并行模式库(PPL),它返回一个 task 类型,它的使用同样可参见文档。不过这不是我们的重点。 ↩︎

    2. 注:多个线程能在不同的 shared_ptr 对象上调用所有成员函数(包含复制构造函数与复制赋值)而不附加同步,即使这些实例是同一对象的副本且共享所有权也是如此。若多个执行线程访问同一 shared_ptr 对象而不同步,且任一线程使用 shared_ptr 的非 const 成员函数,则将出现数据竞争;std::atomic<shared_ptr> 能用于避免数据竞争。文档↩︎

    3. 注:如果信号量只有二进制的 0 或 1,称为二进制信号量(binary semaphore),这就是这个类型名字的由来。 ↩︎

    4. 注:如其名所示,LeastMaxValue 是最小 的最大值,而非实际 最大值。静态成员函数 max()可能产生大于 LeastMaxValue 的值。 ↩︎

    5. 注:通常的实现是直接保有一个 std::atomic<std::ptrdiff_t> 私有数据成员,以保证计数修改的原子性。原子类型在我们第五章的内容会详细展开。 ↩︎

    `,324)]))}const r=i(t,[["render",k],["__file","04同步操作.html.vue"]]),B=JSON.parse('{"path":"/md/04%E5%90%8C%E6%AD%A5%E6%93%8D%E4%BD%9C.html","title":"同步操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"等待事件或条件","slug":"等待事件或条件","link":"#等待事件或条件","children":[]},{"level":2,"title":"线程安全的队列","slug":"线程安全的队列","link":"#线程安全的队列","children":[]},{"level":2,"title":"使用条件变量实现后台提示音播放","slug":"使用条件变量实现后台提示音播放","link":"#使用条件变量实现后台提示音播放","children":[]},{"level":2,"title":"使用 future","slug":"使用-future","link":"#使用-future","children":[{"level":3,"title":"创建异步任务获取返回值","slug":"创建异步任务获取返回值","link":"#创建异步任务获取返回值","children":[]},{"level":3,"title":"future 与 std::packaged_task","slug":"future-与-std-packaged-task","link":"#future-与-std-packaged-task","children":[]},{"level":3,"title":"使用 std::promise","slug":"使用-std-promise","link":"#使用-std-promise","children":[]},{"level":3,"title":"future 的状态变化","slug":"future-的状态变化","link":"#future-的状态变化","children":[]},{"level":3,"title":"多个线程的等待 std::shared_future","slug":"多个线程的等待-std-shared-future","link":"#多个线程的等待-std-shared-future","children":[]}]},{"level":2,"title":"限时等待","slug":"限时等待","link":"#限时等待","children":[{"level":3,"title":"时钟","slug":"时钟","link":"#时钟","children":[]},{"level":3,"title":"时间段","slug":"时间段","link":"#时间段","children":[]},{"level":3,"title":"时间点","slug":"时间点","link":"#时间点","children":[]}]},{"level":2,"title":"异步任务执行","slug":"异步任务执行","link":"#异步任务执行","children":[{"level":3,"title":"背景介绍","slug":"背景介绍","link":"#背景介绍","children":[]},{"level":3,"title":"项目说明","slug":"项目说明","link":"#项目说明","children":[]},{"level":3,"title":"完整代码实现","slug":"完整代码实现","link":"#完整代码实现","children":[]},{"level":3,"title":"注意事项","slug":"注意事项","link":"#注意事项","children":[]},{"level":3,"title":"跨平台兼容性","slug":"跨平台兼容性","link":"#跨平台兼容性","children":[]},{"level":3,"title":"实践建议","slug":"实践建议","link":"#实践建议","children":[]}]},{"level":2,"title":"C++20 信号量","slug":"c-20-信号量","link":"#c-20-信号量","children":[]},{"level":2,"title":"C++20 闩与屏障","slug":"c-20-闩与屏障","link":"#c-20-闩与屏障","children":[{"level":3,"title":"std::latch","slug":"std-latch","link":"#std-latch","children":[]},{"level":3,"title":"std::barrier","slug":"std-barrier","link":"#std-barrier","children":[]}]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1713323227000,"updatedTime":1727330785000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":29},{"name":"mq白","email":"3326284481@qq.com","commits":28},{"name":"mq-b","email":"3326284481@qq.com","commits":2},{"name":"A. Jiang","email":"de34@live.cn","commits":1}]},"readingTime":{"minutes":58.27,"words":17480},"filePathRelative":"md/04同步操作.md","localizedDate":"2024年4月17日","excerpt":"\\n

    \\"同步操作\\"是指在计算机科学和信息技术中的一种操作方式,其中不同的任务或操作按顺序执行,一个操作完成后才能开始下一个操作。在多线程编程中,各个任务通常需要通过同步设施进行相互协调和等待,以确保数据的一致性正确性

    \\n

    本章的主要内容有:

    \\n"}');export{r as comp,B as data}; diff --git "a/assets/04\347\272\277\347\250\213\346\261\240.html-B8ceqDbR.js" "b/assets/04\347\272\277\347\250\213\346\261\240.html-B8ceqDbR.js" new file mode 100644 index 00000000..6071d0ba --- /dev/null +++ "b/assets/04\347\272\277\347\250\213\346\261\240.html-B8ceqDbR.js" @@ -0,0 +1,220 @@ +import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as l,d as i,e as h,o as t,r as k}from"./app-Ca-A-iaw.js";const e={};function p(d,s){const a=k("Mermaid");return t(),l("div",null,[s[0]||(s[0]=i('

    线程池

    前言

    我相信,已经阅读到这里的各位,不会对“线程池”这个词感到陌生。大部分开发者早就自己使用、学习,乃至实现过线程池。那不如我们先来进行一下基础的名词解释。

    线程”没什么好说的,是 CPU 调度的最小单位,也是操作系统的一种抽象资源。

    ”?水池装着水,线程池则是装着线程,是一种抽象的指代。

    抽象的来说,可以当做是一个池子中存放了一堆线程,故称作线程池。简而言之,线程池是指代一组预先创建的可以复用的线程集合。这些线程由线程池管理,用于执行多个任务而无需频繁地创建和销毁线程。

    ',7)),h(a,{id:"mermaid-25",code:"eJyFk09Kw0AYxfc5RS6QQOZPsnPlEdyFLhRFVyKKJxDFqhtFUEGwBdFuBLttS3uZTtPeou28oXzfJEOyad78XpP3vpmcXh5enMUH+1G8ua6uj6Cr0awaPC6GPbu8vbCSeVp4WnpaeVrvdJqm9v7k/DiyN/Px2Dz0V+9f5v6tpKJj8fL/xox+zMcgTpI9lqaJIFcTQcImgqxNRNOEmQU7GyEiSGSQqCDRQZIHSeERi9ysLFp0f5f9J1ekZApjduOrmQUzC2pGOYolM0tqRl+KFTMrasYIKNbMrDtoyHrY/8wnz9VnLyvxW/11zfQWT2Y1iFe0eNESHtniRUl4VIsXHeHRnje851aZ1+/V3Yvb3pIpvIctxUnqfTihg5GzIef1zAjjZkxTeuevllKwlO4UsSWaEh9x6EQWLGVRT4kwbnejaA0HonQG"}),s[1]||(s[1]=i(`

    这是一个典型的线程池结构。线程池包含一个任务队列,当有新任务加入时,调度器会将任务分配给线程池中的空闲线程进行执行。线程在执行完任务后会进入休眠状态,等待调度器的下一次唤醒。当有新的任务加入队列,并且有线程处于休眠状态时,调度器会唤醒休眠的线程,并分配新的任务给它们执行。线程执行完新任务后,会再次进入休眠状态,直到有新的任务到来,调度器才可能会再次唤醒它们。

    图中线程1 就是被调度器分配了任务1,执行完毕后休眠,然而新任务的到来让调度器再次将它唤醒,去执行任务6,执行完毕后继续休眠。

    使用线程池的益处我们已经加粗了,然而这其实并不是“线程池”独有的,任何创建和销毁存在较大开销的设施,都可以进行所谓的“池化”。

    常见的还有:套接字连接池数据库连接池内存池对象池


    了解以上这些基础概念是第一步也是最后一步,随着水平的提升,对这些概念的理解也会逐渐提升。

    市面上常见的线程池

    在了解了线程池的基本概念与运行逻辑后,我们不用着急就尝试实现。我们可以先来聊一聊,使用一下市面上常见的那些 C++ 线程池设施,了解它们提供的功能,接口设计的方式。

    boost::asio::thread_pool

    boost::asio::thread_poolBoost.Asio 库提供的一种线程池实现。

    Asio 是一个跨平台的 C++ 库,用于网络和低级 I/O 编程,使用 现代C++ 方法为开发人员提供一致的异步模型。

    使用方法:

    1. 创建线程池对象,指定或让 Asio 自动决定线程数量。

    2. 提交任务:通过 boost::asio::post 函数模板提交任务到线程池中。

    3. 阻塞,直到池中的线程完成任务。

    #include <boost/asio.hpp>
    +#include <iostream>
    +
    +std::mutex m;
    +
    +void print_task(int n) {
    +    std::lock_guard<std::mutex> lc{ m };
    +    std::cout << "Task " << n << " is running on thr: " <<
    +        std::this_thread::get_id() << '\\n';
    +}
    +
    +int main() {
    +    boost::asio::thread_pool pool{ 4 }; // 创建一个包含 4 个线程的线程池
    +
    +    for (int i = 0; i < 10; ++i) {
    +        boost::asio::post(pool, [i] { print_task(i); });
    +    }
    +
    +    pool.join(); // 等待所有任务执行完成
    +}

    运行测试。

    如果我们不自己指明线程池的线程数量,那么 Asio 会根据函数 default_thread_pool_size 计算并返回一个线程池的默认线程数量。它根据系统的硬件并发能力来决定使用的线程数,通常是硬件并发能力的两倍。

    inline long default_thread_pool_size()
    +{
    +  std::size_t num_threads = thread::hardware_concurrency() * 2;
    +  num_threads = num_threads == 0 ? 2 : num_threads;
    +  return static_cast<long>(num_threads);
    +}
    +
    +thread_pool::thread_pool()
    +  : scheduler_(add_scheduler(new detail::scheduler(*this, 0, false))),
    +    num_threads_(detail::default_thread_pool_size())

    代码很简单,就是 thread::hardware_concurrency() * 2 而已,至于下面的判断是因为 std::thread::hardware_concurrency() 在某些特殊情况下可能返回 0(例如硬件并发能力无法被检测时),那那将 num_threads 设置为 2,确保线程池至少有 2 个线程。


    Boost.Asio 的线程池对象在析构时会自动调用相关的清理方法,但你也可以手动进行控制。

    thread_pool::~thread_pool()
    +{
    +  stop();     // 停止接收新任务
    +  join();     // 等待所有线程完成
    +  shutdown(); // 最终清理,释放资源
    +}

    此处可阅读部分源码,帮助理解与记忆

    析构函数先调用了 stop() ,然后再进行 join() 。那如果我们没有提前显式调用 join() 成员函数,可能导致一些任务没有执行,析构函数并不会等待所有任务执行完毕

    boost::asio::thread_pool pool{ 4 }; 
    +
    +for (int i = 0; i < 10; ++i) {
    +    boost::asio::post(pool, [i] { print_task(i); });
    +}

    运行测试。

    因为析构函数并不是阻塞直到执行完所有任务,而是先停止,再 join() 以及 shutdown()

    Boost.Asio 提供的线程池使用十分简单,接口高度封装,几乎无需关心底层具体实现,易于使用。

    我们的操作几乎只需创建线程池对象、将任务加入线程池、在需要时调用 join()

    boost::asio::thread_pool pool{4};  // 创建线程池
    +boost::asio::post(pool, task);     // 将任务加入线程池
    +pool.join();                       // 等待任务完成 (或者析构自动调用)

    QThreadPool

    QThreadPool 是 Qt 提供的线程池实现,它是用来管理自家的 QThreads 的集合。

    #include <QCoreApplication>
    +#include <QThreadPool>
    +#include <QRunnable>
    +#include <QDebug>
    +
    +struct MyTask : public QRunnable{
    +    void run() override {
    +        qDebug() << "🐢🐢🐢🐢🐢";
    +    }
    +};
    +
    +int main(int argc, char *argv[]){
    +    QCoreApplication app(argc, argv);
    +
    +    QThreadPool *threadPool = QThreadPool::globalInstance();
    +
    +    // 线程池最大线程数
    +    qDebug()<< threadPool->maxThreadCount();
    +
    +    for (int i = 0; i < 10; ++i) {
    +        MyTask *task = new MyTask{};
    +        threadPool->start(task);
    +    }
    +    // 当前活跃线程数 10
    +    qDebug()<<threadPool->activeThreadCount();
    +
    +    app.exec();
    +}

    Asio.thread_pool 不同,QThreadPool 采用单例模式,通过静态成员函数 QThreadPool::globalInstance() 获取对象实例(不过也可以自己创建)。默认情况下,QThreadPool 线程池的最大线程数为当前硬件支持的并发线程数,例如在我的硬件上为 20,这点也和 Asio.thread_pool 不同。

    QThreadPool 依赖于 Qt 的事件循环,因此我们使用了 QCoreApplication

    而将任务添加到线程池中的做法非常古老原始,我们需要自定义一个类型继承并重写虚函数 run,创建任务对象,然后将任务对象传递给线程池的 start 方法。

    这种方法过于原始,如果读者学过 java 相信也不会陌生。我们实现的线程池不会是如此。

    在 Qt6,引入了一个 start 的重载版本:

    template <typename Callable, QRunnable::if_callable<Callable>>
    +void QThreadPool::start(Callable &&functionToRun, int priority)
    +{
    +    start(QRunnable::create(std::forward<Callable>(functionToRun)), priority);
    +}

    它相当于是对start 原始版本的:

    void start(QRunnable *runnable, int priority = 0);

    源码

    进行的一个包装,以支持任何的可调用(Callable)类型,而无需再繁琐的继承重写 run 函数。

    threadPool->start([=]{
    +    qDebug()<<QString("thread id %1").arg(i);
    +});

    QThradPool 还支持手动控制任务优先级。通过调用 start 成员函数,将任务传递给线程池后可以再指明执行策略。

    enum QThread::Priority 枚举类型表示操作系统应如何调度新创建的线程

    常量描述
    QThread::IdlePriority0仅在没有其他线程运行时调度。
    QThread::LowestPriority1调度频率低于 LowPriority。
    QThread::LowPriority2调度频率低于 NormalPriority。
    QThread::NormalPriority3操作系统的默认优先级。
    QThread::HighPriority4调度频率高于 NormalPriority。
    QThread::HighestPriority5调度频率高于 HighPriority。
    QThread::TimeCriticalPriority6尽可能频繁地调度。
    QThread::InheritPriority7使用与创建线程相同的优先级。 这是默认值。

    到此也就足够了,虽然还有不少接口没有介绍,不过也都没什么特别的了。

    实现线程池

    实现一个普通的能够满足日常开发需求的线程池实际上非常简单,只需要不到一百行代码。

    我们先编写一个最基础的线程池,首先确定它的数据成员:

    class ThreadPool {
    +    std::mutex                mutex_;
    +    std::condition_variable   cv_;
    +    std::atomic<bool>         stop_;
    +    std::atomic<std::size_t>  num_threads_;
    +    std::queue<Task>          tasks_;
    +    std::vector<std::thread>  pool_;
    +};
    1. std::mutex mutex_

    2. std::condition_variable cv_

    3. std::atomic<bool> stop_

    4. std::atomic<std::size_t> num_threads_

    5. std::queue<Task> tasks_

    6. std::vector<std::thread> pool_

    标头依赖

    #include <iostream>
    +#include <thread>
    +#include <mutex>
    +#include <condition_variable>
    +#include <future>
    +#include <atomic>
    +#include <queue>
    +#include <vector>
    +#include <syncstream>
    +#include <functional>

    提供构造析构函数,以及一些外部接口:submit()start()stop()join(),也就完成了:

    inline std::size_t default_thread_pool_size()noexcept {
    +    std::size_t num_threads = std::thread::hardware_concurrency() * 2;
    +    num_threads = num_threads == 0 ? 2 : num_threads;
    +    return num_threads;
    +}
    +
    +class ThreadPool {
    +public:
    +    using Task = std::packaged_task<void()>;
    +
    +    ThreadPool(const ThreadPool&) = delete;
    +    ThreadPool& operator=(const ThreadPool&) = delete;
    +
    +    ThreadPool(std::size_t num_thread = default_thread_pool_size())
    +        : stop_{ false }, num_threads_{ num_thread } {
    +        start();
    +    }
    +
    +    ~ThreadPool() {
    +        stop();
    +    }
    +
    +    void stop() {
    +        stop_.store(true);
    +        cv_.notify_all();
    +        for (auto& thread : pool_) {
    +            if (thread.joinable()) {
    +                thread.join();
    +            }
    +        }
    +        pool_.clear();
    +    }
    +
    +    template<typename F, typename... Args>
    +    std::future<std::invoke_result_t<std::decay_t<F>, std::decay_t<Args>...>> submit(F&& f, Args&&...args) {
    +        using RetType = std::invoke_result_t<std::decay_t<F>, std::decay_t<Args>...>;
    +        if (stop_.load()) {
    +            throw std::runtime_error("ThreadPool is stopped");
    +        }
    +
    +        auto task = std::make_shared<std::packaged_task<RetType()>>(
    +            std::bind(std::forward<F>(f), std::forward<Args>(args)...));
    +        std::future<RetType> ret = task->get_future();
    +
    +        {
    +            std::lock_guard<std::mutex> lc{ mutex_ };
    +            tasks_.emplace([task] {(*task)(); });
    +        }
    +        cv_.notify_one();
    +        return ret;
    +    }
    +
    +    void start() {
    +        for (std::size_t i = 0; i < num_threads_; ++i) {
    +            pool_.emplace_back([this] {
    +                while (!stop_) {
    +                    Task task;
    +                    {
    +                        std::unique_lock<std::mutex> lc{ mutex_ };
    +                        cv_.wait(lc, [this] {return stop_ || !tasks_.empty(); });
    +                        if (tasks_.empty())
    +                            return;
    +                        task = std::move(tasks_.front());
    +                        tasks_.pop();
    +                    }
    +                    task();
    +                }
    +            });
    +        }
    +    }
    +
    +private:
    +    std::mutex                mutex_;
    +    std::condition_variable   cv_;
    +    std::atomic<bool>         stop_;
    +    std::atomic<std::size_t>  num_threads_;
    +    std::queue<Task>          tasks_;
    +    std::vector<std::thread>  pool_;
    +};

    测试 demo

    int main() {
    +    ThreadPool pool{ 4 }; // 创建一个有 4 个线程的线程池
    +    std::vector<std::future<int>> futures; // future 集合,获取返回值
    +
    +    for (int i = 0; i < 10; ++i) {
    +        futures.emplace_back(pool.submit(print_task, i));
    +    }
    +
    +    for (int i = 0; i < 10; ++i) {
    +        futures.emplace_back(pool.submit(print_task2, i));
    +    }
    +
    +    int sum = 0;
    +    for (auto& future : futures) {
    +        sum += future.get(); // get() 成员函数 阻塞到任务执行完毕,获取返回值
    +    }
    +    std::cout << "sum: " << sum << '\\n';
    +} // 析构自动 stop()

    可能的运行结果

    Task 0 is running on thr: 6900
    +Task 1 is running on thr: 36304
    +Task 5 is running on thr: 36304
    +Task 3 is running on thr: 6900
    +Task 7 is running on thr: 6900
    +Task 2 is running on thr: 29376
    +Task 6 is running on thr: 36304
    +Task 4 is running on thr: 31416
    +🐢🐢🐢 1 🐉🐉🐉
    +Task 9 is running on thr: 29376
    +🐢🐢🐢 0 🐉🐉🐉
    +Task 8 is running on thr: 6900
    +🐢🐢🐢 2 🐉🐉🐉
    +🐢🐢🐢 6 🐉🐉🐉
    +🐢🐢🐢 4 🐉🐉🐉
    +🐢🐢🐢 5 🐉🐉🐉
    +🐢🐢🐢 3 🐉🐉🐉
    +🐢🐢🐢 7 🐉🐉🐉
    +🐢🐢🐢 8 🐉🐉🐉
    +🐢🐢🐢 9 🐉🐉🐉
    +sum: 90

    如果等待线程池对象调用析构函数,那么效果如同 asio::thread_pool,会先进行 stop,这可能导致一些任务无法执行。不过我们在最后循环遍历了 futures,调用 get() 成员函数,不存在这个问题。

    它支持任意可调用类型,当然也包括非静态成员函数。我们使用了 std::decay_t,所以参数的传递其实是按值复制,而不是引用传递,这一点和大部分库的设计一致。示例如下:

    struct X {
    +    void f(const int& n) const {
    +        std::osyncstream{ std::cout } << &n << '\\n';
    +    }
    +};
    +
    +int main() {
    +    ThreadPool pool{ 4 }; // 创建一个有 4 个线程的线程池
    +
    +    X x;
    +    int n = 6;
    +    std::cout << &n << '\\n';
    +    auto t = pool.submit(&X::f, &x, n); // 默认复制,地址不同
    +    auto t2 = pool.submit(&X::f, &x, std::ref(n));
    +    t.wait();
    +    t2.wait();
    +} // 析构自动 stop()

    运行测试。

    我们的线程池的 submit 成员函数在传递参数的行为上,与先前介绍的 std::threadstd::async 等设施基本一致。

    我们稍微介绍线程池的接口:

    构造函数和析构函数:

    外部接口:

    我们并没有提供一个功能强大的所谓的“调度器”,我们只是利用条件变量和互斥量,让操作系统自行调度而已,它并不具备设置任务优先级之类的调度功能。

    当然,你可能还希望我们的线程池具备更多功能或改进,比如控制任务优先级、设置最大线程数量、返回当前活跃线程数等。此外,异常处理也是一个值得考虑的方面。

    有些功能实现起来非常简单,而有些则需要更多的思考和设计。不过,这些功能超出了本次讲解的范围。如果有兴趣,可以尝试自行优化我们提供的线程池实现,添加更多的功能。我们给出的线程池实现简单完善且直观,用来学习再好不过。

    总结

    在本章中我们详细的介绍了:

    总体而言,内容并不构成太大的难度。

    课后作业:自己实现一个线程池,可以参考我们给出的线程池实现增加功能,提交到 homework 文件夹中。

    `,81))])}const g=n(e,[["render",p],["__file","04线程池.html.vue"]]),y=JSON.parse('{"path":"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/04%E7%BA%BF%E7%A8%8B%E6%B1%A0.html","title":"线程池","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"前言","slug":"前言","link":"#前言","children":[]},{"level":2,"title":"市面上常见的线程池","slug":"市面上常见的线程池","link":"#市面上常见的线程池","children":[{"level":3,"title":"boost::asio::thread_pool","slug":"boost-asio-thread-pool","link":"#boost-asio-thread-pool","children":[]},{"level":3,"title":"QThreadPool","slug":"qthreadpool","link":"#qthreadpool","children":[]}]},{"level":2,"title":"实现线程池","slug":"实现线程池","link":"#实现线程池","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1721396220000,"updatedTime":1722682600000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":17},{"name":"mq-b","email":"3326284481@qq.com","commits":1}]},"readingTime":{"minutes":13.53,"words":4058},"filePathRelative":"md/详细分析/04线程池.md","localizedDate":"2024年7月19日","excerpt":"\\n

    前言

    \\n

    我相信,已经阅读到这里的各位,不会对“线程池”这个词感到陌生。大部分开发者早就自己使用、学习,乃至实现过线程池。那不如我们先来进行一下基础的名词解释。

    \\n\\n

    线程”没什么好说的,是 CPU 调度的最小单位,也是操作系统的一种抽象资源。

    \\n

    ”?水池装着水,线程池则是装着线程,是一种抽象的指代。

    \\n

    抽象的来说,可以当做是一个池子中存放了一堆线程,故称作线程池。简而言之,线程池是指代一组预先创建的可以复用的线程集合。这些线程由线程池管理,用于执行多个任务而无需频繁地创建和销毁线程。

    "}');export{g as comp,y as data}; diff --git "a/assets/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html-QZXnSagT.js" "b/assets/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html-QZXnSagT.js" new file mode 100644 index 00000000..c3f945dd --- /dev/null +++ "b/assets/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html-QZXnSagT.js" @@ -0,0 +1,258 @@ +import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,d as a,f as n,a as i,b as e,o as h}from"./app-Ca-A-iaw.js";const k={};function p(d,s){return h(),t("div",null,[s[0]||(s[0]=a(`

    内存模型与原子操作

    最基础的概念就是如此,这里不再过多赘述,后续还会详细展开内存模型的问题。

    原子操作

    int a = 0;
    +void f(){
    +    ++a;
    +}

    显然,++a 是非原子操作,也就是说在多线程中可能会被另一个线程观察到只完成一半。

    1. 线程 A 和线程 B 同时开始修改变量 a 的值。
    2. 线程 A 对 a 执行递增操作,但还未完成。
    3. 在线程 A 完成递增操作之前,线程 B 也执行了递增操作。
    4. 线程 C 读取 a 的值。

    线程 C 到底读取到多少不确定,a 的值是多少也不确定。显然,这构成了数据竞争,出现了未定义行为

    在之前的内容中,我们讲述了使用很多同步设施,如互斥量,来保护共享资源。

    std::mutex m;
    +void f() {
    +    std::lock_guard<std::mutex> lc{ m };
    +    ++a;
    +}

    通过互斥量的保护,即使 ++a 本身不是原子操作,逻辑上也可视为原子操作。互斥量确保了对共享资源的读写是线程安全的,避免了数据竞争问题。

    不过这显然不是我们的重点。我们想要的是一种原子类型,它的所有操作都直接是原子的,不需要额外的同步设施进行保护。C++11 引入了原子类型 std::atomic,在下节我们会详细讲解。

    原子类型 std::atomic

    标准原子类型定义在头文件 <atomic> 中。这些类型的操作都是原子的,语言定义中只有这些类型的操作是原子的,虽然也可以用互斥量来模拟原子操作(见上文)。

    标准原子类型的实现通常包括一个 is_lock_free() 成员函数,允许用户查询特定原子类型的操作是否是通过直接的原子指令实现(返回 true),还是通过锁来实现(返回 false)。

    如果一个线程写入原子对象,同时另一线程从它读取,那么行为有良好定义(数据竞争的细节见内存模型)。

    原子操作可以在一些时候代替互斥量,来进行同步操作,也能带来更高的性能。但是如果它的内部使用互斥量实现,那么不可能有性能的提升。

    在 C++17 中,所有原子类型都有一个 static constexpr 的数据成员 is_always_lock_free 。如果当前环境上的原子类型 X 是无锁类型,那么 X::is_always_lock_free 将返回 true 。例如:

    std::atomic<int>::is_always_lock_free // true 或 false

    标准库还提供了一组宏 ATOMIC_xxx_LOCK_FREE ,在编译时对各种整数原子类型是否无锁进行判断。

    // (C++11 起)
    +#define ATOMIC_BOOL_LOCK_FREE     /* 未指定 */
    +#define ATOMIC_CHAR_LOCK_FREE     /* 未指定 */
    +#define ATOMIC_CHAR16_T_LOCK_FREE /* 未指定 */
    +#define ATOMIC_CHAR32_T_LOCK_FREE /* 未指定 */
    +#define ATOMIC_WCHAR_T_LOCK_FREE  /* 未指定 */
    +#define ATOMIC_SHORT_LOCK_FREE    /* 未指定 */
    +#define ATOMIC_INT_LOCK_FREE      /* 未指定 */
    +#define ATOMIC_LONG_LOCK_FREE     /* 未指定 */
    +#define ATOMIC_LLONG_LOCK_FREE    /* 未指定 */
    +#define ATOMIC_POINTER_LOCK_FREE  /* 未指定 */
    +// (C++20 起)
    +#define ATOMIC_CHAR8_T_LOCK_FREE  /* 未指定 */

    我们可以使用这些宏来对代码进行编译时的优化和检查,以确保在特定平台上原子操作的性能。例如,如果我们知道某些操作在目标平台上是无锁的,那么我们可以利用这一点进行性能优化。如果这些操作在目标平台上是有锁的,我们可能会选择其它同步机制。

    // 检查 std::atomic<int> 是否总是无锁
    +if constexpr(std::atomic<int>::is_always_lock_free) {
    +    std::cout << "当前环境 std::atomic<int> 始终是无锁" << std::endl;
    +}
    +else {
    +    std::cout << "当前环境 std::atomic<int> 并不总是无锁" << std::endl;
    +}
    +
    +// 使用 ATOMIC_INT_LOCK_FREE 宏进行编译时检查
    +#if ATOMIC_INT_LOCK_FREE == 2
    +    std::cout << "int 类型的原子操作一定无锁的。" << std::endl;
    +#elif ATOMIC_INT_LOCK_FREE == 1
    +    std::cout << "int 类型的原子操作有时是无锁的。" << std::endl;
    +#else
    +    std::cout << "int 类型的原子操作一定有锁的。" << std::endl;
    +#endif

    运行测试。

    如你所见,我们写了一个简单的示例,展示了如何使用 C++17 的静态数据成员 is_always_lock_free 和预处理宏来让程序执行不同的代码。

    因为 is_always_lock_free 是编译期常量,所以我们可以使用 C++17 引入的 constexpr if ,它可以在编译阶段进行决策,避免了运行时的判断开销,提高了性能。

    宏则更是简单了,最基本的预处理器判断,在预处理阶段就选择编译合适的代码。

    在实际应用中,如果一个类型的原子操作总是无锁的,我们可以更放心地在性能关键的代码路径中使用它。例如,在高频交易系统、实时系统或者其它需要高并发性能的场景中,无锁的原子操作可以显著减少锁的开销和竞争,提高系统的吞吐量和响应时间。

    另一方面,如果发现某些原子类型在目标平台上是有锁的,我们可以考虑以下优化策略:

    1. 使用不同的数据结构:有时可以通过改变数据结构来避免对原子操作的依赖。
    2. 减少原子操作的频率:通过批处理等技术,减少对原子操作的调用次数。
    3. 使用更高效的同步机制:在一些情况下,其它同步机制(如读写锁)可能比原子操作更高效。

    当然,其实很多时候根本没这种性能的担忧,我们很多时候使用原子对象只是为了简单方便,比如 std::atomic<bool> 表示状态、std::atomic<int> 进行计数等。即使它们是用了锁,那也是封装好了的,起码用着方便,而不需要在代码中引入额外的互斥量来保护,更加简洁。这也是很正常的需求,各位不但要考虑程序的性能,同时也要考虑代码的简洁性、易用性。即使使用原子类型无法带来效率的提升,那也没有负提升。


    除了直接使用 std::atomic 模板外,也可以使用原子类型的别名。这个数量非常之多,见 MSVC STL

    对于标准内建类型的别名,就是在原子类型的类型名前面加上 atomic_ 的前缀:atomic_T。不过 signed 缩写 sunsigned 缩写 ulong long 缩写 llong

    using atomic_char   = atomic<char>;
    +using atomic_schar  = atomic<signed char>;
    +using atomic_uchar  = atomic<unsigned char>;
    +using atomic_short  = atomic<short>;
    +using atomic_ushort = atomic<unsigned short>;
    +using atomic_int    = atomic<int>;
    +using atomic_uint   = atomic<unsigned int>;
    +using atomic_long   = atomic<long>;
    +using atomic_ulong  = atomic<unsigned long>;
    +using atomic_llong  = atomic<long long>;
    +using atomic_ullong = atomic<unsigned long long>;

    通常 std::atomic 对象不可进行复制、移动、赋值,因为它们的复制构造复制赋值运算符被定义为弃置的。不过可以隐式转换成对应的内置类型,因为它有转换函数

    atomic(const atomic&) = delete;
    +atomic& operator=(const atomic&) = delete;
    +operator T() const noexcept;

    可以使用 load()store()exchange()compare_exchange_weak()compare_exchange_strong() 等成员函数对 std::atomic 进行操作。如果是整数类型的特化,还支持 ++--+=-=&=|=^=fetch_addfetch_sub 等操作方式。在后面详细的展开使用。

    std::atomic 类模板不仅只能使用标准库为我们定义的特化类型,我们也完全可以自定义类型创建对应的原子对象。不过因为是通用模板,操作仅限 load()store()exchange()compare_exchange_weak()compare_exchange_strong(),以及一个转换函数。

    模板 std::atomic 可用任何满足可复制构造 (CopyConstructible)可复制赋值 (CopyAssignable)可平凡复制 (TriviallyCopyable)类型 T 实例化。

    struct trivial_type {
    +    int x{};
    +    float y{};
    +
    +    trivial_type() {}
    +
    +    trivial_type(int a, float b) : x{ a }, y{ b } {}
    +
    +    trivial_type(const trivial_type& other) = default;
    +
    +    trivial_type& operator=(const trivial_type& other) = default;
    +
    +    ~trivial_type() = default;
    +};

    验证自己的类型是否满足 std::atomic 要求,我们可以使用静态断言

    static_assert(std::is_trivially_copyable<trivial_type>::value, "");
    +static_assert(std::is_copy_constructible<trivial_type>::value, "");
    +static_assert(std::is_move_constructible<trivial_type>::value, "");
    +static_assert(std::is_copy_assignable<trivial_type>::value, "");
    +static_assert(std::is_move_assignable<trivial_type>::value, "");

    程序能通过编译即代表满足要求。如果不满足要求,静态断言求值中第一个表达式求值为 false,则编译错误。显然我们的类型满足要求,我们可以尝试使用一下它:

    // 创建一个 std::atomic<trivial_type> 对象
    +std::atomic<trivial_type> atomic_my_type { trivial_type{ 10, 20.5f } };
    +
    +// 使用 store 和 load 操作来设置和获取值
    +trivial_type new_value{ 30, 40.5f };
    +atomic_my_type.store(new_value);
    +
    +trivial_type loadedValue = atomic_my_type.load();
    +std::cout << "x: " << loadedValue.x << ", y: " << loadedValue.y << std::endl;
    +
    +// 使用 exchange 操作
    +trivial_type exchanged_value = atomic_my_type.exchange(trivial_type{ 50, 60.5f });
    +std::cout << "交换前的 x: " << exchanged_value.x
    +          << ", 交换前的 y: " << exchanged_value.y << std::endl;
    +std::cout << "交换后的 x: " << atomic_my_type.load().x
    +          << ", 交换后的 y: " << atomic_my_type.load().y << std::endl;

    运行测试。

    没有问题,不过其实我们的 trivial_type 直接改成:

    struct trivial_type {
    +    int x;
    +    float y;
    +};

    运行测试。

    也是完全可以的,满足要求。先前只是为了展示一下显式写明的情况。


    原子类型的每个操作函数,都有一个内存序参数,这个参数可以用来指定执行顺序,在后面的内容会详细讲述,现在只需要知道操作分为三类:

    1. Store 操作(存储操作):可选的内存序包括 memory_order_relaxedmemory_order_releasememory_order_seq_cst

    2. Load 操作(加载操作):可选的内存序包括 memory_order_relaxedmemory_order_consumememory_order_acquirememory_order_seq_cst

    3. Read-modify-write(读-改-写)操作:可选的内存序包括 memory_order_relaxedmemory_order_consumememory_order_acquirememory_order_releasememory_order_acq_relmemory_order_seq_cst

    本节主要广泛介绍 std::atomic,而未展开具体使用。在后续章节中,我们将更详细地讨论一些版本,如 std::atomic<bool>,并介绍其成员函数和使用方法。

    最后强调一下:任何 std::atomic 类型,初始化不是原子操作

    st::atomic_flag

    std::atomic_flag 是最简单的原子类型,这个类型的对象可以在两个状态间切换:设置(true)清除(false)。它很简单,通常只是用作构建一些库设施,不会单独使用或直接面向普通开发者。

    在 C++20 之前,std::atomic_flag 类型的对象需要以 ATOMIC_FLAG_INIT 初始化,可以确保此时对象处于
    "清除"(false)状态。

    std::atomic_flag f = ATOMIC_FLAG_INIT;

    C++20std::atomic_flag 的默认构造函数保证对象为“清除”(false)状态,就不再需要使用 ATOMIC_FLAG_INIT

    ATOMIC_FLAG_INIT 其实并不是什么复杂的东西,它在不同的标准库实现中只是简单的初始化:在 MSVC STL 它只是一个 {},在 libstdc++libc++ 它只是一个 { 0 }。也就是说我们可以这样初始化:

    std::atomic_flag f ATOMIC_FLAG_INIT;
    +std::atomic_flag f2 = {};
    +std::atomic_flag f3{};
    +std::atomic_flag f4{ 0 };

    使用 ATOMIC_FLAG_INIT 宏只是为了统一,我们知道即可。

    当标志对象已初始化,它只能做三件事情:销毁、清除、设置。这些操作对应的函数分别是:

    1. clear() (清除):将标志对象的状态原子地更改为清除(false)
    2. test_and_set(测试并设置):将标志对象的状态原子地更改为设置(true),并返回它先前保有的值。
    3. 销毁:对象的生命周期结束时,自动调用析构函数进行销毁操作。

    每个操作都可以指定内存顺序。clear() 是一个“读-改-写”操作,可以应用任何内存顺序。默认的内存顺序是 memory_order_seq_cst。例如:

    f.clear(std::memory_order_release);
    +bool r = f.test_and_set();
    1. f 的状态原子地更改为清除(false),指明 memory_order_release 内存序。

    2. f 的状态原子地更改为设置(true),并返回它先前保有的值给 r。使用默认的 memory_order_seq_cst 内存序。

    不用着急,这里还不是详细展开聊内存序的时候。

    std::atomic_flag 不可复制不可移动不可赋值。这不是 std::atomic_flag 特有的,而是所有原子类型共有的属性。原子类型的所有操作都是原子的,而赋值和复制涉及两个对象,破坏了操作的原子性。复制构造和复制赋值会先读取第一个对象的值,然后再写入另一个对象。对于两个独立的对象,这里实际上有两个独立的操作,合并这两个操作无法保证其原子性。因此,这些操作是不被允许的。

    有限的特性使得 std::atomic_flag 非常适合用作制作自旋锁

    自旋锁可以理解为一种忙等锁,因为它在等待锁的过程中不会主动放弃 CPU,而是持续检查锁的状态。

    与此相对,std::mutex 互斥量是一种睡眠锁。当线程请求锁(lock())而未能获取时,它会放弃 CPU 时间片,让其他线程得以执行,从而有效利用系统资源。

    从性能上看,自旋锁的响应更快,但是睡眠锁更加节省资源,高效。

    class spinlock_mutex {
    +    std::atomic_flag flag{};
    +public:
    +    spinlock_mutex()noexcept = default;
    +    void lock()noexcept {
    +        while (flag.test_and_set(std::memory_order_acquire));
    +    }
    +
    +    void unlock()noexcept {
    +        flag.clear(std::memory_order_release);
    +    }
    +};

    我们可以简单的使用测试一下,它是有效的:

    spinlock_mutex m;
    +
    +void f(){
    +    std::lock_guard<spinlock_mutex> lc{ m };
    +    std::cout << "😅😅" << "❤️❤️\\n";
    +}

    运行测试。

    稍微聊一下原理,我们的 spinlock_mutex 对象中存储的 flag 对象在默认构造时是清除 (false) 状态。在 lock() 函数中调用 test_and_set 函数,它是原子的,只有一个线程能成功调用并将 flag 的状态原子地更改为设置 (true),并返回它先前的值 (false)。此时,该线程成功获取了锁,退出循环。

    flag 对象的状态为设置 (true) 时,其它线程调用 test_and_set 函数会返回 true,导致它们继续在循环中自旋,无法退出。直到先前持有锁的线程调用 unlock() 函数,将 flag 对象的状态原子地更改为清除 (false) 状态。此时,等待的线程中会有一个线程成功调用 test_and_set 返回 false,然后退出循环,成功获取锁。

    值得注意的是,我们只是稍微的讲一下使用 std::atomic_flag 实现自旋锁。不过并不推荐各位在实践中使用它,具体可参见 Linus Torvalds文章。其中有一段话说得很直接:

    然后就是推荐使用 std::mutexpthread_mutex ,比自旋好的多。

    std::atomic_flag 的局限性太强,甚至不能当普通的 bool 标志那样使用。一般最好使用 std::atomic<bool>,下节,我们来使用它。

    std::atomic<bool>

    std::atomic<bool> 是最基本的整数原子类型 ,它相较于 std::atomic_flag 提供了更加完善的布尔标志。虽然同样不可复制不可移动,但可以使用非原子的 bool 类型进行构造,初始化为 true 或 false,并且能从非原子的 bool 对象赋值给 std::atomic<bool>

    std::atomic<bool> b{ true };
    +b = false;

    不过这个 operator= 不同于通常情况,赋值操作 b = false 返回一个普通的 bool 值。

    这个行为不仅仅适用于std::atomic<bool>,而是适用于所有std::atomic类型。

    如果原子变量的赋值操作返回了一个引用,那么依赖这个结果的代码需要显式地进行加载(load),以确保数据的正确性。例如:

    std::atomic<bool>b {true};
    +auto& ref = (b = false);  // 假设返回 atomic 引用
    +bool flag = ref.load();   // 那就必须显式调用 load() 加载

    通过返回非原子值进行赋值,可以避免多余的加载(load)过程,得到实际存储的值。

    std::atomic<bool> b{ true };
    +bool new_value = (b = false);  // new_value 将是 false

    使用 store 原子的替换当前对象的值,远好于 std::atomic_flagclear()test_and_set() 也可以换为更加通用常见的 exchange,它可以原子的使用新的值替换已经存储的值,并返回旧值。

    获取 std::atomic<bool> 的值有两种方式,调用 load() 函数,或者隐式转换

    store 是一个存储操作、load 是一个加载操作exchange 是一个“读-改-写”操作:

    std::atomic<bool> b;
    +bool x = b.load(std::memory_order_acquire);
    +b.store(true);
    +x = b.exchange(false, std::memory_order_acq_rel);

    std::atomic<bool> 提供多个“读-改-写”的操作,exchange 只是其中之一。它还提供了一种存储方式:当前值与预期一致时,存储新值。

    这种操作叫做“比较/交换”,它的形式表现为 compare_exchange_weak()compare_exchang_strong()

    exchange 的另一个不同是,compare_exchange_weakcompare_exchange_strong 允许指定成功和失败情况下的内存序。这意味着你可以根据成功或失败的情况,为原子操作指定不同的内存序。

    std::atomic<bool> data{ false };
    +bool expected = false;
    +
    +// 成功时的内存序为 memory_order_release,失败时的内存序为 memory_order_acquire
    +if (data.compare_exchange_weak(expected, true,
    +    std::memory_order_release, std::memory_order_acquire)) {
    +    // 操作成功
    +}
    +else {
    +    // 操作失败
    +}

    另一个简单的原子类型是特化的原子指针,即:std::atomic<T*>,下一节我们来看看它是如何工作的。

    std::atomic<T*>

    std::atomic<T*> 是一个原子指针类型,T 是指针所指向的对象类型。操作是针对 T 类型的指针进行的。虽然 std::atomic<T*> 不能被拷贝和移动,但它可以通过符合类型的指针进行构造和赋值。

    std::atomic<T*> 拥有以下成员函数:

    这些函数接受并返回的类型都是 T*。此外,std::atomic<T*> 还提供了以下操作:

    这些操作确保在多线程环境下进行安全的指针操作,避免数据竞争和并发问题。

    使用示例如下:

    struct Foo {};
    +
    +Foo array[5]{};
    +std::atomic<Foo*> p{ array };
    +
    +// p 加 2,并返回原始值
    +Foo* x = p.fetch_add(2);
    +assert(x == array);
    +assert(p.load() == &array[2]);
    +
    +// p 减 1,并返回原始值
    +x = (p -= 1);
    +assert(x == &array[1]);
    +assert(p.load() == &array[1]);
    +
    +// 函数也允许内存序作为给定函数的参数
    +p.fetch_add(3, std::memory_order_release);

    这个特化十分简单,我们无需过多赘述。

    std::atomic<std::shared_ptr>

    在前文中,我们多次提到 std::shared_ptr

    第四章中提到:多个线程能在不同的 shared_ptr 对象上调用所有成员函数[3](包含复制构造函数与复制赋值)而不附加同步,即使这些实例是同一对象的副本且共享所有权也是如此。若多个执行线程访问同一 shared_ptr 对象而不同步,且任一线程使用 shared_ptr 的非 const 成员函数,则将出现数据竞争;std::atomic<shared_ptr> 能用于避免数据竞争。文档

    一个在互联网上非常热门的八股问题是:std::shared_ptr 是不是线程安全?

    显然,它并不是完全线程安全的,尽管在多线程环境中有很大的保证,但这还不够。在 C++20 中,原子模板 std::atomic 引入了一个偏特化版本 std::atomic<std::shared_ptr> 允许用户原子地操纵 shared_ptr 对象。因为它是 std::atomic 的特化版本,即使我们还没有深入讲述它,也能知道它是原子类型,这意味着它的所有操作都是原子操作

    若多个执行线程不同步地同时访问同一 std::shared_ptr 对象,且任何这些访问使用了 shared_ptr 的非 const 成员函数,则将出现数据竞争除非通过 std::atomic<std::shared_ptr> 的实例进行所有访问

    class Data {
    +public:
    +    Data(int value = 0) : value_(value) {}
    +    int get_value() const { return value_; }
    +    void set_value(int new_value) { value_ = new_value; }
    +private:
    +    int value_;
    +};
    +
    +auto data = std::make_shared<Data>();
    +
    +void writer(){
    +    for (int i = 0; i < 10; ++i) {
    +        std::shared_ptr<Data> new_data = std::make_shared<Data>(i);
    +        data.swap(new_data); // 调用非 const 成员函数
    +        std::this_thread::sleep_for(100ms);
    +    }
    +}
    +
    +void reader(){
    +    for (int i = 0; i < 10; ++i) {
    +        if (data) {
    +            std::cout << "读取线程值: " << data->get_value() << std::endl;
    +        }
    +        else {
    +            std::cout << "没有读取到数据" << std::endl;
    +        }
    +        std::this_thread::sleep_for(100ms);
    +    }
    +}
    +
    +int main(){
    +    std::thread writer_thread{ writer };
    +    std::thread reader_thread{ reader };
    +
    +    writer_thread.join();
    +    reader_thread.join();
    +}

    运行测试。

    以上这段代码是典型的线程不安全,它满足:

    1. 多个线程不同步地同时访问同一 std::shared_ptr 对象

    2. 任一线程使用 shared_ptr 的非 const 成员函数

    那么为什么呢?为什么满足这些概念就是线程不安全呢?为了理解这些概念,首先需要了解 shared_ptr 的内部实现:

    shared_ptr 的通常实现只保有两个指针

    控制块是一个动态分配的对象,其中包含:

    控制块是线程安全的,这意味着多个线程可以安全地操作引用计数和访问管理对象,即使这些 shared_ptr 实例是同一对象的副本且共享所有权也是如此。因此,多个线程可以安全地创建、销毁和复制 shared_ptr 对象,因为这些操作仅影响控制块中的引用计数。

    然而,shared_ptr 对象实例本身并不是线程安全的。shared_ptr 对象实例包含一个指向控制块的指针和一个指向底层元素的指针。这两个指针的操作在多个线程中并没有同步机制。因此,如果多个线程同时访问同一个 shared_ptr 对象实例并调用非 const 成员函数(如 resetoperator=),这些操作会导致对这些指针的并发修改,进而引发数据竞争。

    如果不是同一 shared_ptr 对象,每个线程读写的指针也不是同一个,控制块又是线程安全的,那么自然不存在数据竞争,可以安全的调用所有成员函数。


    使用 std::atomic<shared_ptr> 修改:

    std::atomic<std::shared_ptr<Data>> data = std::make_shared<Data>();
    +
    +void writer() {
    +    for (int i = 0; i < 10; ++i) {
    +        std::shared_ptr<Data> new_data = std::make_shared<Data>(i);
    +        data.store(new_data); // 原子地替换所保有的值
    +        std::this_thread::sleep_for(10ms);
    +    }
    +}
    +
    +void reader() {
    +    for (int i = 0; i < 10; ++i) {
    +        if (auto sp = data.load()) {
    +            std::cout << "读取线程值: " << sp->get_value() << std::endl;
    +        }
    +        else {
    +            std::cout << "没有读取到数据" << std::endl;
    +        }
    +        std::this_thread::sleep_for(10ms);
    +    }
    +}

    很显然,这是线程安全的,store 是原子操作,而 sp->get_value() 只是个读取操作。

    我知道,你肯定会想着:能不能调用 load() 成员函数原子地返回底层的 std::shared_ptr 再调用 swap 成员函数?

    可以,但是没有意义,因为 load() 成员函数返回的是底层 std::shared_ptr副本,也就是一个临时对象。对这个临时对象调用 swap 并不会改变 data 本身的值,因此这种操作没有实际意义,尽管这不会引发数据竞争(因为是副本)。

    由于我们没有对读写操作进行同步,只是确保了操作的线程安全,所以多次运行时可能会看到一些无序的打印,这是正常的。

    不过事实上 std::atomic<std::shared_ptr> 的功能相当有限,单看它提供的修改接口(=storeloadexchang)就能明白。如果要操作其保护的共享指针指向的资源还是得 load() 获取底层共享指针的副本。此时再进行操作时就得考虑 std::shared_ptr 本身在多线程的支持了。


    在使用 std::atomic<std::shared_ptr> 的时候,我们要注意第三章中关于共享数据的一句话:

    切勿将受保护数据的指针或引用传递到互斥量作用域之外,不然保护将形同虚设

    原子类型也有类似的问题,以下是一个例子:

    std::atomic<std::shared_ptr<int>> ptr = std::make_shared<int>(10);
    +*ptr.load() = 100;
    1. 调用 load() 成员函数,原子地返回底层共享指针的副本 std::shared_ptr
    2. 解引用,等价 *get(),返回了 int&
    3. 直接修改这个引用所指向的资源。

    在第一步时,已经脱离了 std::atomic 的保护,第二步就获取了被保护的数据的引用,第三步进行了修改,这导致了数据竞争。当然了,这种做法非常的愚蠢,只是为了表示,所谓的线程安全,也是要靠开发者的正确使用

    正确的用法如下:

    std::atomic<std::shared_ptr<int>> ptr = std::make_shared<int>(10);
    +std::atomic_ref<int> ref{ *ptr.load() };
    +ref = 100; // 原子地赋 100 给被引用的对象

    通过使用 std::atomic_ref 我们得以确保在修改共享资源时保持操作的原子性,从而避免了数据竞争。


    最后再来稍微聊一聊提供的 waitnotify_onenotify_all 成员函数。这并非是 std::atomic<shared_ptr> 专属,C++20 以后任何 atomic 的特化都拥有这些成员函数,使用起来也都十分的简单,我们这里用一个简单的例子为你展示一下:

    std::atomic<std::shared_ptr<int>> ptr = std::make_shared<int>();
    +
    +void wait_for_wake_up(){
    +    std::osyncstream{ std::cout }
    +        << "线程 "
    +        << std::this_thread::get_id()
    +        << " 阻塞,等待更新唤醒\\n";
    +
    +    // 等待 ptr 变为其它值
    +    ptr.wait(ptr.load());
    +
    +    std::osyncstream{ std::cout }
    +        << "线程 "
    +        << std::this_thread::get_id()
    +        << " 已被唤醒\\n";
    +}
    +
    +void wake_up(){
    +    std::this_thread::sleep_for(5s);
    +
    +    // 更新值并唤醒
    +    ptr.store(std::make_shared<int>(10));
    +    ptr.notify_one();
    +}

    内存次序

    前言

    事实上我们在前面就用到了不少的内存次序,只不过一直没详细展开讲解。

    在开始学习之前,我们需要强调一些基本的认识:

    1. 内存次序是非常底层知识:对于普通开发者来说,了解内存次序并非硬性需求。如果您主要关注业务开发,可以直接跳过本节内容。如果您对内存次序感兴趣,则需要注意其复杂性和难以观察的特性,这将使学习过程具有一定挑战性。

    2. 内存次序错误的使用难以察觉:即使通过多次(数以万计)运行也难以发现。这是因为许多内存次序问题是由于极端的、少见的情况下的竞争条件引起的,而这些情况很难被重现。此外,即使程序在某些平台上运行正常,也不能保证它在其他平台上也能表现良好,因为不同的 CPU 和编译器可能对内存操作的顺序有不同的处理(例如 x86 架构内存模型:Total Store Order (TSO),是比较严格的内存模型)。因此,开发者必须依赖自己的知识和经验,以及可能的测试和调试技术,来发现和解决内存次序错误。

    错误难以被我们观察到的原因其实可以简单的说:


    你们可能还有疑问:“单线程能不能指令重排?”

    CPU 的指令重排必须遵循一定的规则,以确保程序的可观察副作用不受影响。对于单线程程序,CPU 会保证外部行为的一致性。对于多线程程序,需要开发者使用同步原语来显式地控制内存操作的顺序和可见性,确保多线程环境下的正确性。而标准库中提供的原子对象的原子操作,还可以设置内存次序。

    那有没有可能:

    这也就是前面说的,把 CPU 与编译器当神经病。各位写代码难道还要考虑下面这段,会不会指令重排导致先输出 end 吗?这显然不现实。

    print("start"); // 1
    +print("end");   // 2

    不禁止就是有可能,但是我们无需在乎,就算真的 CPU 将 end 重排到 start 前面了,也得在可观测行为发生前回溯了。所以我一直在强调,这些东西,我们无需在意

    好了,到此,基本认识也就足够了,以上的示例更多的是泛指,知道其表达的意思就好,这些还是简单直接且符合直觉的。

    可见

    可见 是 C++ 多线程并发编程中的一个重要概念,它描述了一个线程中的数据修改对其他线程的可见程度。具体来说,如果线程 A 对变量 x 进行了修改,那么其他线程 B 是否能够看到线程 A 对 x 的修改,就涉及到可见的问题。

    在讨论多线程的内存模型和执行顺序时,虽然经常会提到 CPU 重排、编译器优化、缓存等底层细节,但真正核心的概念是可见,而不是这些底层实现细节。

    C++ 标准中的可见

    C++ 标准通过内存序(memory order)来定义如何确保这种可见,而不必直接关心底层的 CPU 和编译器的具体行为。内存序提供了操作之间的顺序关系,确保即使存在 CPU 重排、编译器优化或缓存问题,线程也能正确地看到其他线程对共享数据的修改。

    例如,通过使用合适的内存序(如 memory_order_release 和 memory_order_acquire),可以确保线程 A 的写操作在其他线程 B 中是可见的,从而避免数据竞争问题。

    总结:

    这种描述方式可以帮助更清楚地理解和描述多线程并发编程中如何通过 C++ 标准的内存模型来确保线程之间的数据一致性,而无需太多关注底层细节。


    我知道各位肯定有疑问,我们大多数时候写多线程代码都从来没使用过内存序,一般都是互斥量、条件变量等高级同步设施,这没有可见性的问题吗?

    没有,这些设施自动确保数据的可见性。例如: std::mutexunlock() 保证:

    也就是 unlock() 同步于 lock()

    同步于”:操作 A 的完成会确保操作 B 在其之后的执行中,能够看到操作 A 所做的所有修改。

    也就是说:

    std::memory_order

    std::memory_order 是一个枚举类型,用来指定原子操作的内存顺序,影响这些操作的行为。

    typedef enum memory_order {
    +    memory_order_relaxed,
    +    memory_order_consume,
    +    memory_order_acquire,
    +    memory_order_release,
    +    memory_order_acq_rel,
    +    memory_order_seq_cst
    +} memory_order;
    +
    +// C++20 起则为:
    +
    +enum class memory_order : /* 未指明 */ {
    +    relaxed, consume, acquire, release, acq_rel, seq_cst
    +};
    +inline constexpr memory_order memory_order_relaxed = memory_order::relaxed;
    +inline constexpr memory_order memory_order_consume = memory_order::consume;
    +inline constexpr memory_order memory_order_acquire = memory_order::acquire;
    +inline constexpr memory_order memory_order_release = memory_order::release;
    +inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;
    +inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;

    这 6 个常量,每一个常量都表示不同的内存次序。

    大体来说我们可以将它们分为三类。

    1. memory_order_relaxed 宽松定序:不是定序约束,仅对此操作要求原子性
    2. memory_order_seq_cst 序列一致定序,这是库中所有原子操作的默认行为,也是最严格的内存次序,是绝对安全的。

    剩下的就是第三类。

    其它概念

    `,193)),n(` +思考,似乎还是得聊一下 cppreference 中提到的那些基础概念。 +但是全写又太多,写的少点也不好弄,关键还得用自己的语言再修改一下。 +修改顺序:写写连贯、读读连贯、读写连贯、写读连贯;以及各种操作,消费操作、获得操作、释放操作,还是肯定得说一下的。 +`),s[1]||(s[1]=i("h3",{id:"x86-和-arm-的内存模型-强一致性与弱一致性",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#x86-和-arm-的内存模型-强一致性与弱一致性"},[i("span",null,[i("code",null,"x86"),e(" 和 "),i("code",null,"ARM"),e(" 的内存模型:强一致性与弱一致性")])])],-1)),n("\n聊最广泛的 `x86` 与 `ARM` 这种,也顺便扯扯其它的架构,如 `RISC-V` 之类的,主要还是想稍微介绍下,聊点常识长长见识。\n"),s[2]||(s[2]=a('

    内存模型是软件与实现之间的一种约定契约。它定义了在多线程或并发环境中,如何对内存操作的顺序和一致性进行规范,以确保程序的正确性和可靠性。

    C++ 标准为我们定义了 C++ 标准内存模型,使我们能够无需关心底层硬件环境就编写出跨平台的应用程序。不过,了解底层硬件架构的内存模型对扩展知识面和深入理解编程细节也非常有帮助。

    最经典与常见的两种 CPU 指令集架构就是:x86ARM

    这两种架构在设计理念和应用领域上存在显著差异,这也是它们在不同应用场景中表现出色的原因。

    如果你从事嵌入式系统或者学术研究等,可能也听说过 RISC-V 架构,它目前在国内的应用也逐渐增多。

    RISC-V 是一种开源的精简指令集计算(RISC)架构,旨在提供一种高效、模块化且开放的指令集。与 x86 和 ARM 架构不同,RISC-V 的设计目标是简化指令集,同时保持高度的灵活性和扩展性。它在内存模型方面也有自己独特的特性。

    RISC-V 采用的也是弱序内存模型(weakly-ordered memory model),这与 x86 的强一致性模型(TSO)和 ARM 的弱一致性模型有所不同。你可能会有疑问:

    各位一定要区分,这种强弱其实也只是一种分类而已,不同的指令集架构大多都还是有所不同的,并不会完全一样。例如: x86 的 TSO(Total Store Order)是强一致性模型的一种,但并不是所有强一致性模型都是 TSO。

    宽松定序

    释放-获取定序

    释放-消费定序

    序列一致定序

    volatile 的关系

    ',15)),n(` +以上 5 节是根据 cppreference 的顺序,我们参考 cppreference 的描述,并根据自己的想法和语言 +`),s[3]||(s[3]=a('
    1. 注: 比较和复制是逐位的(类似 std::memcmpstd::memcpy);不使用构造函数、赋值运算符或比较运算符。 ↩︎

    2. 注:即使 expected 与原子对象的值相等,表现如同 *this != expected ↩︎

    3. 不用感到奇怪,之所以多个线程通过 shared_ptr 的副本可以调用一切成员函数,甚至包括非 const 的成员函数 operator=reset,是因为 shared_ptr控制块是线程安全的↩︎

    ',2))])}const c=l(k,[["render",p],["__file","05内存模型与原子操作.html.vue"]]),g=JSON.parse('{"path":"/md/05%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C.html","title":"内存模型与原子操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"原子操作","slug":"原子操作","link":"#原子操作","children":[{"level":3,"title":"原子类型 std::atomic","slug":"原子类型-std-atomic","link":"#原子类型-std-atomic","children":[]},{"level":3,"title":"st::atomic_flag","slug":"st-atomic-flag","link":"#st-atomic-flag","children":[]},{"level":3,"title":"std::atomic","slug":"std-atomic-bool","link":"#std-atomic-bool","children":[]},{"level":3,"title":"std::atomic","slug":"std-atomic-t","link":"#std-atomic-t","children":[]},{"level":3,"title":"std::atomic","slug":"std-atomic-std-shared-ptr","link":"#std-atomic-std-shared-ptr","children":[]}]},{"level":2,"title":"内存次序","slug":"内存次序","link":"#内存次序","children":[{"level":3,"title":"前言","slug":"前言","link":"#前言","children":[]},{"level":3,"title":"可见","slug":"可见","link":"#可见","children":[]},{"level":3,"title":"std::memory_order","slug":"std-memory-order","link":"#std-memory-order","children":[]},{"level":3,"title":"其它概念","slug":"其它概念","link":"#其它概念","children":[]},{"level":3,"title":"x86 和 ARM 的内存模型:强一致性与弱一致性","slug":"x86-和-arm-的内存模型-强一致性与弱一致性","link":"#x86-和-arm-的内存模型-强一致性与弱一致性","children":[]},{"level":3,"title":"宽松定序","slug":"宽松定序","link":"#宽松定序","children":[]},{"level":3,"title":"释放-获取定序","slug":"释放-获取定序","link":"#释放-获取定序","children":[]},{"level":3,"title":"释放-消费定序","slug":"释放-消费定序","link":"#释放-消费定序","children":[]},{"level":3,"title":"序列一致定序","slug":"序列一致定序","link":"#序列一致定序","children":[]},{"level":3,"title":"与 volatile 的关系","slug":"与-volatile-的关系","link":"#与-volatile-的关系","children":[]}]}],"git":{"createdTime":1715425898000,"updatedTime":1727694443000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":29},{"name":"mq-b","email":"3326284481@qq.com","commits":3},{"name":"归故里","email":"3326284481@qq.com","commits":3},{"name":"A. Jiang","email":"de34@live.cn","commits":1},{"name":"心洗","email":"758251611@qq.com","commits":1}]},"readingTime":{"minutes":33.95,"words":10186},"filePathRelative":"md/05内存模型与原子操作.md","localizedDate":"2024年5月11日","excerpt":"\\n
      \\n
    • \\n

      内存模型定义了多线程程序中,读写操作如何在不同线程之间可见,以及这些操作在何种顺序下执行。内存模型确保程序的行为在并发环境下是可预测的。

      \\n
    • \\n
    • \\n

      原子操作即不可分割的操作。系统的所有线程,不可能观察到原子操作完成了一半。

      \\n
    • \\n
    \\n

    最基础的概念就是如此,这里不再过多赘述,后续还会详细展开内存模型的问题。

    \\n

    原子操作

    \\n
    int a = 0;\\nvoid f(){\\n    ++a;\\n}
    \\n
    "}');export{c as comp,g as data}; diff --git "a/assets/06\345\215\217\347\250\213.html-f5RY1G-q.js" "b/assets/06\345\215\217\347\250\213.html-f5RY1G-q.js" new file mode 100644 index 00000000..0d19f82b --- /dev/null +++ "b/assets/06\345\215\217\347\250\213.html-f5RY1G-q.js" @@ -0,0 +1 @@ +import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c,d as t,o as d}from"./app-Ca-A-iaw.js";const n={};function a(r,e){return d(),c("div",null,e[0]||(e[0]=[t('

    协程

    既然是“现代” C++ 并发编程教程,怎么能不聊协程呢?

    C++20 引入了协程语法,新增了三个用作协程的关键字:co_awaitco_yieldco_return。但并未给出标准协程库,协程库在 C++23 被引入。

    希望您拥有 gcc14clang18,最新的 MSVC。

    C++ 20 协程的使用尚不成熟,等待后续更新讲解.....

    ',5)]))}const i=o(n,[["render",a],["__file","06协程.html.vue"]]),p=JSON.parse('{"path":"/md/06%E5%8D%8F%E7%A8%8B.html","title":"协程","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"createdTime":1715425898000,"updatedTime":1720963150000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":1},{"name":"归故里","email":"3326284481@qq.com","commits":1}]},"readingTime":{"minutes":0.32,"words":97},"filePathRelative":"md/06协程.md","localizedDate":"2024年5月11日","excerpt":"\\n

    既然是“现代” C++ 并发编程教程,怎么能不聊协程呢?

    \\n

    C++20 引入了协程语法,新增了三个用作协程的关键字:co_awaitco_yieldco_return。但并未给出标准协程库,协程库在 C++23 被引入。

    \\n

    希望您拥有 gcc14clang18,最新的 MSVC。

    \\n
    \\n

    C++ 20 协程的使用尚不成熟,等待后续更新讲解.....

    \\n
    "}');export{i as comp,p as data}; diff --git a/assets/404.html-C-h4i3I8.js b/assets/404.html-C-h4i3I8.js new file mode 100644 index 00000000..57c0e80a --- /dev/null +++ b/assets/404.html-C-h4i3I8.js @@ -0,0 +1 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,a as n,o as r}from"./app-Ca-A-iaw.js";const a={};function l(s,t){return r(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const m=e(a,[["render",l],["__file","404.html.vue"]]),p=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"

    404 Not Found

    \\n"}');export{m as comp,p as data}; diff --git a/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 b/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0acaaff03d4bb7606de02a827aeee338e5a86910 GIT binary patch literal 28076 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_AMS-Regular-DRggAlZN.ttf b/assets/KaTeX_AMS-Regular-DRggAlZN.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c6f9a5e7c03f9e64e9c7b4773a8e37ade8eaf406 GIT binary patch literal 63632 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 G2<`xUL{2yW literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff b/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff new file mode 100644 index 0000000000000000000000000000000000000000..9bdd534fd2beb9b878f0219da9d63ffba56677e2 GIT binary patch literal 7656 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 Mepdy)y#Y}F4=Hd9=l}o! literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 b/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..75344a1f98e37e2c631e178065854c3a81fb842f GIT binary patch literal 6908 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 CFgb+) literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf b/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f522294ff0f3f8c52dfdaef7ebfaa06ebfcfaabf GIT binary patch literal 12344 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 b/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..395f28beac23c7b0f7f3a1e714bd8dac253dd3bc GIT binary patch literal 11348 zcmV-aEUVLZPew8T0RR9104!7h4gdfE08HQj04x0f0RR9100000000000000000000 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 bnfbLfgSm6Day;iB;wah|00962|Nj6Fv8wea literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Bold-waoOVXN0.ttf b/assets/KaTeX_Main-Bold-waoOVXN0.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4060e627dc341c1854260cbc3f7386e222a4d297 GIT binary patch literal 51336 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 Y{My=5Zj3WbM|mX<0#Lulu=APmKiR?A3IG5A literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 b/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5931794de4a2a485fa70099bf2659b145976d043 GIT binary patch literal 16780 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf b/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc007977ee709a236d9e82719cf7d4e5577a81b9 GIT binary patch literal 32968 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff b/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff new file mode 100644 index 0000000000000000000000000000000000000000..67807b0bd4f867853271f5917fb3adf377f93f53 GIT binary patch literal 19412 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Italic-BMLOBm91.woff b/assets/KaTeX_Main-Italic-BMLOBm91.woff new file mode 100644 index 0000000000000000000000000000000000000000..6f43b594b6c1d863a0e3f93b001f8dd503316464 GIT binary patch literal 19676 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 b/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b50920e138807f385d0b0359f4f0f09891f18406 GIT binary patch literal 16988 zcmV(>K-j-`Pew8T0RR91076^<4gdfE0E4su073x(0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Regular-B22Nviop.woff2 b/assets/KaTeX_Main-Regular-B22Nviop.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..eb24a7ba282b03d830fa6c63ee897d92a5188736 GIT binary patch literal 26272 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�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 bkH82T%!~T~dOL3iZSfI!+IWoKhyte*`46Vs literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Regular-Dr94JaBh.woff b/assets/KaTeX_Main-Regular-Dr94JaBh.woff new file mode 100644 index 0000000000000000000000000000000000000000..21f5812968c42392a3eaea9b0c6320870b6b8b38 GIT binary patch literal 30772 zcmY&;Q;;r9tnD|p_t>^=+qP}nwr$(?9^1C|*tX7p>YkU|Rjay_TB|yF>U1UU@?v5D zAi#gig9QNpzx#sB|Fi%1{Qoa`WqKw6z~bmXukwE|5bcxVG`2N#001mG003Yt002aV zZ0}US*v*9i0C1}KkHhsJw190f+07ixZ2@XBpBBLOzc5i3*0K1{`Clx<|JelpfdmQz z0^Y*b#p6F-%zv@`#{+elC*ydxu{ZvYXM*vckNZFH^=qeE+ZuZOcdzl=|7i(;=HTb; z3~f#Si}}CYfb##-dgxdCCOFtTy8r+#A^+u71^_^asJbaN9Tqy4u;eOgen$MYFMjKr&ti>na+jqz-Ybx;jUT7rpi=M zufa(yA-TkdCn1q)EGvM2_hiax`gmi(0EflrdclzrY4)wlE?XoOGM65Zbzu31KryOv zDKlP~=VUIvYc(&_n4V2Nx|(ZkU{Ya`SLxl|_7eInvM;JKdC-~hF59%J{8gZ8s*xA(-Zy@VkPzVn;oDCiUoZ~y zd`=a4_!T~VIKf`-zr{LHRR`Z6oArG{z)^ZL&nGLA+uSoxbS8Ol`V7aokBT3Xo(hP( z+9AA$K0@4d8K?G(+Z{kE=#z$hPB}TJAG|HIE* zTQ)h#44y8HVIs_R_t=|UHjp!==565A(?KYTQlro?#(5^lyUz(WLb73Dy7B!}-xD1P zBH1c+Te}vNYtBs%bFya8%x)LtSejr>!emav;;Tc**d7miFAk0r&T!Ij7OY$jnucxy z%HMehZ4oCYujr8myR;h2H!=^$hH>=^?wg_l19r=c?+gwXnd~g$Cboc^n#T;Gt@e15 zn;uQUSO<7RPYBQesCs?#bF7jh#u$!u`;-2GfOQ>eAgjw|dNTNpOt#&dof28b+4b-D z1fmEtM39qlX9b~H_kRdEv@cz%FS=d&YVOA|qbvJy8))2-CdMgS5Wl}~c^%9v&l3l- zS+#zbDbs7Mcu{2*_CV!qJn2B{UA9m%FVT}&&KZ`nx4;WB%$(@KPfUVSfPtjFo-EwJfkt27^E z8Z)JXmXhG|m;gy3`tV#s08jr&+bll_DV@5LksaIScMWbwYM|7_m z*q7eiB(rN%wd`+50sA4=p8%zW24;l;l4=}Qre-<E_K3s81mK+|tN8@qM z@~FGC@FbM5wrjISp(V$f=I=6`o)0`4&8lfVAS#R~s{pImvBny$#a@WXCicNcM3rwr z`-uMJHht8Q6Am=sG#SWExcG^#6K@)Ywm`%UXh>yIZIxgkcN<5=Rp4C$Hy4XsKO|q6 z8Ah@dL1L9~vD(b4?ty|*nqYZL65V+vT2wCqWK=vUKmSi}pA38d*ZRRP<9Ny^nKR_g zJ!Mr2PCX~Dn0GYi;7d{_r@d3urdBG|ab=$i%To_h)LHWcu9_x}06{$Beo8A2s6@(^4B_=o#4

    Yqh7OdB% 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�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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Main-Regular-ypZvNtVU.ttf b/assets/KaTeX_Main-Regular-ypZvNtVU.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dd45e1ed2e18b32c516d9b481ebed3cb8bffa711 GIT binary patch literal 53580 zcmd442bd&Rc`n@NRIci-?&_|t>YUT0p3ptrljF|J##wFDMrl{lYJ<`$AR#0nAqkX0 zB*_AcWPEL|Ot6Fyw%{5tV8CQ!urb%h27>@|eYu1m8*T6Zo>M&=KoUHD{`)-t&g@Kg zRdv<(edo*JjF0$yKGS!HPw*Yux?^x;=`S{p`+QG+5JwMPdez~Rm4EvFoX_`^?ehsc zFTL@G9K9;u_W3?l!})!epFDciCG}Ic`g|WchMV}09=`r0j)#1{udKsw_2`v1U;ang zqqx`bO~kGc*cp6`!wRHLPmGDvmsI z*~kcup8C-U`BPl8>Lb3tqM!E#eQBTiv=h=P9qEfSTa6JXYEwln7OE8*aqz}_J=$!o z7UQvUjZiC0No_WsO9mo67A?{@M+#7xRgd8%o*f;Adap z7`erk{R?~jMllgDR&oQ=t)6u71r7nWvC}hx2H1A^4g$7)yG9gFg?0n5F_>%`Rl2Vk zS@6aqNKsMjF33eiW)uPv;nDW_Z*UBE0+PjwgdglPjrN%N)7~CY^oQv-@=?5!bvbYW zc`~TW7hP;eZ@5m@gX{wD@HrQlp^w#qxue_+?)KiMBp9)GK>h2_pSM9N-iiqZLd zfhqyNBy8S71ljPe(3JowQ+`SJr4k5AxI&T%er^Wa``V{JLq0-j#9Xz|4Rs5=j&G^x88+PKDM3+Xqqt5z`Sj zn{mbT9x>RH=o#8Lp45f9d{HGU5Gmc8nWti;Sa0+SGNqH6K>DW}&pJ7wIwBGhC6p3- zXK&xk0oPFLbrP8D8@Hs0lXaaeq3aCtpMnui9U5IZ5!DCl;feZOSc

    viU|OFj=e4 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 T)YS6}E-Q5R&CfXgJ?`xQe`ny2 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 b/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..29657023adc09956249f6295746c8ce4469b50d3 GIT binary patch literal 16400 zcmV+rK<~eIPew8T0RR9106-7`4gdfE0D43K06(+<0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff b/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff new file mode 100644 index 0000000000000000000000000000000000000000..0ae390d74c9f665cf8b1e5ea5483395da7513444 GIT binary patch literal 18668 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�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 J00IC101u*7EU^Fp literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Math-Italic-DA0__PXp.woff b/assets/KaTeX_Math-Italic-DA0__PXp.woff new file mode 100644 index 0000000000000000000000000000000000000000..eb5159d4c1ca83fb92b3190223698427df0e010c GIT binary patch literal 18748 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 G#ECDig^RoZ literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Math-Italic-t53AETM-.woff2 b/assets/KaTeX_Math-Italic-t53AETM-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..215c143fd7805a5c2b222bd7892a1a2b09610020 GIT binary patch literal 16440 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 b/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cfaa3bda59246b49e94298478d6de3b3208066c8 GIT binary patch literal 12216 zcmV;pFGtXKPew8T0RR91057-z4gdfE0AMHp054wv0RR9100000000000000000000 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 G>;nKVNojrn literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff b/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff new file mode 100644 index 0000000000000000000000000000000000000000..8d47c02d9408d34b2a9d566c0fe0d42bf82fb735 GIT binary patch literal 14408 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 b/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..349c06dc609f896392fd5bc8b364d3bc3efc9330 GIT binary patch literal 12028 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 ZM6wWJqL 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf b/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf new file mode 100644 index 0000000000000000000000000000000000000000..537279f6bd2184ed32f1a5168850609147d58ee6 GIT binary patch literal 19436 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff b/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff new file mode 100644 index 0000000000000000000000000000000000000000..31b84829b42edae20d0148eeec0d922dad2108c4 GIT binary patch literal 12316 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 DqysK0 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 b/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a90eea85f6f7bded69ff5d40114447a6d8b48cfe GIT binary patch literal 10344 zcmV-uD3{lFPew8T0RR9104Qhx4gdfE08C&204NXu0RR9100000000000000000000 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 GG{*pT{>~Tx literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Script-Regular-C5JkGWo-.ttf b/assets/KaTeX_Script-Regular-C5JkGWo-.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd679bf374af72f2a183b97b40c9c7e9e51fbe5e GIT binary patch literal 16648 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 b/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3048fc115681ee6c1bc86b0aa158cfbbf59daa3 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd4gdfE06`=G03}%f0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Script-Regular-D5yQViql.woff b/assets/KaTeX_Script-Regular-D5yQViql.woff new file mode 100644 index 0000000000000000000000000000000000000000..0e7da821eee0dd05a0a6f0b16c2c1345dc573a84 GIT binary patch literal 10588 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf b/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf new file mode 100644 index 0000000000000000000000000000000000000000..871fd7d19d8658f64d8696ed9cdfc82c821ed76d GIT binary patch literal 12228 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 a^|k5z`r34UeQg~YeP3G~_EX$#+W!Ytlnjvo literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 b/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1bccfe2403a4ed770c1697ae7c15b9e1cd9bc4e GIT binary patch literal 5208 zcmV-e6sPNVPew8T0RR9102EjN4gdfE04)>%02BcL0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Size3-Regular-CTq5MqoE.woff b/assets/KaTeX_Size3-Regular-CTq5MqoE.woff new file mode 100644 index 0000000000000000000000000000000000000000..e6e9b658dcf1cd031ac82b6b8f312444c55d4fc0 GIT binary patch literal 4420 zcmY*cXIN9wvOP(t(whRI8c;-f7my-FLhm9)0ucxxO+X-0rAjE$r70y;QAFt=Ql$!n zPUu~Vh!kl;UcC4Id2_z?otd>~_MZLctT}!LnwkIzAR2=@K>P2_iT!W<&;S2sU?M63 z0OSHhR-XujMng&!(#_73$oUgvcOp^+O${uO&wO|QfQ|^@3K9R=)zQ<*jhOcX0LYq& z6t%s`DcZ@-n^?=BNX()5ALyN)1ULc!NF4x3Hi)?s<6b@%C4eV{QxoN-`#Sai%M#EK6N10(qf4* z`X3iut5EBYe{Tv&<%2T~#tigTJbU14c06D|c6RqXt3%o;{qsaft=r7{=ya{y_R^CN z@5}L+t;~atTi;LGsUL=k{{iFUB)cqd0_>*+Ng~$G$o$aSCM@75f$)(3a#H$?$rV8@ zls34rAGgt0R8E=ZQuDf6m>(B&bHJ35J1xE-f9`piS($lhwQP(g8~O~FglVC;^SPec zcTNo2RLmWS;C|M=vn$WrK=E}|X`OTR?w7QHYa&#V?XJAd0!uWGLeOaAA`4x96QLyt zuU65BaKqE0zQwD*5O>*Oilrz1^EwgNFl7_^D17_&l8+62p5N#5CktWZ-#y>{cE6#L zU#B023`#8@?N{bw&aP6&i0Vh0-R`<)3>Sg3X%A9#g&uq{`qts~YC{TbAabb0+_x!x z4-5$tqRZwTRroN};E?uNKO!&-8sn`h#e$Q{`dMvMEvvG6G?_c!D$^lL&AI#488%Dz zL$7bLShsG~`xP=kC?%)YlrdSzVV`cf?KR_kG}V`zP|>((n6V0)HxAX@Gku4dj*`o= z%ju{s6D=1DTB@*Gn;qHsdB0jsUv!LSF(W&E{V9$@wbSaLv36tc=mG7da*1p=Q)1I- zwsXWUsO0^4q+79NxoLT@&TFYxz9v|oPnEX(_d`sLOa;?)jdd(!^u}BZ|5g4A5wknaMc)wzcwAZ>hqPRn-LRkwg?k}TNVp5H# zLufx&M3aveUoH!{+?0Lw@%|yU@k`n~6E1v%nv#-@Qm`$$R^O82i0jz=SqVDfB$`>3 zAI4GjOBX^XRvgccA2#KtaQE}&ppzQhNqNy`POgJLvi>N5R5Tfv(kV;V#qdC>ni0%9 zl+P*h8|GB&beO=`9&u$$Lm6MD80hl_&hfZc+Pv(aQbwtH4Ob@HhuOE6N7g5=mIv$A z31o__X=ATU)lJQ_y?HwDB7tCD`N-p-HB2^_=@I>#r?W5q5RSNa5N}@CZsj?VZ@M(L z=UZd@?SM4sRKMoW1(Nyzu5{L48=S$t3N{y=ff>8cE~5gb{)Ws3zdI)nSlI7d=v0{L z-dxfT2_DEQGY(;gKa9(>>{}Hm%DTO_e=7K6D6&uG*^Ha^ zWu5dJf1z4b8KO@@PpbCl3QdysC@h+31iinYe{baMK<9H6*SCOdmuZKKZpd%tpv5=K z%6d3ucYonOkncN_1dO`fg{R@=@ewzj)7QUrmqBa;OYs~RCHc%M-1|{?r~~a0nYBl ze$;v@v(&~NjjIIi34Ur_6&eN=j_$uNc;EKsEv7y zys^H$l`#YliwuZ{VVE3HenxiwpLP4QPPwqKw6L%;j58esqDB|t7}$#F>FEq5VP|EX zrxI%ppjsivHWZ7=i3yZ`eQbW>(MI3Z7#olchNy*bNLpjS5Evk`L{C()f9D|(V0%ZN ztDxjKL{?-zNUL9r0?_bhWoDIPJ7lwGD`#_IyDG+sZ0s1Q;42zJnZu*_0s9q&MKg~81 z3zulU(>i=FALwfNMGANX$KZa-THr6=R2<-3}5C{nnu2>s^F!b<9mQ}Hy&~w*!*G;+L3%!-UVs5 zZE`cCA199DoUgK&VSCTM%b8c?qu@}eEA!I6Uzu87I{YrDkifu<#kkT&N7jT5ITJpV zFw@>XW~(szE#{9USGwXtd*I!v(`yVxx!p5y`iuRoSAfZ9L7y@^bt;+3&zWga zO|YjAv(KGx+fWK%p?15AFm_=*1jdRNa)1(OvOUzMJ-!;RI?l$*g7^3$cCK)-qX`M={AtCIT;8Dm#WDPHgV$POD?hutF_^v32QtCOk_Ffi zkChO&0}##(7H2lo1{D;ynCEMGIByJpv*wn@Y>_2+>r-=KGGl*};3hJ_fd4}1*Sp7| zMeiRch6qJ=R!5Mr6BcKd^W^O+IN1ofY`IL|%3v!Y5-@=<AF-t z8GlD77Nt+W8RojXujEl?_?T#VCv)#SK);T=gjaU;qIy?ec63X^ai!?XC$9d+3_ zY{W*nC!H(SXpL%i=-);Wmg|x>F+lRW@(> z;q*2;7?*PKK=8*$;i}R?nM^8q31`mzl-(z~d|}Nct2d4;jHC40;n%-2wrjxooRS_> z!tJZLa2pj&xjhroHPzn!Z*2+;_iDXQC5R{AEVC7xoohz&Pjnphwwr@ZN5XzaAVV zhROCvOXR^Lm7Bny1=Q0jG(ZB9dgw_<;)w z;&iJW*|Qm_?=Wy*PH2u=o~|^4AJx;adzvlCCNySq(c#*}(@cW0L`+GE^vU{X+`;!?z7KXhvi{eC`FU*$| zU-}Ic-1q5l6e{Gh`o%&gb@_FpQ47O)1uPJ_P1#6NJV0@~b>Qea>YfMb%TNqPVIOZZWcoAvER#lpi5h+A2*^`eg!yoXbFP$+*nYCv2 z_Je+C$dKn>Y7{H5(k)l0It$45-!_y-Uz9Xzu)e>u`O5{bjayZUgVb zEmGK97$hh`=f`Q9$W7W0`Q)<0;Z|Eul4rhL)3oCpflWlZHNooE%~ZRPY$13+1&?*X~0gFpS#$rxdzi5*dj-=bwnb z3yon#elVu+e#Z%B8M15FfK(1a^8e_x3UNfC{Wqr&|MQYbU7n~is}I%FU3&TV_z?}0 zZ#O&Vbmwzy1rMgj#n@VY_ufo?gUxv58A!a5WRDcN%qI88D=ZVK>})PJ@%N=!x2ni# za)Mg(!JIe8eC^x)Ye7NX&RirD{stHsrUr8XqvFJFmZ#R^=tKnTT|xvoiEr$!7WSgbgQ8Tn$CcO z;~h;>g^M(9%aGAp{Len+X95DJ7X&hzrsZGtWnfq?R+kX>Ba~_g+pH}mRq?}l%IG>n=_$;Enw`ZWI{bOoUT2g#cZc=zsN)qOal;~({D-O_wLRr1i wAFpGvH#RnIgsI2H(Fo;L^QS(G7|}=IXUDJQ83Fdoj{z zztcUEC1YjtigmU_6BJ$f2WS`N)Ui!;I;_ z#<=Bh{`4{SPreb1zmKtTB!75f?~l)X6ZV{COg($-=!wbunp)G)4>EiD*zt*DXI|`j zk+BN$=V>Nb3*c)a3U77BT7#{@+SZ`i^3-@si-^v?+rkTsvmee3ikBSEvr5KzL^o?| zYMD~AuB{`)+dDd1%cBup6Tv_@R8cNo(pIUJ>x-{9>3S1yUtg)N(mdaLsrPfg_RQ>5 zG6i7TU#s2 zD_EEm39jk7Syi*Hy@T-=il>}DKlJf-(pP*P`uu*qsf!z*DmU;crwWC|Z_NH+c=F`- z+3y#>0fnlwX)8ZVS~_M1mA9ZJ%2*fz+dA4=M|*2axvnW1f}v~MJ$|kzM}!ve2DtXb zs^WL|6yH+ynZck(6)sn`;thF1#RrCGUifh4W7R`4FTrvZG7-ygFdj97to5F0Di&IqQVpH^EbZK}0jFYHN56s}<|uXL&_AFJ~1Y<;{TGudBtk_7uOn>dAn& zOjEhJhu^g7Z)f&-0v=WIe5mXk=8rkOKH*YlKK^j#h2i2|knNcn*TsYJb*(`U zFDw4{8;(Og7r)ly{1tc}gpGHAXB+fWGHdXs2n!;!ZSCzH^cN1{hU``#=*Ta9G)2%| z_X%CED2J`(;YbvKzI2a@JG4q)?%t4tZ49I@6Rx`Iuf8YDv#`4zS=Ejwrkp&`v;?4Jjj#oTOX+A+~;&V6?OI5AvaI*V0ZNI zcIlcwAcPuejU~MTp_Yg5pGQ+oqM3#tkla z{_6oT8GLM5QyHI|5p9m=6cyczDXTjij)<;Tt*%m$V^w^06F6+PA(}qy+W3B7E zyjwrNdqYFV*DppD*W~k0cz1iZKCpXzqdhSedPMw}lRK-IJM|%5tW;EU9m+wkDUG#N zj(RA(oDpqIv2Eu|Z3pR!@!ihZuFn|HFOP`Px!FI__D}!qFJwDAIy0cmU`L@pR);Fu z>^4#nK?^af)}c_^bd;4|Q(N1?ov(WMjL^KAm(Tu4Ria+;b7AN~)uHKSxBSn{fo8>d zz~Of5&Wo?AE|fPDN}FeeraPQv_aa9ZQNLZ#D_ur~N-vqGSJ? z*!}4qYwx?_l;b7qThXB|_HZ;b*WQc2uzJ&?^&DqGd>s$<6u&+5C088X1MAPs42Z`e zznrm-bz$rW^vh^e5s`2hdk6KQoO$;h;R%!l-^LYM<`?gL6chtuK=lWG&e`wGzO2o@ zJo}Q%7xb%QfGiq;M@JzM-LSfiQ5UAtgE&Q4;e!^@RBYnzNWdfBdH3CSxieh(_S=_* z`be1&<$iVc#n~5wv)`KiCihpmL`o!apg}H|?9TwZpFPJe zu-~#z_}%vK5L3|$~9>=qDGmd9T z!eu-wTpod@qoSW(#MiR`f6vaa5y*s1j^}3v*lx$OmoszkIi9mDy zmOhd~a}nGrQW2)&8H%wLc=}P87hE^8CU!f!5Aps7@v3-JQL2`kp4#8d&4J56*J)yV z7EuML&f2%<=H`Ai_vYMB=3bb4V(#&|L$m#}Ewg2BU3$y?(?&}V7GL|4EMZ8tE0fL| z#^8D8+de3@9lJBKEhg7wbNh^`T^T8=^B0^*)!3Lh8jHsz%Sx6q`=%i|l}k2Ao{&av zUxO40Gj7Hkq>?bk&nb~8OQvKvW#n?nf{3J&g=!@wMQZ11LwZdhsr2gk-4N^@=rCvr;8PX@qQ>hX|%osQ1D??JP z**(36m!;BUX{n_%aj8^ihxcT_9Gl7*a%c!sz1f%{I|=K|W{rZ)4U5)bsx&fWGtrxg z^Od2DfoM$S4e1`r9ylI7B4(oq)&F=b2{Q_xjtc2pxm+cUYLSbjL0F|+ZkA$xaZ zK#NgaN~SbOJt1AG`e|%1E9y=R&7_HPF_U>IM)yfR21BG?*C1U9gRJ$zEtQRe1@`vl zvc!_>v#fO|rd>XkN+;{$3x(rJEG;CjErr*^gcMxQ8R;oAPf4|c&0>@gX~baUyp>3; zneVezlwD`JT#Z#&yx`j6MLw#3GkLDe%ak-y6f@)5Iux-#Q4k_6$Mby+GLV1^h9Ui_ z0rCt8G9&{u8pbGKJ|nZX_QWGs&Pur(h^6j&&=D^m!CQj+JBGFVSr4yBbW_~{nFP4aT&La83g6lfnJ zT*)b97-|D`aTCktanu9RX$f{RQM2%*ANKcSc4@M%lR~`Og-rw*1=TZ+2R5r7q6t=D zBE2&sLuS%QOCQRw44KO%jod#kTgF+Cg;_G0qzFVn z6ga_Uh&RC-5(S0e@Q{S>(B|jJY7l(fa?5cu)1Wouy za5elRSPlOO*1$i4weXMN8u&->M)*gt4*n5rOc>qPMrukJIk_xnpy}}()kGdpHd4(t zCuCE-Y{GtAi>=U)ioNEBH1nM%HTM6L1LfEtTjo<-@M&qPIJvg2;Na1822GK&*t#e@ z*W+nR80##{*Fl;sC;izrf$nonYiXX9<6RwBUys>YXyZ}xwH@(*1J_)W!)D2MHpq@d zV?}p^?EGV_DC{w?uSbeld9~4K^ixYfXtzvF^_%@@K^Yu;=(;$OIysL<5aA8zUFEU@ zY%1DmwZ&HOvZVB+>L;ceO~dG(g3PX^Y(}FkPikgzp4*T)>M6b3Gv`#pVZ_d+MrXP36W->A<0iW~Zj|G2po@`oq<0@-Pkk-`t$< zjG54|8GZs-S|INlN?-`JWDQLO$#9_HaDrTA2_)v}v?3!E+)JJGiY^pO_k1i2Sm3BB z#lq}Hm^Lnuq#Mn|FgBb0q?EGQGf%Ueu_Gq0Nbc8)pqwzg78vT1od`tHA!8DyDc-AL}+dWAR1x z63>?G>_-FMP(L4)n=$IDk5kSlE+uakLa+rPh}zp8Pbb*n;YQhxT|RJ~`9X-|k+AFl z&n*eL9$+g)F^zB=n{f!wN9)!E6|~%nFmFptGqxGX5D-qt_QW)|W`==SGdqZ=mVA>^+T=g(cF?kmusbZf2)om= zi?BnMU4$LB>>})lWfx&b5##QK1Rk?SvKNHAY;+UQ;}mpalSzzD;H(8oJd-v`JSQz4 zA`s6hEZ(>v^=@lqtvGF?wBjBcCH8wEXQM6hJ{u*5zqV0gxF5Vd3-ZobBTL@rZIsy0 z+92hKyP4p0eo#3kCXgyoOSjq-?0MIlX(2A zv!Qzlyns6NSTiw~7NFBdxw`CN5@@C?2-&he|uGbLQ$H@@>F zTw$Bpt0i1zH5`xo)>;Qk@|F^=Et)SA`}kyO-pAUMpR*J@%8s#np!Fcz&knFj>wSC- zZ|nwsyJ*H|J!`PAwZIM5$0pbbi}wgdJJ=ZT33dc|WrlY#8_b>?At`>TyKjC{|8d@HpltAf<&h zS{84xWM4~0!&OqQt?6p6+aUe86$8>~u(i;$mURJ}#AhGuISF_a-W;@SqTe@8SzMjq zY(-@Mw3t&=|G!ZuUES<%>(hwnX67?#uv=mEVJnl@&I{F;8#P7%V=B@g(p@d`Z@Pl$&7rW_a-D ztPyrQntKSl=UNy2rxO1yKnL;QcfAm5=_b~TUm|n(CGn^1XB_|kVE@P+T;n=-au;{& zCyyL#Zr;>v!Pe#$*W|%N;}c^?50BDJOKWpy39c`}O(mGLU`N`fccj-tFURkN{{IE7 CPy?p` literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Size4-Regular-BF-4gkZK.woff b/assets/KaTeX_Size4-Regular-BF-4gkZK.woff new file mode 100644 index 0000000000000000000000000000000000000000..e1ec5457664f438ce5a1cc6dd8409bf60ca7804b GIT binary patch literal 5980 zcmY*bby!s0*S*6GA)V3^1JaFjBaMLMNJw{w(j^EAlG5ERB_R&d4bnL{fOIz^{muLS z-haM*pY`0c*IE1S{hUAUS>Bq8iU0^e1-UVR|IeE>;D7l)>;E5`Iz0RUfIE+3HBc~9 z+|&rNbT)Sb06bPy9)Uswx2x`gQ53EP_m!Wm zxhJZYTo3j?@Xo`Js>%)Fj^I zgZQD39#1VgrPpjVxJJ1MjxgatXw0@C;UVtbgXSVF#w(h!qF(Bq-&gnq{)-45c+TzQ zNJ;(G@3kY2mI$Wypu1~5HHb_! zZxFs!r7I@rc8$SzI}F&8I?B<#tGy2OPrSMH=2!h*NMvN4q$rnVksq)5G_eQ5T`!S2 zXrtPzx=_dU*`k{H0MgBm|LY+3r#m-V2;W`=GL>if4kNm~Vopf)d@CC#3HCH)e zjgFTh#2O*%neL3xMsLA7TkE2<0JbfX6N)%bMys?G?K)$2lDCGe8-UlZhz$FAz=<(< zuol;hUZ2M@;!7nl%{oGji6NoNOTv+Cl`vv;Oxjy;=Q7Ut?qtAaVwJt7ekhvB zlD&*LaXpIbz-FFk;3?XCM7eptGjIz+^3CsBqfu-(b)GArmGxkI3Cadb=jf;!?Pzym z%S;4r*aqzm%s`cPB_G8LFqL|4WYmR+3~U-s*Oq;6TKAhOP_NTYX;24#0T&@g<~3#$9-{aSWy?5 z*>0ZcTyu1MOJ9@AtHe!G5L!Z@Vjl2(#j8gu z0RXgLi+|x4d)z3x@%~q}ScuTG9FB_}gMr>s2f$+1C-l}`C!841Kbu00@{s6|tB|TB z2Ogs;X@=ngG>dvWbhBRSU%ElbG9_Dn5wGgQY9qc}n&fx#!>YN`(uW$D9TEKH={SNg z{NaW`o}+G&&=?N)Zz5^21{zN(OZY32{7H#9(@7<`@f43XvvuexijtOwDSnWM^5dd0 z$IV5G+|fvZxoA4+L2_==b>s({7{qA4JKCBZa&6j&qT!F(CmYUkqtZ@Jr9E3k!<>;>k92!7mpB{6n49qjE7r# zQyZy8nRtK<{P^ak0Yhr~LsYFhm+{A&cv6N?+|*2sryP!p+U)6M#ZIrU8C-f-v}^ae z6theCAQ6juC%h0rAg}M2QNFM>!18S_dxh^cD`hUC7v`tzp@C>RpDZy+Y8tno^!xqC zIk9r)e1wa^MU;^AP}E;gz^oJqnP|P{@>aYknjumYg*@}YT84oS(2eYubR}`U6Eg(8 z76r1yzrG^2N7Hq2u0Q|K^IjBNIAqcHWVc58Yk7LTrPrgqL)by{XkeXLA-U&_xEoXK z-vnA;2q(7BX#w$`;P~%a1;3Nl=Uos=L@``%WFJh^2ch)riH`G`lBqx@~wDkNQ;v+ zzYFm=&hmEKH5{666!7*(xWLFPqqYq1=ucO=lHsIi5e}1f>G5j;wETNX14em(>VDtg z;J3ha0~XqP$u13SOoJXQtS5U_f3s8*%lc|U^=r^P&5)xDA(tK#SVfjNluX2lgQvP} zt`_X;wu5gC>L|)~aCB(Q%iyKs1wPpeOkb`^3IyC1zTK(&98uR1Zhb>rap%)7bF`-< zO-ZjY9Y2}pFjwY$iKy$-G}S3c+A$8VNg%Y}ep|3}np3bdrKkCqYHT<4ll>a->9NrZ zAS7?WHDP7E<85+_yz3K^91y z*&p!_m0kU=73uKb!87}RLLcBG`TqHRIz^sDRjJAQvdUvzk}T8~;(B`Dhq=lu0zYO6-F z*Pp9txI{Ir!D0(SmO)B`9c8wM8W#NIzw0b7vu}vP1)=l4`B{Y`Y{X?fuGo-na?{ne zy&QvV)DP5Jg#AQw$F8sc${)L3Tl>aUA&1sVJld1dN$Ia`fZq_}4aFxJLTFt!GLog* z5GR&WzzwNNE!{n4pB8$X_hq-Ls%o?1OU4e2R62DVQ}rC@3SOjmtyH1I{yA!$$NJ@v zs76)+>byrsYrCJnr;cXwGH%w#5D?2CqYt#-P`zGdC#cP+wsG=R(TN76o@&M}|2BUP z4Y&4aBYYf`L;M<%fVIv*7pu<$y*JeFL4K_MrKiGT!RUOVj!$Qap&p}%WKmFEfrSkk zU2G_acl6N-HFa`WaoaOKUsuhUI%R*irO5ViOUZW-At7RO0*WsC$qA8}nvL}Zkh+tXOzgwYS7?isUo1JqjpynG4hbbHEPB0<;WTMuVW4 zqJ^U^gGs^6;Adb3upT%9Tn%1^5JSWuj*tMzM@TxP4AKbch1{WQqlcqcqpxBJW4L1E zVvJ(kU=m@nV;W+<$NY-9hI#a_zejm~aIc?(DS^ZVKmh*7tN*|Fn{e|4(*rI*K&thoiV1 z0`INKuaJ1I@h}Y^!?W$~A!jC9=Gm-1B?1+`)V1Cod7ADnU{BaxzS zY+prosJ9vp%5qdM9T&b-EEiRBB)2}?{CqQRh+MYWZUa>cpd9#r=Lr8}6w44LdD7qW zz%zdq!dTWp0TkzBO#ZuXF>999(J|D~G2Pn`85)|8DJLLh#%pC|A%lj8i+hAlvDEth z1UzZ1LqS79`Xqvvw zLb)O>q(UUg7OeNfr{kD+<>BEW?qT^V`0gR&;qKw)e(UzlgX4MX<>4jV*t_D06zQft zo&d+J&*cRG^ds)_f99ytpYvN($EU4mF-RsY2}vK=dlnfrg~aJ^5JFzu416hK-U_;8 zAL|ID)Y|dBvBQZ^^uNl~;|=5Q5bYS3%LjVfj?e+upbrxV!Z5^LW!#v07JgS8;n7W6 zrIPfGLc3k#dZ_&?Ry0yW7q4&zuWd0q*6`!PFi~bMd(kw5@%yYA-S?GsRSdXDCW8qV z?J>uZogbPZ-HDII94yWEbXZb{C;04Wm+D}PlwYV0Y4eJ`#H|a}g+5vgOXG??3zMYf zWF1+A%}8x^XUv*lk|07J7Q4EpO~t4BKKwC!k|MF(6(Bi(m8m&uvk!K0PH>26b&oah zlm%2aUy!}{Tmc7XS>JH_PL@j%QoBP$zHLMnftv76chPHJhucsF-)Vw^q>mL^^7f9t-g@B!U)V0s%EVit_?vMq`(~lapjr5A+-Em)fyt z_bLaI5{to9cb-1Y%RZ<5)}a{TXtQx995wD}?%u~(7(rn%lsxiyuV=i8&Lw?9V`aDl z8<=|=SfAdbRzr$;LyB()hkCrqys_sndBj>oZGN}{rQ%|T+}P02Xm!lQ5?8$w0i-~4 zT_Gl2F%1aW8A=K=gr{v)VJD?_DW<)McyBH9&Lcmp*PKv0@4?4Ug(00ijnJ;LMt;PA z_9tWFSOPXxt!V|>LU#0XUn|(UJcV?3xk$pu5R&JaVV`$@=H!whs5|9pM3Zu9I4gx0?=z9=_J&0~ zrPooaJw;2Gp9fW96xUb7X?cr`kuUoGI%c(vm#NS*83lEn6TKFW4V{V|gC%zPISPE$ z!3xxVA)}n38~nMUH1mxL4hh3h;@?SDeX$7hB4h=7!iTKpt+gVr&hD2xs~?^deJ2cR z_njgnDd04ov&LYz5-2E|bX^N}J_AkYK|kp&c2cwR!IqfXUM*>>^qjen#^~cN0n9~#b2!Af;r#!G=yVNJ*+IQ=82hC(NaESQ)ZL&l|$Ep`Jt?# zmVb&x9!<~Tvad;e9AgZSc_T?5z{&jE@+$tgu8Kq|MJGINBNvNq*uJa(bPTn|{cX9R zRhxvr4^^;tjmTqme%74CB;;dbOD0u+LWJz^$Ig3{>ZPOTnMk*9;FtF4UZtjY&~9+; zV|TxR%0!vpy;FQaK*oe;@t6Sm*wj!i$Hc|S=+^V@5<~9UXasp@Fg1q!NEetX)}&xcOxOrfo%>rXFW z+7U0hR2Y8}cPXea*(O*$Qn9FeGO<-fl0Bd>-SR;q&^x!NzXc65)z28PkJd5aUMHSt z_$5HJIo-yVnUw_pHu<&KjKAdN{uLf9F-0XKClO!L0X=26!T-%^v)XJ=bjgoJu0d$K zUjZ@F(O^K@ZB*{C(dUJV9dC4|kNl0%rp8LQ_PDZ5Ow_^3HQQcn%bTIy*A)JG;ridq zOq1Q@e;3f|I7?VUcC`&0?7+5cU6uno0UFjLN+O&{Trq;OaAv!Kmcy$|c1q4^6YMK4 zDDt+jB#loY+(l)waJQ!wCfht(qT2HgX}Q7EVAR01u%R%TU9v*^=GpDH*}y z=s=oKH}{!Pdz-2+VwCHU@!z<%kz9f{v~;oZb@-|Xd5OuGLSDWP;mhFe6~Rl(1AP`W zV`q;bMCeYj^A#5q{B592PP5s8{G3SN+)>BzDp8nS$cJfT!ECb46d25sON{Ci!IOe! z*%(f>ZR6Dl-H-Os7wJuU7KnV31~pqmp}@gZI{rDu91F|wxMGXVM#5JG-x1m7mzA*^ z1+6_l+0Hjds6J+TX16fB+C_)vLcxKtYTH-I+${Lj`Iy4vVMfl>pErbS8sVV2Ph4^{x zWbL>~{aC10 z&}exj4=i;wh!Fp={eju-^7qhUZzxIFu+1!~5C%CpkVM0d`S1NLgR(sM|9BrC#Fs>L z2Paw5=VRXp?%jO`yipOIZ~hBuEBZC6iavV4LEBjDP;N25#bl=D8pQVAT8q(z_gWl3B=nTPR= zU!1suW{bU-LH8OM-A{k9XH8nvT{defKwjK5#+67~`-+=DC^^^e2=2gNa-EXJ%F`P$ z8caU+F%_0#`o8=x=s_@*LW>0&sd?%!+1yxp_s;iMJ+<`Iyy@DeMzW{ zce7wl^tFS+3~oacYh}Sso1dMYrr@FHMR@wMNYHM{*}H^BBUK)G(`&simM$$$uiYk-4#b~SrugCZ7a$gZ${4SZ!FnFp7aWEwPmX-DD?g0Z2zR=e8gffDP>?XH9 zqp_Lm^C!`^jT-k{+sVnBvc}%#8Nc;?B;vfcS+J-v{nR;V?>25K>lNl?Ngdn=;nb-I z3PYLB33v+}{&>EPMIoNsDxah%6s=VW4~PmU*INpiE}OFL_{1Z9AKo)NFz{uOzR`ZT zi5C86U)*hbppK+;Gz;#wGt@}keE7@%czf_GdCgMm&G7=aQHCQJQa}N8KU;i$_{zHt z^AP{6F!-YPOu|`#>T1X0bN`=O*yvdQLbC-oC63ViJr_)D-@W6+6sG$UEEtf%c*jy>}D5p3D9{3<%|aBkkUWyhw5cW-6Pdkjs-meihI=yx$TZ!e&A%l2C~|I?AqN#K8E ztl;I*k<{?UiU|0*2hrC)iVme&cnJLCXjhKz*t_o&UvL3;--GtE+sB4dsqc)u43?PB zMt7w4?PA|`rqF&CZFOgA$H>O#Km1kbvyw6C(5|sPdpqB%e1);%(7N zgz@0RpnsSNtQqiW!4GQ{##-Dh?wS_2*8HjA=4Qd4d83)98E0=!lndwNU$OvbeTr65 zQ(eQ{F5Vt)Z)qv?DY7WIU0zQSXj~pH*JS(n$vIxZ?UtRVQhWBKPEFLwG8Y^8o8rHS z-{AjI=H;^NeKq^T?0Dvd%&)TJ*&n_NDZz;{p%zlg;JwzCmgb_uBIe?Wnd4tlNmki$=A`)Xuav2elXe(c&i@4WUgxBL?uBxSwlk7hj$BF_{3KjTIG zsBopw!;kW!pZVbi)-h2oeIJs1XtXyM`hBurW(veqx3#vnwKM6yyb>?x6Hf>>m&3!k zG$8-T;dXF|D`yW&4v(EM`$5KeK0MP2PVgOf2mPA6#n1D3>l<%Ol-s}7bN1IgGo(SZ zx3!(@Vnsd@N{(bTt<@c_e6J!%1DtytE}Jm%1n2T8yVoI|J*+^I-Q$q#2Nf=Ymt~@y zFEHhK+k)<3TZ`MmTeHu;A>Z3`wx`El1)5{f>3-1kK_^8+tZ=zSdREsoh^;U&+>U?Y zu-ApBfwdGt9R;q$<#y3iDTMoRxm_kK^n+*6b6`bNzQ6_1>fO*OKqWD+bA#6^qDyhr zZVS#Y49eWrxMoh7%(;Di@2W-fip$sAInTSYVX2KzRLQm_qgQ^&!SCb8U1g7(9f;^^hn=Wuqxx(-k{N<{Fx2mg; zi8i~-7plHJh$QFS;@q?nW(xwB#g&_!77ka)a}wcRUx7y!<(8Tau+_HCU(+_fsinrh z&c?ZN{VGL}zvWW$3g;&8_LVrYd$M1=a_+kO>&bMB%OYEZ`uo?-y)yfy>~2SiZ`<1T z>O9$?0-ISb$e?=tT#8DeR|d~Plz47q`bjVq!ex961mthSGL>c ztSQX1+NzEFJX7P;hsPxH*@GM@u;qte|1NftCv>4I+5x$W8Cn04;s=rn56 z4JHNECJmKodyi3<>^tAXp#?m6eh=4(!P$>fout~9o6oTi1>5+%p6n+lM(sOM*`R@z zxk2oe?x0bW@yK~U{%(PYT(65_nTh^>ewQNMj#Vo; zv!^qzto(3Lb#N?SPs^X47mN7|Hqua=JjefD*u+X0vsB2~bSh9j+p62zTw(HTb74!f z-|gd{;hsRgBVe;h0ur^$?$75ItaL6q_I-&rh!W>VvtKxBXnX(~-<#7IYX~|Qc|2H4 zQ@f~GEw;Avc|unmbaj`1?~7RaUT#&gpS(_$xO5M=I@GiOmL1KEpLI&2%&j*5b>XLP z^Ntn|`Mf-HgU}71%$>1kdJDZ&%uSad39w<-RF}K$PVnX1iLXV78uCgXJzlPg(#>|T z&92Bay_0>W#e*^jnQ#4^?-f?Q(OPGL9nVaj6S_apFGBRM^b0G?9Dvrd{30t@@TSsK zkv-n_wpRX}&=EGnm%UZ7a(5w$iCTXA(NZ^g#)#d8*RnM>E0-llUF#dzxMtTRVql=?qnERtWpZu`t_gUcmL|KZ_Xw%7GVM(>M%aB$^rn;?o-+O7m!^tsy{ zfA~GZ1J7JIC_KmVD9fi$G`TfNO5-*!zwn%_*&n{D4yO-EY^`;HGq<{$4k|Lga9EZH zAH3$;yixZHDS*Qo8ylZ#37GiRqX_jnEeWVQ>>T^h+Esxw8UqMvdIxpYZ1jU<|q?wS$F znE{&_$XO9KBZ-)0-+fQazHA0`R+#giqDS-P0qvTRTkB#2mgBJ=nW&C5qT$p>GY+qRQX9*D)yYNxr zRq;_Hs!mBmCbJr)x(1t~$Ln|{f}F$`42su{YCaunQg)u;Y@x3_}??33g5z>hpY*=(f%98*$HKy-X}a>#XRGS z_ndo2u%i45PT%V6HwNB1$Gt9}LwM(mM|fE{E#@PGye`{Y7s6*UHJMtQ%j*_})8M`Z z+#isC!HSVTINIUOBnvI;`g?G+Dm}5dEhT@OToDrXS z%V3xZW-2^*1Vx;fg>T~I_^NON!?q_?)R>NN3#UsI!)&LMH}mHFg3R9`yNFh56|QA= zS{dOWUigA;xuQn+rsUx33JS8{QA!k{&mjS1e(ZGORQlRv9e?2=OO3t4j>>A^dLoU0`=SJtd7^vTGg z$#dZUBKYGZ0B^LIiB#mL6TP{dP$_F#Tk|ZE{m9LSuCmJR0!1qCSbJdULYKf7mz4@D zdyY6YguSCKR-6wJC8Ra%dzSZ6l@Y_a18`9xTs@_>!Mmn-Ha9L5tlQXF3@N-D3>Vaz z42}9HSNaPeh%^T87r`6vwy5n!!c#dnswvbrT+|Lj_|M5B#f=-+6_^gmJ9T46IZneK z-e-8Ez+Xw~7M9qoGPhq>y8sT!@qZ8=LAli0g8n@IxqbWaN`M@~OFdh|K!l(9yq8d? zgP!<#a#xJq${t~9_B?x?Z{nxVQ6K>=A!fnhl1;uS#yLhv5;LnKLSeft;Uv}|^!ye)aeT@-s;fKUq z*yARgiL=Kgm5o96J-D|>Dpmz<{;!j-;XXGFk0AqKzx>OIGPYhxoj*SLnzGaI3Mo4E zYhi*oj~}CxhcGVuGrI3FA^$CF;%4-6w1*h`lZ*ZF&8eyVn`6UlIa6O56xGQNwqE|F z^gETYk6nk1$o*799&w>QAD)yQJ|?lx0#-5=n1tsQY(Be|?PmwsXN4aKFNtDBiDuWn zqcTlPx-q^Ddt?=tIKQF$Mx2LJ};5n ztd6gZ>q1rPDJ#-uXh_=>2nKbQ&{8w9Kk~mSwiLzdoLb_O|`=fD^rx!+}If8&Xtm@zH*QM(9C+6||Xly8^%dvP+ z7poEj8{!}ijK@{IzaL%869HB4Agm*iP}3$gG@6I5Tuap(X}pmrzug~K;f?W>s^|5` zlju=tERV2u!rGI8WFnCWz+1W_I;69KxXyZsIEZ$jS1%*1tT%Pa#fFIDl!a|dB!*K7 zo!2E2ISUf%FznGHiF(}D-6u_4`38^mB#9aqO8E8S?Rf`?Yell_6zKq9Usf(cb$z9x>b0Qn`SO1-Xx zbX&CU1j>csbt{@$L_@l0k(4fM+N|>-D55L1^|~#jlD1BmC9zE)fxgR=2_i{$8QSKB zPS~6*8jI8hrxV8>nw>}vlMAnd3Q?GzRAb{>ih^o5n*}H!x*C9zQ(7XlTB^$wk^er^ z^-9dbBFh6dfgR*3970WM6V>vfFMG; zi&_I{xr}(Z!N_GeMTHNBpt$aiCe`tzs=MK~dfgN19gL@?;jTobolp?+c}wC%QJC_IRQ?PepWh9W6PeRwP|O4;LOfFGMWFs{VMI)*;*#8ApU6 z)>RwSFl`D)KF~N#!Ahpl1T5)>{@v)E9jx~WVH!sy4NgWvEj@uFxRDS35H>U+HW=4E zT11WMPNZKxBA1M)$*&a`bLM7V7Kud213rxLRN7~)(?41ls6cub!bX2xy3}k)v%9X4eTR05B3qf0`?KCg?$7YLh52;A9dO& z#P?=iQp-gPmA_tJHYLsQelA=|I^bMt@>GbIqkc4y7gy*-(RhCVd#buP(U5NBKCIi$ zS)&7i{#m1uS))^PXY#vrMl_@^teZ(NHEBv_eynfBM_XC zFTq4k&u$dpg>_S2S&7!7x*)}j{F1X~+66suf!|#AIGtdHdmHq2tnw@0r@t5MxX-JH zL333|UjWcYUW~!r>I!VaQ{K8dL_I6;2&`G>*5Vjte*|&k{IQ4yq=nU*yqBF4Th|a(^ zlFS&$k|dLm6v-rH6UiiGh-g*<873M+Mu>)x%|t`U7DKNtV55d!gl#qSBJ6rYFT%DN zdJ(qW(2KAghF*m2H1r~D3_e~w9l%{iOJ9zG8%(ql=x%a4k?9e%_F%6CN;G>-lxS`= zXlQ_FZo=dx(_C*hTE>ihCQ37IF;ODF6?~SMEccrz5gag4A~*=zrPKUAY_tr1x0xuB zA2LxQza2A|n*8oCQ6e~OqC{{fXqQd%J7Tm9es`HDk$=QQiTo&LE;ISvZK6alZlXl+ z(a;IIakACrzzInZV|Z!8UY3Z|>DCcltnA-6wV~HDyZ}Bufa4^;4||>Y%C{@cln9Q0 zwIc%DUJH+hfq~L~9Kj0zSfa0* zWKea0vIU;~AkWP9IeGQ3^*YH~%x*TW26!(8O-9-EfcqeO40>;2OQFI4U36wk+?I=B zYE}eiN)AEx&F~EAr5gU*bCm~q1=n~buTpN@ zxwWyev(bPpjm@^bTelC742|vBL_N(djU73-AO|~hFk-?5Q!tuqcjaI#2UnQTl+fJL z*_3NH=U__?w&q}44z}lDI0tijbmsKv%<0jYli!(>-wskWgP`VGARTa7qyd{-^_Z(>>rKmY&$ literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 b/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..680c13085076a2f6c5a7e695935ec3f21cddb65f GIT binary patch literal 4928 zcmV-G6Tj?tPew8T0RR91024p}4gdfE04S^g021l|0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff b/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff new file mode 100644 index 0000000000000000000000000000000000000000..2432419f28936aff53ddfa2a732d027e6a6648fd GIT binary patch literal 16028 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 G0ssIW}E$%rmP@UWH#*azT!5^S^@#OiXi?5ka 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 MzaRX}iWL5T03x1QQ2+n{ literal 0 HcmV?d00001 diff --git a/assets/SUMMARY.html-BnXBmIpJ.js b/assets/SUMMARY.html-BnXBmIpJ.js new file mode 100644 index 00000000..7bbb4257 --- /dev/null +++ b/assets/SUMMARY.html-BnXBmIpJ.js @@ -0,0 +1 @@ +import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as t,e as n,w as e,r as m,o as d,b as E}from"./app-Ca-A-iaw.js";const i={};function u(A,l){const r=m("RouteLink");return d(),a("div",null,[l[12]||(l[12]=t("h1",{id:"summary",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#summary"},[t("span",null,"Summary")])],-1)),t("ul",null,[t("li",null,[n(r,{to:"/"},{default:e(()=>l[0]||(l[0]=[E("首页")])),_:1})]),t("li",null,[n(r,{to:"/md/"},{default:e(()=>l[1]||(l[1]=[E("阅读须知")])),_:1})]),t("li",null,[n(r,{to:"/md/01%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html"},{default:e(()=>l[2]||(l[2]=[E("基本概念")])),_:1})]),t("li",null,[n(r,{to:"/md/02%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B.html"},{default:e(()=>l[3]||(l[3]=[E("使用线程")])),_:1})]),t("li",null,[n(r,{to:"/md/03%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE.html"},{default:e(()=>l[4]||(l[4]=[E("共享数据")])),_:1})]),t("li",null,[n(r,{to:"/md/04%E5%90%8C%E6%AD%A5%E6%93%8D%E4%BD%9C.html"},{default:e(()=>l[5]||(l[5]=[E("同步操作")])),_:1})]),t("li",null,[n(r,{to:"/md/05%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C.html"},{default:e(()=>l[6]||(l[6]=[E("内存模型与原子操作")])),_:1})]),t("li",null,[n(r,{to:"/md/06%E5%8D%8F%E7%A8%8B.html"},{default:e(()=>l[7]||(l[7]=[E("协程")])),_:1})]),t("li",null,[n(r,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/"},{default:e(()=>l[8]||(l[8]=[E("详细分析")])),_:1}),t("ul",null,[t("li",null,[n(r,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:e(()=>l[9]||(l[9]=[t("code",null,"std::thread",-1),E(" 的构造-源码解析")])),_:1})]),t("li",null,[n(r,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/02scoped_lock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:e(()=>l[10]||(l[10]=[t("code",null,"std::scoped_lock",-1),E(" 的源码实现与解析")])),_:1})]),t("li",null,[n(r,{to:"/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/03async%E4%B8%8Efuture%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html"},{default:e(()=>l[11]||(l[11]=[t("code",null,"std::async",-1),E(" 与 "),t("code",null,"std::future",-1),E(" 源码解析")])),_:1})])])])])])}const p=o(i,[["render",u],["__file","SUMMARY.html.vue"]]),g=JSON.parse('{"path":"/SUMMARY.html","title":"Summary","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"createdTime":1710500650000,"updatedTime":1716699898000,"contributors":[{"name":"归故里","email":"3326284481@qq.com","commits":7},{"name":"mq白","email":"3326284481@qq.com","commits":2}]},"readingTime":{"minutes":0.51,"words":152},"filePathRelative":"SUMMARY.md","localizedDate":"2024年3月15日","excerpt":"\\n

    "}');export{p as comp,g as data}; diff --git a/assets/SearchResult-jru87sjv.js b/assets/SearchResult-jru87sjv.js new file mode 100644 index 00000000..9c70e358 --- /dev/null +++ b/assets/SearchResult-jru87sjv.js @@ -0,0 +1 @@ +import{u as U,g as se,h as te,i as M,j as le,P as ae,t as re,k as ue,l as L,m as k,n as ie,p as Y,q as t,s as oe,R as _,v as ne,x as ce,y as ve,C as Ee,z as de,A as he,B as pe,D as ye,E as me,F as Ae,G as Be,H as $,I as j,J as ge,K as D,L as fe}from"./app-Ca-A-iaw.js";const He=["/","/SUMMARY.html","/homework/","/md/01%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html","/md/02%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B.html","/md/03%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE.html","/md/04%E5%90%8C%E6%AD%A5%E6%93%8D%E4%BD%9C.html","/md/05%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C.html","/md/06%E5%8D%8F%E7%A8%8B.html","/md/","/image/%E6%8D%90%E8%B5%A0/","/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/02scoped_lock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/03async%E4%B8%8Efuture%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html","/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/04%E7%BA%BF%E7%A8%8B%E6%B1%A0.html","/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/","/404.html","/image/"],Re="SEARCH_PRO_QUERY_HISTORY",m=U(Re,[]),ke=()=>{const{queryHistoryCount:l}=D,a=l>0;return{enabled:a,queryHistory:m,addQueryHistory:r=>{a&&(m.value=Array.from(new Set([r,...m.value.slice(0,l-1)])))},removeQueryHistory:r=>{m.value=[...m.value.slice(0,r),...m.value.slice(r+1)]}}},b=l=>He[l.id]+("anchor"in l?`#${l.anchor}`:""),De="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:I}=D,A=U(De,[]),Fe=()=>{const l=I>0;return{enabled:l,resultHistory:A,addResultHistory:a=>{if(l){const r={link:b(a),display:a.display};"header"in a&&(r.header=a.header),A.value=[r,...A.value.slice(0,I-1)]}},removeResultHistory:a=>{A.value=[...A.value.slice(0,a),...A.value.slice(a+1)]}}},we=l=>{const a=Ee(),r=M(),F=de(),i=L(0),f=k(()=>i.value>0),h=he([]);return pe(()=>{const{search:p,terminate:w}=ye(),B=ge(c=>{const g=c.join(" "),{searchFilter:C=d=>d,splitWord:Q,suggestionsFilter:P,...y}=a.value;g?(i.value+=1,p(c.join(" "),r.value,y).then(d=>C(d,g,r.value,F.value)).then(d=>{i.value-=1,h.value=d}).catch(d=>{console.warn(d),i.value-=1,i.value||(h.value=[])})):h.value=[]},D.searchDelay-D.suggestDelay);Y([l,r],([c])=>B(c),{immediate:!0}),me(()=>{w()})}),{isSearching:f,results:h}};var Qe=se({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(l,{emit:a}){const r=te(),F=M(),i=le(ae),{enabled:f,addQueryHistory:h,queryHistory:p,removeQueryHistory:w}=ke(),{enabled:B,resultHistory:c,addResultHistory:g,removeResultHistory:C}=Fe(),Q=f||B,P=re(l,"queries"),{results:y,isSearching:d}=we(P),u=ue({isQuery:!0,index:0}),v=L(0),E=L(0),O=k(()=>Q&&(p.value.length>0||c.value.length>0)),q=k(()=>y.value.length>0),x=k(()=>y.value[v.value]||null),z=()=>{const{isQuery:e,index:s}=u;s===0?(u.isQuery=!e,u.index=e?c.value.length-1:p.value.length-1):u.index=s-1},G=()=>{const{isQuery:e,index:s}=u;s===(e?p.value.length-1:c.value.length-1)?(u.isQuery=!e,u.index=0):u.index=s+1},J=()=>{v.value=v.value>0?v.value-1:y.value.length-1,E.value=x.value.contents.length-1},K=()=>{v.value=v.value{E.value{E.value>0?E.value-=1:J()},S=e=>e.map(s=>fe(s)?s:t(s[0],s[1])),W=e=>{if(e.type==="customField"){const s=Ae[e.index]||"$content",[o,R=""]=Be(s)?s[F.value].split("$content"):s.split("$content");return e.display.map(n=>t("div",S([o,...n,R])))}return e.display.map(s=>t("div",S(s)))},H=()=>{v.value=0,E.value=0,a("updateQuery",""),a("close")},X=()=>f?t("ul",{class:"search-pro-result-list"},t("li",{class:"search-pro-result-list-item"},[t("div",{class:"search-pro-result-title"},i.value.queryHistory),p.value.map((e,s)=>t("div",{class:["search-pro-result-item",{active:u.isQuery&&u.index===s}],onClick:()=>{a("updateQuery",e)}},[t($,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},e),t("button",{class:"search-pro-remove-icon",innerHTML:j,onClick:o=>{o.preventDefault(),o.stopPropagation(),w(s)}})]))])):null,Z=()=>B?t("ul",{class:"search-pro-result-list"},t("li",{class:"search-pro-result-list-item"},[t("div",{class:"search-pro-result-title"},i.value.resultHistory),c.value.map((e,s)=>t(_,{to:e.link,class:["search-pro-result-item",{active:!u.isQuery&&u.index===s}],onClick:()=>{H()}},()=>[t($,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},[e.header?t("div",{class:"content-header"},e.header):null,t("div",e.display.map(o=>S(o)).flat())]),t("button",{class:"search-pro-remove-icon",innerHTML:j,onClick:o=>{o.preventDefault(),o.stopPropagation(),C(s)}})]))])):null;return ie("keydown",e=>{if(l.isFocusing){if(q.value){if(e.key==="ArrowUp")N();else if(e.key==="ArrowDown")V();else if(e.key==="Enter"){const s=x.value.contents[E.value];h(l.queries.join(" ")),g(s),r.push(b(s)),H()}}else if(B){if(e.key==="ArrowUp")z();else if(e.key==="ArrowDown")G();else if(e.key==="Enter"){const{index:s}=u;u.isQuery?(a("updateQuery",p.value[s]),e.preventDefault()):(r.push(c.value[s].link),H())}}}}),Y([v,E],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>t("div",{class:["search-pro-result-wrapper",{empty:l.queries.length?!q.value:!O.value}],id:"search-pro-results"},l.queries.length?d.value?t(oe,{hint:i.value.searching}):q.value?t("ul",{class:"search-pro-result-list"},y.value.map(({title:e,contents:s},o)=>{const R=v.value===o;return t("li",{class:["search-pro-result-list-item",{active:R}]},[t("div",{class:"search-pro-result-title"},e||i.value.defaultTitle),s.map((n,ee)=>{const T=R&&E.value===ee;return t(_,{to:b(n),class:["search-pro-result-item",{active:T,"aria-selected":T}],onClick:()=>{h(l.queries.join(" ")),g(n),H()}},()=>[n.type==="text"?null:t(n.type==="title"?ne:n.type==="heading"?ce:ve,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},[n.type==="text"&&n.header?t("div",{class:"content-header"},n.header):null,t("div",W(n))])])})])})):i.value.emptyResult:Q?O.value?[X(),Z()]:i.value.emptyHistory:i.value.emptyResult)}});export{Qe as default}; diff --git a/assets/Tableau10-B-NsZVaP.js b/assets/Tableau10-B-NsZVaP.js new file mode 100644 index 00000000..4223ec34 --- /dev/null +++ b/assets/Tableau10-B-NsZVaP.js @@ -0,0 +1 @@ +function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;ai.map(i=>d[i]); +/** +* @vue/shared v3.5.10 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Ll(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Rn=[],Lt=()=>{},nf=()=>!1,Er=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ol=e=>e.startsWith("onUpdate:"),Pe=Object.assign,$l=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},rf=Object.prototype.hasOwnProperty,ie=(e,t)=>rf.call(e,t),te=Array.isArray,rr=e=>go(e)==="[object Map]",of=e=>go(e)==="[object Set]",ne=e=>typeof e=="function",Le=e=>typeof e=="string",Un=e=>typeof e=="symbol",Ee=e=>e!==null&&typeof e=="object",ti=e=>(Ee(e)||ne(e))&&ne(e.then)&&ne(e.catch),lf=Object.prototype.toString,go=e=>lf.call(e),sf=e=>go(e).slice(8,-1),af=e=>go(e)==="[object Object]",Rl=e=>Le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mn=Ll(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},cf=/-(\w)/g,Ye=bo(e=>e.replace(cf,(t,n)=>n?n.toUpperCase():"")),uf=/\B([A-Z])/g,wn=bo(e=>e.replace(uf,"-$1").toLowerCase()),Cr=bo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Lo=bo(e=>e?`on${Cr(e)}`:""),en=(e,t)=>!Object.is(e,t),Oo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ff=e=>{const t=parseFloat(e);return isNaN(t)?e:t},df=e=>{const t=Le(e)?Number(e):NaN;return isNaN(t)?e:t};let Ls;const ri=()=>Ls||(Ls=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ml(e){if(te(e)){const t={};for(let n=0;n{if(n){const r=n.split(hf);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Il(e){let t="";if(Le(e))t=e;else if(te(e))for(let n=0;n0)return;let e;for(;Ln;){let t=Ln,n;for(;t;)t.flags&1||(t.flags&=-9),t=t.next;for(t=Ln,Ln=void 0;t;){if(n=t.next,t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function ci(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ui(e){let t,n=e.depsTail,r=n;for(;r;){const o=r.prevDep;r.version===-1?(r===n&&(n=o),Bl(r),wf(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}e.deps=t,e.depsTail=n}function ll(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(fi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function fi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ur))return;e.globalVersion=ur;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!ll(e)){e.flags&=-3;return}const n=ge,r=vt;ge=e,vt=!0;try{ci(e);const o=e.fn(e._value);(t.version===0||en(o,e._value))&&(e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ge=n,vt=r,ui(e),e.flags&=-3}}function Bl(e,t=!1){const{dep:n,prevSub:r,nextSub:o}=e;if(r&&(r.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r),!n.subs&&n.computed){n.computed.flags&=-5;for(let l=n.computed.deps;l;l=l.nextDep)Bl(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function wf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let vt=!0;const di=[];function nn(){di.push(vt),vt=!1}function rn(){const e=di.pop();vt=e===void 0?!0:e}function Os(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ge;ge=void 0;try{t()}finally{ge=n}}}let ur=0;class _f{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class yo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.target=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!ge||!vt||ge===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ge)n=this.activeLink=new _f(ge,this),ge.deps?(n.prevDep=ge.depsTail,ge.depsTail.nextDep=n,ge.depsTail=n):ge.deps=ge.depsTail=n,pi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ge.depsTail,n.nextDep=void 0,ge.depsTail.nextDep=n,ge.depsTail=n,ge.deps===n&&(ge.deps=r)}return n}trigger(t){this.version++,ur++,this.notify(t)}notify(t){Nl();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Fl()}}}function pi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)pi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ro=new WeakMap,hn=Symbol(""),sl=Symbol(""),fr=Symbol("");function Be(e,t,n){if(vt&&ge){let r=ro.get(e);r||ro.set(e,r=new Map);let o=r.get(n);o||(r.set(n,o=new yo),o.target=e,o.map=r,o.key=n),o.track()}}function Nt(e,t,n,r,o,l){const s=ro.get(e);if(!s){ur++;return}const a=i=>{i&&i.trigger()};if(Nl(),t==="clear")s.forEach(a);else{const i=te(e),c=i&&Rl(n);if(i&&n==="length"){const f=Number(r);s.forEach((d,p)=>{(p==="length"||p===fr||!Un(p)&&p>=f)&&a(d)})}else switch(n!==void 0&&a(s.get(n)),c&&a(s.get(fr)),t){case"add":i?c&&a(s.get("length")):(a(s.get(hn)),rr(e)&&a(s.get(sl)));break;case"delete":i||(a(s.get(hn)),rr(e)&&a(s.get(sl)));break;case"set":rr(e)&&a(s.get(hn));break}}Fl()}function Ef(e,t){const n=ro.get(e);return n&&n.get(t)}function kn(e){const t=ae(e);return t===e?t:(Be(t,"iterate",fr),mt(e)?t:t.map(ze))}function Hl(e){return Be(e=ae(e),"iterate",fr),e}const Cf={__proto__:null,[Symbol.iterator](){return Ro(this,Symbol.iterator,ze)},concat(...e){return kn(this).concat(...e.map(t=>te(t)?kn(t):t))},entries(){return Ro(this,"entries",e=>(e[1]=ze(e[1]),e))},every(e,t){return $t(this,"every",e,t,void 0,arguments)},filter(e,t){return $t(this,"filter",e,t,n=>n.map(ze),arguments)},find(e,t){return $t(this,"find",e,t,ze,arguments)},findIndex(e,t){return $t(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $t(this,"findLast",e,t,ze,arguments)},findLastIndex(e,t){return $t(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $t(this,"forEach",e,t,void 0,arguments)},includes(...e){return Mo(this,"includes",e)},indexOf(...e){return Mo(this,"indexOf",e)},join(e){return kn(this).join(e)},lastIndexOf(...e){return Mo(this,"lastIndexOf",e)},map(e,t){return $t(this,"map",e,t,void 0,arguments)},pop(){return Jn(this,"pop")},push(...e){return Jn(this,"push",e)},reduce(e,...t){return $s(this,"reduce",e,t)},reduceRight(e,...t){return $s(this,"reduceRight",e,t)},shift(){return Jn(this,"shift")},some(e,t){return $t(this,"some",e,t,void 0,arguments)},splice(...e){return Jn(this,"splice",e)},toReversed(){return kn(this).toReversed()},toSorted(e){return kn(this).toSorted(e)},toSpliced(...e){return kn(this).toSpliced(...e)},unshift(...e){return Jn(this,"unshift",e)},values(){return Ro(this,"values",ze)}};function Ro(e,t,n){const r=Hl(e),o=r[t]();return r!==e&&!mt(e)&&(o._next=o.next,o.next=()=>{const l=o._next();return l.value&&(l.value=n(l.value)),l}),o}const Sf=Array.prototype;function $t(e,t,n,r,o,l){const s=Hl(e),a=s!==e&&!mt(e),i=s[t];if(i!==Sf[t]){const d=i.apply(e,l);return a?ze(d):d}let c=n;s!==e&&(a?c=function(d,p){return n.call(this,ze(d),p,e)}:n.length>2&&(c=function(d,p){return n.call(this,d,p,e)}));const f=i.call(s,c,r);return a&&o?o(f):f}function $s(e,t,n,r){const o=Hl(e);let l=n;return o!==e&&(mt(e)?n.length>3&&(l=function(s,a,i){return n.call(this,s,a,i,e)}):l=function(s,a,i){return n.call(this,s,ze(a),i,e)}),o[t](l,...r)}function Mo(e,t,n){const r=ae(e);Be(r,"iterate",fr);const o=r[t](...n);return(o===-1||o===!1)&&Wl(n[0])?(n[0]=ae(n[0]),r[t](...n)):o}function Jn(e,t,n=[]){nn(),Nl();const r=ae(e)[t].apply(e,n);return Fl(),rn(),r}const kf=Ll("__proto__,__v_isRef,__isVue"),hi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Un));function xf(e){Un(e)||(e=String(e));const t=ae(this);return Be(t,"has",e),t.hasOwnProperty(e)}class vi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const o=this._isReadonly,l=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return l;if(n==="__v_raw")return r===(o?l?Bf:yi:l?bi:gi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const s=te(t);if(!o){let i;if(s&&(i=Cf[n]))return i;if(n==="hasOwnProperty")return xf}const a=Reflect.get(t,n,Ae(t)?t:r);return(Un(n)?hi.has(n):kf(n))||(o||Be(t,"get",n),l)?a:Ae(a)?s&&Rl(n)?a:a.value:Ee(a)?o?_n(a):Sr(a):a}}class mi extends vi{constructor(t=!1){super(!1,t)}set(t,n,r,o){let l=t[n];if(!this._isShallow){const i=bn(l);if(!mt(r)&&!bn(r)&&(l=ae(l),r=ae(r)),!te(t)&&Ae(l)&&!Ae(r))return i?!1:(l.value=r,!0)}const s=te(t)&&Rl(n)?Number(n)e,wo=e=>Reflect.getPrototypeOf(e);function Fr(e,t,n=!1,r=!1){e=e.__v_raw;const o=ae(e),l=ae(t);n||(en(t,l)&&Be(o,"get",t),Be(o,"get",l));const{has:s}=wo(o),a=r?jl:n?Ul:ze;if(s.call(o,t))return a(e.get(t));if(s.call(o,l))return a(e.get(l));e!==o&&e.get(t)}function Br(e,t=!1){const n=this.__v_raw,r=ae(n),o=ae(e);return t||(en(e,o)&&Be(r,"has",e),Be(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Hr(e,t=!1){return e=e.__v_raw,!t&&Be(ae(e),"iterate",hn),Reflect.get(e,"size",e)}function Rs(e,t=!1){!t&&!mt(e)&&!bn(e)&&(e=ae(e));const n=ae(this);return wo(n).has.call(n,e)||(n.add(e),Nt(n,"add",e,e)),this}function Ms(e,t,n=!1){!n&&!mt(t)&&!bn(t)&&(t=ae(t));const r=ae(this),{has:o,get:l}=wo(r);let s=o.call(r,e);s||(e=ae(e),s=o.call(r,e));const a=l.call(r,e);return r.set(e,t),s?en(t,a)&&Nt(r,"set",e,t):Nt(r,"add",e,t),this}function Is(e){const t=ae(this),{has:n,get:r}=wo(t);let o=n.call(t,e);o||(e=ae(e),o=n.call(t,e)),r&&r.call(t,e);const l=t.delete(e);return o&&Nt(t,"delete",e,void 0),l}function Ds(){const e=ae(this),t=e.size!==0,n=e.clear();return t&&Nt(e,"clear",void 0,void 0),n}function jr(e,t){return function(r,o){const l=this,s=l.__v_raw,a=ae(s),i=t?jl:e?Ul:ze;return!e&&Be(a,"iterate",hn),s.forEach((c,f)=>r.call(o,i(c),i(f),l))}}function zr(e,t,n){return function(...r){const o=this.__v_raw,l=ae(o),s=rr(l),a=e==="entries"||e===Symbol.iterator&&s,i=e==="keys"&&s,c=o[e](...r),f=n?jl:t?Ul:ze;return!t&&Be(l,"iterate",i?sl:hn),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:a?[f(d[0]),f(d[1])]:f(d),done:p}},[Symbol.iterator](){return this}}}}function Vt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Of(){const e={get(l){return Fr(this,l)},get size(){return Hr(this)},has:Br,add:Rs,set:Ms,delete:Is,clear:Ds,forEach:jr(!1,!1)},t={get(l){return Fr(this,l,!1,!0)},get size(){return Hr(this)},has:Br,add(l){return Rs.call(this,l,!0)},set(l,s){return Ms.call(this,l,s,!0)},delete:Is,clear:Ds,forEach:jr(!1,!0)},n={get(l){return Fr(this,l,!0)},get size(){return Hr(this,!0)},has(l){return Br.call(this,l,!0)},add:Vt("add"),set:Vt("set"),delete:Vt("delete"),clear:Vt("clear"),forEach:jr(!0,!1)},r={get(l){return Fr(this,l,!0,!0)},get size(){return Hr(this,!0)},has(l){return Br.call(this,l,!0)},add:Vt("add"),set:Vt("set"),delete:Vt("delete"),clear:Vt("clear"),forEach:jr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(l=>{e[l]=zr(l,!1,!1),n[l]=zr(l,!0,!1),t[l]=zr(l,!1,!0),r[l]=zr(l,!0,!0)}),[e,n,t,r]}const[$f,Rf,Mf,If]=Of();function zl(e,t){const n=t?e?If:Mf:e?Rf:$f;return(r,o,l)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(ie(n,o)&&o in r?n:r,o,l)}const Df={get:zl(!1,!1)},Nf={get:zl(!1,!0)},Ff={get:zl(!0,!1)};const gi=new WeakMap,bi=new WeakMap,yi=new WeakMap,Bf=new WeakMap;function Hf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jf(e){return e.__v_skip||!Object.isExtensible(e)?0:Hf(sf(e))}function Sr(e){return bn(e)?e:Vl(e,!1,Af,Df,gi)}function wi(e){return Vl(e,!1,Lf,Nf,bi)}function _n(e){return Vl(e,!0,Pf,Ff,yi)}function Vl(e,t,n,r,o){if(!Ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=o.get(e);if(l)return l;const s=jf(e);if(s===0)return e;const a=new Proxy(e,s===2?r:n);return o.set(e,a),a}function In(e){return bn(e)?In(e.__v_raw):!!(e&&e.__v_isReactive)}function bn(e){return!!(e&&e.__v_isReadonly)}function mt(e){return!!(e&&e.__v_isShallow)}function Wl(e){return e?!!e.__v_raw:!1}function ae(e){const t=e&&e.__v_raw;return t?ae(t):e}function zf(e){return!ie(e,"__v_skip")&&Object.isExtensible(e)&&ni(e,"__v_skip",!0),e}const ze=e=>Ee(e)?Sr(e):e,Ul=e=>Ee(e)?_n(e):e;function Ae(e){return e?e.__v_isRef===!0:!1}function q(e){return _i(e,!1)}function Ce(e){return _i(e,!0)}function _i(e,t){return Ae(e)?e:new Vf(e,t)}class Vf{constructor(t,n){this.dep=new yo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ae(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||mt(t)||bn(t);t=r?t:ae(t),en(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function Xt(e){return Ae(e)?e.value:e}const Wf={get:(e,t,n)=>t==="__v_raw"?e:Xt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ae(o)&&!Ae(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Ei(e){return In(e)?e:new Proxy(e,Wf)}class Uf{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new yo,{get:r,set:o}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=o}get value(){return this._value=this._get()}set value(t){this._set(t)}}function ql(e){return new Uf(e)}class qf{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ef(ae(this._object),this._key)}}class Kf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function kr(e,t,n){return Ae(e)?e:ne(e)?new Kf(e):Ee(e)&&arguments.length>1?Gf(e,t,n):q(e)}function Gf(e,t,n){const r=e[t];return Ae(r)?r:new qf(e,t,n)}class Yf{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new yo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ur-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ge!==this)return ii(this),!0}get value(){const t=this.dep.track();return fi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Jf(e,t,n=!1){let r,o;return ne(e)?r=e:(r=e.get,o=e.set),new Yf(r,o,n)}const Vr={},oo=new WeakMap;let fn;function Qf(e,t=!1,n=fn){if(n){let r=oo.get(n);r||oo.set(n,r=[]),r.push(e)}}function Xf(e,t,n=be){const{immediate:r,deep:o,once:l,scheduler:s,augmentJob:a,call:i}=n,c=C=>o?C:mt(C)||o===!1||o===0?Qt(C,1):Qt(C);let f,d,p,h,b=!1,y=!1;if(Ae(e)?(d=()=>e.value,b=mt(e)):In(e)?(d=()=>c(e),b=!0):te(e)?(y=!0,b=e.some(C=>In(C)||mt(C)),d=()=>e.map(C=>{if(Ae(C))return C.value;if(In(C))return c(C);if(ne(C))return i?i(C,2):C()})):ne(e)?t?d=i?()=>i(e,2):e:d=()=>{if(p){nn();try{p()}finally{rn()}}const C=fn;fn=f;try{return i?i(e,3,[h]):e(h)}finally{fn=C}}:d=Lt,t&&o){const C=d,R=o===!0?1/0:o;d=()=>Qt(C(),R)}const _=Dl(),w=()=>{f.stop(),_&&$l(_.effects,f)};if(l&&t){const C=t;t=(...R)=>{C(...R),w()}}let E=y?new Array(e.length).fill(Vr):Vr;const g=C=>{if(!(!(f.flags&1)||!f.dirty&&!C))if(t){const R=f.run();if(o||b||(y?R.some((V,I)=>en(V,E[I])):en(R,E))){p&&p();const V=fn;fn=f;try{const I=[R,E===Vr?void 0:y&&E[0]===Vr?[]:E,h];i?i(t,3,I):t(...I),E=R}finally{fn=V}}}else f.run()};return a&&a(g),f=new si(d),f.scheduler=s?()=>s(g,!1):g,h=C=>Qf(C,!1,f),p=f.onStop=()=>{const C=oo.get(f);if(C){if(i)i(C,4);else for(const R of C)R();oo.delete(f)}},t?r?g(!0):E=f.run():s?s(g.bind(null,!0),!0):f.run(),w.pause=f.pause.bind(f),w.resume=f.resume.bind(f),w.stop=w,w}function Qt(e,t=1/0,n){if(t<=0||!Ee(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,Ae(e))Qt(e.value,t,n);else if(te(e))for(let r=0;r{Qt(r,t,n)});else if(af(e)){for(const r in e)Qt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Qt(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.10 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function xr(e,t,n,r){try{return r?e(...r):e()}catch(o){Tr(o,t,n)}}function bt(e,t,n,r){if(ne(e)){const o=xr(e,t,n,r);return o&&ti(o)&&o.catch(l=>{Tr(l,t,n)}),o}if(te(e)){const o=[];for(let l=0;l>>1,o=Ve[r],l=pr(o);l=pr(n)?Ve.push(e):Ve.splice(ed(t),0,e),e.flags|=1,Si()}}function Si(){!dr&&!al&&(al=!0,Kl=Ci.then(ki))}function td(e){te(e)?Dn.push(...e):Kt&&e.id===-1?Kt.splice(An+1,0,e):e.flags&1||(Dn.push(e),e.flags|=1),Si()}function Ns(e,t,n=dr?xt+1:0){for(;npr(n)-pr(r));if(Dn.length=0,Kt){Kt.push(...t);return}for(Kt=t,An=0;Ane.id==null?e.flags&2?-1:1/0:e.id;function ki(e){al=!1,dr=!0;try{for(xt=0;xt{r._d&&Ys(-1);const l=so(t);let s;try{s=e(...o)}finally{so(l),r._d&&Ys(1)}return s};return r._n=!0,r._c=!0,r._d=!0,r}function Tt(e,t,n,r){const o=e.dirs,l=t&&t.dirs;for(let s=0;se.__isTeleport,Gt=Symbol("_leaveCb"),Wr=Symbol("_enterCb");function Ai(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return de(()=>{e.isMounted=!0}),Di(()=>{e.isUnmounting=!0}),e}const lt=[Function,Array],Pi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:lt,onEnter:lt,onAfterEnter:lt,onEnterCancelled:lt,onBeforeLeave:lt,onLeave:lt,onAfterLeave:lt,onLeaveCancelled:lt,onBeforeAppear:lt,onAppear:lt,onAfterAppear:lt,onAppearCancelled:lt},Li=e=>{const t=e.subTree;return t.component?Li(t.component):t},od={name:"BaseTransition",props:Pi,setup(e,{slots:t}){const n=En(),r=Ai();return()=>{const o=t.default&&Yl(t.default(),!0);if(!o||!o.length)return;const l=Oi(o),s=ae(e),{mode:a}=s;if(r.isLeaving)return Io(l);const i=Fs(l);if(!i)return Io(l);let c=hr(i,s,r,n,p=>c=p);i.type!==We&&yn(i,c);const f=n.subTree,d=f&&Fs(f);if(d&&d.type!==We&&!dn(i,d)&&Li(n).type!==We){const p=hr(d,s,r,n);if(yn(d,p),a==="out-in"&&i.type!==We)return r.isLeaving=!0,p.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete p.afterLeave},Io(l);a==="in-out"&&i.type!==We&&(p.delayLeave=(h,b,y)=>{const _=$i(r,d);_[String(d.key)]=d,h[Gt]=()=>{b(),h[Gt]=void 0,delete c.delayedLeave},c.delayedLeave=y})}return l}}};function Oi(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==We){t=n;break}}return t}const ld=od;function $i(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hr(e,t,n,r,o){const{appear:l,mode:s,persisted:a=!1,onBeforeEnter:i,onEnter:c,onAfterEnter:f,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:b,onLeaveCancelled:y,onBeforeAppear:_,onAppear:w,onAfterAppear:E,onAppearCancelled:g}=t,C=String(e.key),R=$i(n,e),V=(N,x)=>{N&&bt(N,r,9,x)},I=(N,x)=>{const M=x[1];V(N,x),te(N)?N.every(P=>P.length<=1)&&M():N.length<=1&&M()},G={mode:s,persisted:a,beforeEnter(N){let x=i;if(!n.isMounted)if(l)x=_||i;else return;N[Gt]&&N[Gt](!0);const M=R[C];M&&dn(e,M)&&M.el[Gt]&&M.el[Gt](),V(x,[N])},enter(N){let x=c,M=f,P=d;if(!n.isMounted)if(l)x=w||c,M=E||f,P=g||d;else return;let Q=!1;const ce=N[Wr]=ve=>{Q||(Q=!0,ve?V(P,[N]):V(M,[N]),G.delayedLeave&&G.delayedLeave(),N[Wr]=void 0)};x?I(x,[N,ce]):ce()},leave(N,x){const M=String(e.key);if(N[Wr]&&N[Wr](!0),n.isUnmounting)return x();V(p,[N]);let P=!1;const Q=N[Gt]=ce=>{P||(P=!0,x(),ce?V(y,[N]):V(b,[N]),N[Gt]=void 0,R[M]===e&&delete R[M])};R[M]=e,h?I(h,[N,Q]):Q()},clone(N){const x=hr(N,t,n,r,o);return o&&o(x),x}};return G}function Io(e){if(Ar(e))return e=tn(e),e.children=null,e}function Fs(e){if(!Ar(e))return Ti(e.type)&&e.children?Oi(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ne(n.default))return n.default()}}function yn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,yn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yl(e,t=!1,n){let r=[],o=0;for(let l=0;l1)for(let l=0;lao(b,t&&(te(t)?t[y]:t),n,r,o));return}if(Nn(r)&&!o)return;const l=r.shapeFlag&4?ts(r.component):r.el,s=o?null:l,{i:a,r:i}=e,c=t&&t.r,f=a.refs===be?a.refs={}:a.refs,d=a.setupState,p=ae(d),h=d===be?()=>!1:b=>ie(p,b);if(c!=null&&c!==i&&(Le(c)?(f[c]=null,h(c)&&(d[c]=null)):Ae(c)&&(c.value=null)),ne(i))xr(i,a,12,[s,f]);else{const b=Le(i),y=Ae(i);if(b||y){const _=()=>{if(e.f){const w=b?h(i)?d[i]:f[i]:i.value;o?te(w)&&$l(w,l):te(w)?w.includes(l)||w.push(l):b?(f[i]=[l],h(i)&&(d[i]=f[i])):(i.value=[l],e.k&&(f[e.k]=i.value))}else b?(f[i]=s,h(i)&&(d[i]=s)):y&&(i.value=s,e.k&&(f[e.k]=s))};s?(_.id=-1,et(_,n)):_()}}}let Bs=!1;const xn=()=>{Bs||(console.error("Hydration completed but contains mismatches."),Bs=!0)},sd=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",ad=e=>e.namespaceURI.includes("MathML"),Ur=e=>{if(e.nodeType===1){if(sd(e))return"svg";if(ad(e))return"mathml"}},On=e=>e.nodeType===8;function id(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:l,parentNode:s,remove:a,insert:i,createComment:c}}=e,f=(g,C)=>{if(!C.hasChildNodes()){n(null,g,C),lo(),C._vnode=g;return}d(C.firstChild,g,null,null,null),lo(),C._vnode=g},d=(g,C,R,V,I,G=!1)=>{G=G||!!C.dynamicChildren;const N=On(g)&&g.data==="[",x=()=>y(g,C,R,V,I,N),{type:M,ref:P,shapeFlag:Q,patchFlag:ce}=C;let ve=g.nodeType;C.el=g,ce===-2&&(G=!1,C.dynamicChildren=null);let U=null;switch(M){case mn:ve!==3?C.children===""?(i(C.el=o(""),s(g),g),U=g):U=x():(g.data!==C.children&&(xn(),g.data=C.children),U=l(g));break;case We:E(g)?(U=l(g),w(C.el=g.content.firstChild,g,R)):ve!==8||N?U=x():U=l(g);break;case lr:if(N&&(g=l(g),ve=g.nodeType),ve===1||ve===3){U=g;const Z=!C.children.length;for(let K=0;K{G=G||!!C.dynamicChildren;const{type:N,props:x,patchFlag:M,shapeFlag:P,dirs:Q,transition:ce}=C,ve=N==="input"||N==="option";if(ve||M!==-1){Q&&Tt(C,null,R,"created");let U=!1;if(E(g)){U=Gi(V,ce)&&R&&R.vnode.props&&R.vnode.props.appear;const K=g.content.firstChild;U&&ce.beforeEnter(K),w(K,g,R),C.el=g=K}if(P&16&&!(x&&(x.innerHTML||x.textContent))){let K=h(g.firstChild,C,g,R,V,I,G);for(;K;){qr(g,1)||xn();const pe=K;K=K.nextSibling,a(pe)}}else if(P&8){let K=C.children;K[0]===` +`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(K=K.slice(1)),g.textContent!==K&&(qr(g,0)||xn(),g.textContent=C.children)}if(x){if(ve||!G||M&48){const K=g.tagName.includes("-");for(const pe in x)(ve&&(pe.endsWith("value")||pe==="indeterminate")||Er(pe)&&!Mn(pe)||pe[0]==="."||K)&&r(g,pe,null,x[pe],void 0,R)}else if(x.onClick)r(g,"onClick",null,x.onClick,void 0,R);else if(M&4&&In(x.style))for(const K in x.style)x.style[K]}let Z;(Z=x&&x.onVnodeBeforeMount)&&st(Z,R,C),Q&&Tt(C,null,R,"beforeMount"),((Z=x&&x.onVnodeMounted)||Q||U)&&tc(()=>{Z&&st(Z,R,C),U&&ce.enter(g),Q&&Tt(C,null,R,"mounted")},V)}return g.nextSibling},h=(g,C,R,V,I,G,N)=>{N=N||!!C.dynamicChildren;const x=C.children,M=x.length;for(let P=0;P{const{slotScopeIds:N}=C;N&&(I=I?I.concat(N):N);const x=s(g),M=h(l(g),C,x,R,V,I,G);return M&&On(M)&&M.data==="]"?l(C.anchor=M):(xn(),i(C.anchor=c("]"),x,M),M)},y=(g,C,R,V,I,G)=>{if(qr(g.parentElement,1)||xn(),C.el=null,G){const M=_(g);for(;;){const P=l(g);if(P&&P!==M)a(P);else break}}const N=l(g),x=s(g);return a(g),n(null,C,x,N,R,V,Ur(x),I),N},_=(g,C="[",R="]")=>{let V=0;for(;g;)if(g=l(g),g&&On(g)&&(g.data===C&&V++,g.data===R)){if(V===0)return l(g);V--}return g},w=(g,C,R)=>{const V=C.parentNode;V&&V.replaceChild(g,C);let I=R;for(;I;)I.vnode.el===C&&(I.vnode.el=I.subTree.el=g),I=I.parent},E=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[f,d]}const Hs="data-allow-mismatch",cd={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function qr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Hs);)e=e.parentElement;const n=e&&e.getAttribute(Hs);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(cd[t])}}function ud(e,t){if(On(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(On(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Ri(e){ne(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,hydrate:l,timeout:s,suspensible:a=!0,onError:i}=e;let c=null,f,d=0;const p=()=>(d++,c=null,h()),h=()=>{let b;return c||(b=c=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),i)return new Promise((_,w)=>{i(y,()=>_(p()),()=>w(y),d+1)});throw y}).then(y=>b!==c&&c?c:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),f=y,y)))};return W({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(b,y,_){const w=l?()=>{const E=l(_,g=>ud(b,g));E&&(y.bum||(y.bum=[])).push(E)}:_;f?w():h().then(()=>!y.isUnmounted&&w())},get __asyncResolved(){return f},setup(){const b=Ie;if(Jl(b),f)return()=>Do(f,b);const y=g=>{c=null,Tr(g,b,13,!r)};if(a&&b.suspense||Lr)return h().then(g=>()=>Do(g,b)).catch(g=>(y(g),()=>r?Te(r,{error:g}):null));const _=q(!1),w=q(),E=q(!!o);return o&&setTimeout(()=>{E.value=!1},o),s!=null&&setTimeout(()=>{if(!_.value&&!w.value){const g=new Error(`Async component timed out after ${s}ms.`);y(g),w.value=g}},s),h().then(()=>{_.value=!0,b.parent&&Ar(b.parent.vnode)&&b.parent.update()}).catch(g=>{y(g),w.value=g}),()=>{if(_.value&&f)return Do(f,b);if(w.value&&r)return Te(r,{error:w.value});if(n&&!E.value)return Te(n)}}})}function Do(e,t){const{ref:n,props:r,children:o,ce:l}=t.vnode,s=Te(e,r,o);return s.ref=n,s.ce=l,delete t.vnode.ce,s}const Ar=e=>e.type.__isKeepAlive;function fd(e,t){Mi(e,"a",t)}function dd(e,t){Mi(e,"da",t)}function Mi(e,t,n=Ie){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(_o(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Ar(o.parent.vnode)&&pd(r,t,n,o),o=o.parent}}function pd(e,t,n,r){const o=_o(t,e,r,!0);on(()=>{$l(r[t],o)},n)}function _o(e,t,n=Ie,r=!1){if(n){const o=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...s)=>{nn();const a=Pr(n),i=bt(t,n,e,s);return a(),rn(),i});return r?o.unshift(l):o.push(l),l}}const jt=e=>(t,n=Ie)=>{(!Lr||e==="sp")&&_o(e,(...r)=>t(...r),n)},hd=jt("bm"),de=jt("m"),vd=jt("bu"),Ii=jt("u"),Di=jt("bum"),on=jt("um"),md=jt("sp"),gd=jt("rtg"),bd=jt("rtc");function yd(e,t=Ie){_o("ec",e,t)}const wd="components";function gt(e,t){return Ed(wd,e,!0,t)||e}const _d=Symbol.for("v-ndc");function Ed(e,t,n=!0,r=!1){const o=ut||Ie;if(o){const l=o.type;{const a=ip(l,!1);if(a&&(a===t||a===Ye(t)||a===Cr(Ye(t))))return l}const s=js(o[e]||l[e],t)||js(o.appContext[e],t);return!s&&r?l:s}}function js(e,t){return e&&(e[t]||e[Ye(t)]||e[Cr(Ye(t))])}const il=e=>e?sc(e)?ts(e):il(e.parent):null,or=Pe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>il(e.parent),$root:e=>il(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ql(e),$forceUpdate:e=>e.f||(e.f=()=>{Gl(e.update)}),$nextTick:e=>e.n||(e.n=wt.bind(e.proxy)),$watch:e=>zd.bind(e)}),No=(e,t)=>e!==be&&!e.__isScriptSetup&&ie(e,t),Cd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:l,accessCache:s,type:a,appContext:i}=e;let c;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return l[t]}else{if(No(r,t))return s[t]=1,r[t];if(o!==be&&ie(o,t))return s[t]=2,o[t];if((c=e.propsOptions[0])&&ie(c,t))return s[t]=3,l[t];if(n!==be&&ie(n,t))return s[t]=4,n[t];cl&&(s[t]=0)}}const f=or[t];let d,p;if(f)return t==="$attrs"&&Be(e.attrs,"get",""),f(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(n!==be&&ie(n,t))return s[t]=4,n[t];if(p=i.config.globalProperties,ie(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:l}=e;return No(o,t)?(o[t]=n,!0):r!==be&&ie(r,t)?(r[t]=n,!0):ie(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:l}},s){let a;return!!n[s]||e!==be&&ie(e,s)||No(t,s)||(a=l[0])&&ie(a,s)||ie(r,s)||ie(or,s)||ie(o.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function zs(e){return te(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let cl=!0;function Sd(e){const t=Ql(e),n=e.proxy,r=e.ctx;cl=!1,t.beforeCreate&&Vs(t.beforeCreate,e,"bc");const{data:o,computed:l,methods:s,watch:a,provide:i,inject:c,created:f,beforeMount:d,mounted:p,beforeUpdate:h,updated:b,activated:y,deactivated:_,beforeDestroy:w,beforeUnmount:E,destroyed:g,unmounted:C,render:R,renderTracked:V,renderTriggered:I,errorCaptured:G,serverPrefetch:N,expose:x,inheritAttrs:M,components:P,directives:Q,filters:ce}=t;if(c&&kd(c,r,null),s)for(const Z in s){const K=s[Z];ne(K)&&(r[Z]=K.bind(n))}if(o){const Z=o.call(n,n);Ee(Z)&&(e.data=Sr(Z))}if(cl=!0,l)for(const Z in l){const K=l[Z],pe=ne(K)?K.bind(n,n):ne(K.get)?K.get.bind(n,n):Lt,Ct=!ne(K)&&ne(K.set)?K.set.bind(n):Lt,ot=k({get:pe,set:Ct});Object.defineProperty(r,Z,{enumerable:!0,configurable:!0,get:()=>ot.value,set:Me=>ot.value=Me})}if(a)for(const Z in a)Ni(a[Z],r,n,Z);if(i){const Z=ne(i)?i.call(n):i;Reflect.ownKeys(Z).forEach(K=>{vn(K,Z[K])})}f&&Vs(f,e,"c");function U(Z,K){te(K)?K.forEach(pe=>Z(pe.bind(n))):K&&Z(K.bind(n))}if(U(hd,d),U(de,p),U(vd,h),U(Ii,b),U(fd,y),U(dd,_),U(yd,G),U(bd,V),U(gd,I),U(Di,E),U(on,C),U(md,N),te(x))if(x.length){const Z=e.exposed||(e.exposed={});x.forEach(K=>{Object.defineProperty(Z,K,{get:()=>n[K],set:pe=>n[K]=pe})})}else e.exposed||(e.exposed={});R&&e.render===Lt&&(e.render=R),M!=null&&(e.inheritAttrs=M),P&&(e.components=P),Q&&(e.directives=Q),N&&Jl(e)}function kd(e,t,n=Lt){te(e)&&(e=ul(e));for(const r in e){const o=e[r];let l;Ee(o)?"default"in o?l=Se(o.from||r,o.default,!0):l=Se(o.from||r):l=Se(o),Ae(l)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:s=>l.value=s}):t[r]=l}}function Vs(e,t,n){bt(te(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ni(e,t,n,r){let o=r.includes(".")?Xi(n,r):()=>n[r];if(Le(e)){const l=t[e];ne(l)&&re(o,l)}else if(ne(e))re(o,e.bind(n));else if(Ee(e))if(te(e))e.forEach(l=>Ni(l,t,n,r));else{const l=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(l)&&re(o,l,e)}}function Ql(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:l,config:{optionMergeStrategies:s}}=e.appContext,a=l.get(t);let i;return a?i=a:!o.length&&!n&&!r?i=t:(i={},o.length&&o.forEach(c=>io(i,c,s,!0)),io(i,t,s)),Ee(t)&&l.set(t,i),i}function io(e,t,n,r=!1){const{mixins:o,extends:l}=t;l&&io(e,l,n,!0),o&&o.forEach(s=>io(e,s,n,!0));for(const s in t)if(!(r&&s==="expose")){const a=xd[s]||n&&n[s];e[s]=a?a(e[s],t[s]):t[s]}return e}const xd={data:Ws,props:Us,emits:Us,methods:er,computed:er,beforeCreate:He,created:He,beforeMount:He,mounted:He,beforeUpdate:He,updated:He,beforeDestroy:He,beforeUnmount:He,destroyed:He,unmounted:He,activated:He,deactivated:He,errorCaptured:He,serverPrefetch:He,components:er,directives:er,watch:Ad,provide:Ws,inject:Td};function Ws(e,t){return t?e?function(){return Pe(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function Td(e,t){return er(ul(e),ul(t))}function ul(e){if(te(e)){const t={};for(let n=0;n1)return n&&ne(t)?t.call(r&&r.proxy):t}}const Bi={},Hi=()=>Object.create(Bi),ji=e=>Object.getPrototypeOf(e)===Bi;function Od(e,t,n,r=!1){const o={},l=Hi();e.propsDefaults=Object.create(null),zi(e,t,o,l);for(const s in e.propsOptions[0])s in o||(o[s]=void 0);n?e.props=r?o:wi(o):e.type.props?e.props=o:e.props=l,e.attrs=l}function $d(e,t,n,r){const{props:o,attrs:l,vnode:{patchFlag:s}}=e,a=ae(o),[i]=e.propsOptions;let c=!1;if((r||s>0)&&!(s&16)){if(s&8){const f=e.vnode.dynamicProps;for(let d=0;d{i=!0;const[p,h]=Vi(d,t,!0);Pe(s,p),h&&a.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!l&&!i)return Ee(e)&&r.set(e,Rn),Rn;if(te(l))for(let f=0;fe[0]==="_"||e==="$stable",Xl=e=>te(e)?e.map(it):[it(e)],Md=(e,t,n)=>{if(t._n)return t;const r=nd((...o)=>Xl(t(...o)),n);return r._c=!1,r},Ui=(e,t,n)=>{const r=e._ctx;for(const o in e){if(Wi(o))continue;const l=e[o];if(ne(l))t[o]=Md(o,l,r);else if(l!=null){const s=Xl(l);t[o]=()=>s}}},qi=(e,t)=>{const n=Xl(t);e.slots.default=()=>n},Ki=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Id=(e,t,n)=>{const r=e.slots=Hi();if(e.vnode.shapeFlag&32){const o=t._;o?(Ki(r,t,n),n&&ni(r,"_",o,!0)):Ui(t,r)}else t&&qi(e,t)},Dd=(e,t,n)=>{const{vnode:r,slots:o}=e;let l=!0,s=be;if(r.shapeFlag&32){const a=t._;a?n&&a===1?l=!1:Ki(o,t,n):(l=!t.$stable,Ui(t,o)),s=t}else t&&(qi(e,t),s={default:1});if(l)for(const a in o)!Wi(a)&&s[a]==null&&delete o[a]},et=tc;function Nd(e){return Fd(e,id)}function Fd(e,t){const n=ri();n.__VUE__=!0;const{insert:r,remove:o,patchProp:l,createElement:s,createText:a,createComment:i,setText:c,setElementText:f,parentNode:d,nextSibling:p,setScopeId:h=Lt,insertStaticContent:b}=e,y=(v,m,S,L=null,A=null,O=null,H=void 0,F=null,D=!!m.dynamicChildren)=>{if(v===m)return;v&&!dn(v,m)&&(L=T(v),Me(v,A,O,!0),v=null),m.patchFlag===-2&&(D=!1,m.dynamicChildren=null);const{type:$,ref:X,shapeFlag:z}=m;switch($){case mn:_(v,m,S,L);break;case We:w(v,m,S,L);break;case lr:v==null&&E(m,S,L,H);break;case tt:P(v,m,S,L,A,O,H,F,D);break;default:z&1?R(v,m,S,L,A,O,H,F,D):z&6?Q(v,m,S,L,A,O,H,F,D):(z&64||z&128)&&$.process(v,m,S,L,A,O,H,F,D,Y)}X!=null&&A&&ao(X,v&&v.ref,O,m||v,!m)},_=(v,m,S,L)=>{if(v==null)r(m.el=a(m.children),S,L);else{const A=m.el=v.el;m.children!==v.children&&c(A,m.children)}},w=(v,m,S,L)=>{v==null?r(m.el=i(m.children||""),S,L):m.el=v.el},E=(v,m,S,L)=>{[v.el,v.anchor]=b(v.children,m,S,L,v.el,v.anchor)},g=({el:v,anchor:m},S,L)=>{let A;for(;v&&v!==m;)A=p(v),r(v,S,L),v=A;r(m,S,L)},C=({el:v,anchor:m})=>{let S;for(;v&&v!==m;)S=p(v),o(v),v=S;o(m)},R=(v,m,S,L,A,O,H,F,D)=>{m.type==="svg"?H="svg":m.type==="math"&&(H="mathml"),v==null?V(m,S,L,A,O,H,F,D):N(v,m,A,O,H,F,D)},V=(v,m,S,L,A,O,H,F)=>{let D,$;const{props:X,shapeFlag:z,transition:J,dirs:ee}=v;if(D=v.el=s(v.type,O,X&&X.is,X),z&8?f(D,v.children):z&16&&G(v.children,D,null,L,A,Fo(v,O),H,F),ee&&Tt(v,null,L,"created"),I(D,v,v.scopeId,H,L),X){for(const me in X)me!=="value"&&!Mn(me)&&l(D,me,null,X[me],O,L);"value"in X&&l(D,"value",null,X.value,O),($=X.onVnodeBeforeMount)&&st($,L,v)}ee&&Tt(v,null,L,"beforeMount");const oe=Gi(A,J);oe&&J.beforeEnter(D),r(D,m,S),(($=X&&X.onVnodeMounted)||oe||ee)&&et(()=>{$&&st($,L,v),oe&&J.enter(D),ee&&Tt(v,null,L,"mounted")},A)},I=(v,m,S,L,A)=>{if(S&&h(v,S),L)for(let O=0;O{for(let $=D;${const F=m.el=v.el;let{patchFlag:D,dynamicChildren:$,dirs:X}=m;D|=v.patchFlag&16;const z=v.props||be,J=m.props||be;let ee;if(S&&an(S,!1),(ee=J.onVnodeBeforeUpdate)&&st(ee,S,m,v),X&&Tt(m,v,S,"beforeUpdate"),S&&an(S,!0),(z.innerHTML&&J.innerHTML==null||z.textContent&&J.textContent==null)&&f(F,""),$?x(v.dynamicChildren,$,F,S,L,Fo(m,A),O):H||K(v,m,F,null,S,L,Fo(m,A),O,!1),D>0){if(D&16)M(F,z,J,S,A);else if(D&2&&z.class!==J.class&&l(F,"class",null,J.class,A),D&4&&l(F,"style",z.style,J.style,A),D&8){const oe=m.dynamicProps;for(let me=0;me{ee&&st(ee,S,m,v),X&&Tt(m,v,S,"updated")},L)},x=(v,m,S,L,A,O,H)=>{for(let F=0;F{if(m!==S){if(m!==be)for(const O in m)!Mn(O)&&!(O in S)&&l(v,O,m[O],null,A,L);for(const O in S){if(Mn(O))continue;const H=S[O],F=m[O];H!==F&&O!=="value"&&l(v,O,F,H,A,L)}"value"in S&&l(v,"value",m.value,S.value,A)}},P=(v,m,S,L,A,O,H,F,D)=>{const $=m.el=v?v.el:a(""),X=m.anchor=v?v.anchor:a("");let{patchFlag:z,dynamicChildren:J,slotScopeIds:ee}=m;ee&&(F=F?F.concat(ee):ee),v==null?(r($,S,L),r(X,S,L),G(m.children||[],S,X,A,O,H,F,D)):z>0&&z&64&&J&&v.dynamicChildren?(x(v.dynamicChildren,J,S,A,O,H,F),(m.key!=null||A&&m===A.subTree)&&Yi(v,m,!0)):K(v,m,S,X,A,O,H,F,D)},Q=(v,m,S,L,A,O,H,F,D)=>{m.slotScopeIds=F,v==null?m.shapeFlag&512?A.ctx.activate(m,S,L,H,D):ce(m,S,L,A,O,H,D):ve(v,m,D)},ce=(v,m,S,L,A,O,H)=>{const F=v.component=rp(v,L,A);if(Ar(v)&&(F.ctx.renderer=Y),op(F,!1,H),F.asyncDep){if(A&&A.registerDep(F,U,H),!v.el){const D=F.subTree=Te(We);w(null,D,m,S)}}else U(F,v,m,S,A,O,H)},ve=(v,m,S)=>{const L=m.component=v.component;if(Kd(v,m,S))if(L.asyncDep&&!L.asyncResolved){Z(L,m,S);return}else L.next=m,L.update();else m.el=v.el,L.vnode=m},U=(v,m,S,L,A,O,H)=>{const F=()=>{if(v.isMounted){let{next:z,bu:J,u:ee,parent:oe,vnode:me}=v;{const Xe=Ji(v);if(Xe){z&&(z.el=me.el,Z(v,z,H)),Xe.asyncDep.then(()=>{v.isUnmounted||F()});return}}let ue=z,Qe;an(v,!1),z?(z.el=me.el,Z(v,z,H)):z=me,J&&Oo(J),(Qe=z.props&&z.props.onVnodeBeforeUpdate)&&st(Qe,oe,z,me),an(v,!0);const Fe=Bo(v),dt=v.subTree;v.subTree=Fe,y(dt,Fe,d(dt.el),T(dt),v,A,O),z.el=Fe.el,ue===null&&Gd(v,Fe.el),ee&&et(ee,A),(Qe=z.props&&z.props.onVnodeUpdated)&&et(()=>st(Qe,oe,z,me),A)}else{let z;const{el:J,props:ee}=m,{bm:oe,m:me,parent:ue,root:Qe,type:Fe}=v,dt=Nn(m);if(an(v,!1),oe&&Oo(oe),!dt&&(z=ee&&ee.onVnodeBeforeMount)&&st(z,ue,m),an(v,!0),J&&he){const Xe=()=>{v.subTree=Bo(v),he(J,v.subTree,v,A,null)};dt&&Fe.__asyncHydrate?Fe.__asyncHydrate(J,v,Xe):Xe()}else{Qe.ce&&Qe.ce._injectChildStyle(Fe);const Xe=v.subTree=Bo(v);y(null,Xe,S,L,v,A,O),m.el=Xe.el}if(me&&et(me,A),!dt&&(z=ee&&ee.onVnodeMounted)){const Xe=m;et(()=>st(z,ue,Xe),A)}(m.shapeFlag&256||ue&&Nn(ue.vnode)&&ue.vnode.shapeFlag&256)&&v.a&&et(v.a,A),v.isMounted=!0,m=S=L=null}};v.scope.on();const D=v.effect=new si(F);v.scope.off();const $=v.update=D.run.bind(D),X=v.job=D.runIfDirty.bind(D);X.i=v,X.id=v.uid,D.scheduler=()=>Gl(X),an(v,!0),$()},Z=(v,m,S)=>{m.component=v;const L=v.vnode.props;v.vnode=m,v.next=null,$d(v,m.props,L,S),Dd(v,m.children,S),nn(),Ns(v),rn()},K=(v,m,S,L,A,O,H,F,D=!1)=>{const $=v&&v.children,X=v?v.shapeFlag:0,z=m.children,{patchFlag:J,shapeFlag:ee}=m;if(J>0){if(J&128){Ct($,z,S,L,A,O,H,F,D);return}else if(J&256){pe($,z,S,L,A,O,H,F,D);return}}ee&8?(X&16&&Ne($,A,O),z!==$&&f(S,z)):X&16?ee&16?Ct($,z,S,L,A,O,H,F,D):Ne($,A,O,!0):(X&8&&f(S,""),ee&16&&G(z,S,L,A,O,H,F,D))},pe=(v,m,S,L,A,O,H,F,D)=>{v=v||Rn,m=m||Rn;const $=v.length,X=m.length,z=Math.min($,X);let J;for(J=0;JX?Ne(v,A,O,!0,!1,z):G(m,S,L,A,O,H,F,D,z)},Ct=(v,m,S,L,A,O,H,F,D)=>{let $=0;const X=m.length;let z=v.length-1,J=X-1;for(;$<=z&&$<=J;){const ee=v[$],oe=m[$]=D?Yt(m[$]):it(m[$]);if(dn(ee,oe))y(ee,oe,S,null,A,O,H,F,D);else break;$++}for(;$<=z&&$<=J;){const ee=v[z],oe=m[J]=D?Yt(m[J]):it(m[J]);if(dn(ee,oe))y(ee,oe,S,null,A,O,H,F,D);else break;z--,J--}if($>z){if($<=J){const ee=J+1,oe=eeJ)for(;$<=z;)Me(v[$],A,O,!0),$++;else{const ee=$,oe=$,me=new Map;for($=oe;$<=J;$++){const Ze=m[$]=D?Yt(m[$]):it(m[$]);Ze.key!=null&&me.set(Ze.key,$)}let ue,Qe=0;const Fe=J-oe+1;let dt=!1,Xe=0;const Yn=new Array(Fe);for($=0;$=Fe){Me(Ze,A,O,!0);continue}let kt;if(Ze.key!=null)kt=me.get(Ze.key);else for(ue=oe;ue<=J;ue++)if(Yn[ue-oe]===0&&dn(Ze,m[ue])){kt=ue;break}kt===void 0?Me(Ze,A,O,!0):(Yn[kt-oe]=$+1,kt>=Xe?Xe=kt:dt=!0,y(Ze,m[kt],S,null,A,O,H,F,D),Qe++)}const As=dt?Bd(Yn):Rn;for(ue=As.length-1,$=Fe-1;$>=0;$--){const Ze=oe+$,kt=m[Ze],Ps=Ze+1{const{el:O,type:H,transition:F,children:D,shapeFlag:$}=v;if($&6){ot(v.component.subTree,m,S,L);return}if($&128){v.suspense.move(m,S,L);return}if($&64){H.move(v,m,S,Y);return}if(H===tt){r(O,m,S);for(let z=0;zF.enter(O),A);else{const{leave:z,delayLeave:J,afterLeave:ee}=F,oe=()=>r(O,m,S),me=()=>{z(O,()=>{oe(),ee&&ee()})};J?J(O,oe,me):me()}else r(O,m,S)},Me=(v,m,S,L=!1,A=!1)=>{const{type:O,props:H,ref:F,children:D,dynamicChildren:$,shapeFlag:X,patchFlag:z,dirs:J,cacheIndex:ee}=v;if(z===-2&&(A=!1),F!=null&&ao(F,null,S,v,!0),ee!=null&&(m.renderCache[ee]=void 0),X&256){m.ctx.deactivate(v);return}const oe=X&1&&J,me=!Nn(v);let ue;if(me&&(ue=H&&H.onVnodeBeforeUnmount)&&st(ue,m,v),X&6)St(v.component,S,L);else{if(X&128){v.suspense.unmount(S,L);return}oe&&Tt(v,null,m,"beforeUnmount"),X&64?v.type.remove(v,m,S,Y,L):$&&!$.hasOnce&&(O!==tt||z>0&&z&64)?Ne($,m,S,!1,!0):(O===tt&&z&384||!A&&X&16)&&Ne(D,m,S),L&&Je(v)}(me&&(ue=H&&H.onVnodeUnmounted)||oe)&&et(()=>{ue&&st(ue,m,v),oe&&Tt(v,null,m,"unmounted")},S)},Je=v=>{const{type:m,el:S,anchor:L,transition:A}=v;if(m===tt){Ot(S,L);return}if(m===lr){C(v);return}const O=()=>{o(S),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(v.shapeFlag&1&&A&&!A.persisted){const{leave:H,delayLeave:F}=A,D=()=>H(S,O);F?F(v.el,O,D):D()}else O()},Ot=(v,m)=>{let S;for(;v!==m;)S=p(v),o(v),v=S;o(m)},St=(v,m,S)=>{const{bum:L,scope:A,job:O,subTree:H,um:F,m:D,a:$}=v;Ks(D),Ks($),L&&Oo(L),A.stop(),O&&(O.flags|=8,Me(H,v,m,S)),F&&et(F,m),et(()=>{v.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&v.asyncDep&&!v.asyncResolved&&v.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},Ne=(v,m,S,L=!1,A=!1,O=0)=>{for(let H=O;H{if(v.shapeFlag&6)return T(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const m=p(v.anchor||v.el),S=m&&m[rd];return S?p(S):m};let j=!1;const B=(v,m,S)=>{v==null?m._vnode&&Me(m._vnode,null,null,!0):y(m._vnode||null,v,m,null,null,null,S),m._vnode=v,j||(j=!0,Ns(),lo(),j=!1)},Y={p:y,um:Me,m:ot,r:Je,mt:ce,mc:G,pc:K,pbc:x,n:T,o:e};let le,he;return t&&([le,he]=t(Y)),{render:B,hydrate:le,createApp:Ld(B,le)}}function Fo({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function an({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Gi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yi(e,t,n=!1){const r=e.children,o=t.children;if(te(r)&&te(o))for(let l=0;l>1,e[n[a]]0&&(t[r]=n[l-1]),n[l]=r)}}for(l=n.length,s=n[l-1];l-- >0;)n[l]=s,s=t[s];return n}function Ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ji(t)}function Ks(e){if(e)for(let t=0;tSe(Hd);function Qi(e,t){return Zl(e,null,t)}function re(e,t,n){return Zl(e,t,n)}function Zl(e,t,n=be){const{immediate:r,deep:o,flush:l,once:s}=n,a=Pe({},n);let i;if(Lr)if(l==="sync"){const p=jd();i=p.__watcherHandles||(p.__watcherHandles=[])}else if(!t||r)a.once=!0;else{const p=()=>{};return p.stop=Lt,p.resume=Lt,p.pause=Lt,p}const c=Ie;a.call=(p,h,b)=>bt(p,c,h,b);let f=!1;l==="post"?a.scheduler=p=>{et(p,c&&c.suspense)}:l!=="sync"&&(f=!0,a.scheduler=(p,h)=>{h?p():Gl(p)}),a.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const d=Xf(e,t,a);return i&&i.push(d),d}function zd(e,t,n){const r=this.proxy,o=Le(e)?e.includes(".")?Xi(r,e):()=>r[e]:e.bind(r,r);let l;ne(t)?l=t:(l=t.handler,n=t);const s=Pr(this),a=Zl(o,l.bind(r),n);return s(),a}function Xi(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ye(t)}Modifiers`]||e[`${wn(t)}Modifiers`];function Wd(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||be;let o=n;const l=t.startsWith("update:"),s=l&&Vd(r,t.slice(7));s&&(s.trim&&(o=n.map(f=>Le(f)?f.trim():f)),s.number&&(o=n.map(ff)));let a,i=r[a=Lo(t)]||r[a=Lo(Ye(t))];!i&&l&&(i=r[a=Lo(wn(t))]),i&&bt(i,e,6,o);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,bt(c,e,6,o)}}function Zi(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const l=e.emits;let s={},a=!1;if(!ne(e)){const i=c=>{const f=Zi(c,t,!0);f&&(a=!0,Pe(s,f))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!l&&!a?(Ee(e)&&r.set(e,null),null):(te(l)?l.forEach(i=>s[i]=null):Pe(s,l),Ee(e)&&r.set(e,s),s)}function Eo(e,t){return!e||!Er(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,wn(t))||ie(e,t))}function Bo(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[l],slots:s,attrs:a,emit:i,render:c,renderCache:f,props:d,data:p,setupState:h,ctx:b,inheritAttrs:y}=e,_=so(e);let w,E;try{if(n.shapeFlag&4){const C=o||r,R=C;w=it(c.call(R,C,f,d,h,p,b)),E=a}else{const C=t;w=it(C.length>1?C(d,{attrs:a,slots:s,emit:i}):C(d,null)),E=t.props?a:Ud(a)}}catch(C){sr.length=0,Tr(C,e,1),w=Te(We)}let g=w;if(E&&y!==!1){const C=Object.keys(E),{shapeFlag:R}=g;C.length&&R&7&&(l&&C.some(Ol)&&(E=qd(E,l)),g=tn(g,E,!1,!0))}return n.dirs&&(g=tn(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&yn(g,n.transition),w=g,so(_),w}const Ud=e=>{let t;for(const n in e)(n==="class"||n==="style"||Er(n))&&((t||(t={}))[n]=e[n]);return t},qd=(e,t)=>{const n={};for(const r in e)(!Ol(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Kd(e,t,n){const{props:r,children:o,component:l}=e,{props:s,children:a,patchFlag:i}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return r?Gs(r,s,c):!!s;if(i&8){const f=t.dynamicProps;for(let d=0;de.__isSuspense;function tc(e,t){t&&t.pendingBranch?te(e)?t.effects.push(...e):t.effects.push(e):td(e)}const tt=Symbol.for("v-fgt"),mn=Symbol.for("v-txt"),We=Symbol.for("v-cmt"),lr=Symbol.for("v-stc"),sr=[];let rt=null;function Yd(e=!1){sr.push(rt=e?null:[])}function Jd(){sr.pop(),rt=sr[sr.length-1]||null}let vr=1;function Ys(e){vr+=e,e<0&&rt&&(rt.hasOnce=!0)}function nc(e){return e.dynamicChildren=vr>0?rt||Rn:null,Jd(),vr>0&&rt&&rt.push(e),e}function v2(e,t,n,r,o,l){return nc(oc(e,t,n,r,o,l,!0))}function Qd(e,t,n,r,o){return nc(Te(e,t,n,r,o,!0))}function co(e){return e?e.__v_isVNode===!0:!1}function dn(e,t){return e.type===t.type&&e.key===t.key}const rc=({key:e})=>e??null,eo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Le(e)||Ae(e)||ne(e)?{i:ut,r:e,k:t,f:!!n}:e:null);function oc(e,t=null,n=null,r=0,o=null,l=e===tt?0:1,s=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rc(t),ref:t&&eo(t),scopeId:xi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ut};return a?(es(i,n),l&128&&e.normalize(i)):n&&(i.shapeFlag|=Le(n)?8:16),vr>0&&!s&&rt&&(i.patchFlag>0||l&6)&&i.patchFlag!==32&&rt.push(i),i}const Te=Xd;function Xd(e,t=null,n=null,r=0,o=null,l=!1){if((!e||e===_d)&&(e=We),co(e)){const a=tn(e,t,!0);return n&&es(a,n),vr>0&&!l&&rt&&(a.shapeFlag&6?rt[rt.indexOf(e)]=a:rt.push(a)),a.patchFlag=-2,a}if(cp(e)&&(e=e.__vccOpts),t){t=Zd(t);let{class:a,style:i}=t;a&&!Le(a)&&(t.class=Il(a)),Ee(i)&&(Wl(i)&&!te(i)&&(i=Pe({},i)),t.style=Ml(i))}const s=Le(e)?1:ec(e)?128:Ti(e)?64:Ee(e)?4:ne(e)?2:0;return oc(e,t,n,r,o,s,l,!0)}function Zd(e){return e?Wl(e)||ji(e)?Pe({},e):e:null}function tn(e,t,n=!1,r=!1){const{props:o,ref:l,patchFlag:s,children:a,transition:i}=e,c=t?ep(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&rc(c),ref:t&&t.ref?n&&l?te(l)?l.concat(eo(t)):[l,eo(t)]:eo(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==tt?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&tn(e.ssContent),ssFallback:e.ssFallback&&tn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&r&&yn(f,i.clone(f)),f}function lc(e=" ",t=0){return Te(mn,null,e,t)}function m2(e,t){const n=Te(lr,null,e);return n.staticCount=t,n}function g2(e="",t=!1){return t?(Yd(),Qd(We,null,e)):Te(We,null,e)}function it(e){return e==null||typeof e=="boolean"?Te(We):te(e)?Te(tt,null,e.slice()):co(e)?Yt(e):Te(mn,null,String(e))}function Yt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:tn(e)}function es(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(te(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),es(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!ji(t)?t._ctx=ut:o===3&&ut&&(ut.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:ut},n=32):(t=String(t),r&64?(n=16,t=[lc(t)]):n=8);e.children=t,e.shapeFlag|=n}function ep(...e){const t={};for(let n=0;nIe||ut;let uo,dl;{const e=ri(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),l=>{o.length>1?o.forEach(s=>s(l)):o[0](l)}};uo=t("__VUE_INSTANCE_SETTERS__",n=>Ie=n),dl=t("__VUE_SSR_SETTERS__",n=>Lr=n)}const Pr=e=>{const t=Ie;return uo(e),e.scope.on(),()=>{e.scope.off(),uo(t)}},Js=()=>{Ie&&Ie.scope.off(),uo(null)};function sc(e){return e.vnode.shapeFlag&4}let Lr=!1;function op(e,t=!1,n=!1){t&&dl(t);const{props:r,children:o}=e.vnode,l=sc(e);Od(e,r,l,t),Id(e,o,n);const s=l?lp(e,t):void 0;return t&&dl(!1),s}function lp(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cd);const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?ap(e):null,l=Pr(e);nn();const s=xr(r,e,0,[e.props,o]);if(rn(),l(),ti(s)){if(Nn(e)||Jl(e),s.then(Js,Js),t)return s.then(a=>{Qs(e,a,t)}).catch(a=>{Tr(a,e,0)});e.asyncDep=s}else Qs(e,s,t)}else ac(e,t)}function Qs(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ee(t)&&(e.setupState=Ei(t)),ac(e,n)}let Xs;function ac(e,t,n){const r=e.type;if(!e.render){if(!t&&Xs&&!r.render){const o=r.template||Ql(e).template;if(o){const{isCustomElement:l,compilerOptions:s}=e.appContext.config,{delimiters:a,compilerOptions:i}=r,c=Pe(Pe({isCustomElement:l,delimiters:a},s),i);r.render=Xs(o,c)}}e.render=r.render||Lt}{const o=Pr(e);nn();try{Sd(e)}finally{rn(),o()}}}const sp={get(e,t){return Be(e,"get",""),e[t]}};function ap(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,sp),slots:e.slots,emit:e.emit,expose:t}}function ts(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ei(zf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in or)return or[n](e)},has(t,n){return n in t||n in or}})):e.proxy}function ip(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function cp(e){return ne(e)&&"__vccOpts"in e}const k=(e,t)=>Jf(e,t,Lr);function u(e,t,n){const r=arguments.length;return r===2?Ee(t)&&!te(t)?co(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&co(n)&&(n=[n]),Te(e,t,n))}const up="3.5.10";/** +* @vue/runtime-dom v3.5.10 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let pl;const Zs=typeof window<"u"&&window.trustedTypes;if(Zs)try{pl=Zs.createPolicy("vue",{createHTML:e=>e})}catch{}const ic=pl?e=>pl.createHTML(e):e=>e,fp="http://www.w3.org/2000/svg",dp="http://www.w3.org/1998/Math/MathML",Dt=typeof document<"u"?document:null,ea=Dt&&Dt.createElement("template"),pp={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Dt.createElementNS(fp,e):t==="mathml"?Dt.createElementNS(dp,e):n?Dt.createElement(e,{is:n}):Dt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Dt.createTextNode(e),createComment:e=>Dt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Dt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,l){const s=n?n.previousSibling:t.lastChild;if(o&&(o===l||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===l||!(o=o.nextSibling)););else{ea.innerHTML=ic(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=ea.content;if(r==="svg"||r==="mathml"){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Wt="transition",Qn="animation",Hn=Symbol("_vtc"),cc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},uc=Pe({},Pi,cc),hp=e=>(e.displayName="Transition",e.props=uc,e),jn=hp((e,{slots:t})=>u(ld,fc(e),t)),cn=(e,t=[])=>{te(e)?e.forEach(n=>n(...t)):e&&e(...t)},ta=e=>e?te(e)?e.some(t=>t.length>1):e.length>1:!1;function fc(e){const t={};for(const P in e)P in cc||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=l,appearActiveClass:c=s,appearToClass:f=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,b=vp(o),y=b&&b[0],_=b&&b[1],{onBeforeEnter:w,onEnter:E,onEnterCancelled:g,onLeave:C,onLeaveCancelled:R,onBeforeAppear:V=w,onAppear:I=E,onAppearCancelled:G=g}=t,N=(P,Q,ce)=>{qt(P,Q?f:a),qt(P,Q?c:s),ce&&ce()},x=(P,Q)=>{P._isLeaving=!1,qt(P,d),qt(P,h),qt(P,p),Q&&Q()},M=P=>(Q,ce)=>{const ve=P?I:E,U=()=>N(Q,P,ce);cn(ve,[Q,U]),na(()=>{qt(Q,P?i:l),Mt(Q,P?f:a),ta(ve)||ra(Q,r,y,U)})};return Pe(t,{onBeforeEnter(P){cn(w,[P]),Mt(P,l),Mt(P,s)},onBeforeAppear(P){cn(V,[P]),Mt(P,i),Mt(P,c)},onEnter:M(!1),onAppear:M(!0),onLeave(P,Q){P._isLeaving=!0;const ce=()=>x(P,Q);Mt(P,d),Mt(P,p),pc(),na(()=>{P._isLeaving&&(qt(P,d),Mt(P,h),ta(C)||ra(P,r,_,ce))}),cn(C,[P,ce])},onEnterCancelled(P){N(P,!1),cn(g,[P])},onAppearCancelled(P){N(P,!0),cn(G,[P])},onLeaveCancelled(P){x(P),cn(R,[P])}})}function vp(e){if(e==null)return null;if(Ee(e))return[Ho(e.enter),Ho(e.leave)];{const t=Ho(e);return[t,t]}}function Ho(e){return df(e)}function Mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Hn]||(e[Hn]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Hn];n&&(n.delete(t),n.size||(e[Hn]=void 0))}function na(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let mp=0;function ra(e,t,n,r){const o=e._endId=++mp,l=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(l,n);const{type:s,timeout:a,propCount:i}=dc(e,t);if(!s)return r();const c=s+"end";let f=0;const d=()=>{e.removeEventListener(c,p),l()},p=h=>{h.target===e&&++f>=i&&d()};setTimeout(()=>{f(n[b]||"").split(", "),o=r(`${Wt}Delay`),l=r(`${Wt}Duration`),s=oa(o,l),a=r(`${Qn}Delay`),i=r(`${Qn}Duration`),c=oa(a,i);let f=null,d=0,p=0;t===Wt?s>0&&(f=Wt,d=s,p=l.length):t===Qn?c>0&&(f=Qn,d=c,p=i.length):(d=Math.max(s,c),f=d>0?s>c?Wt:Qn:null,p=f?f===Wt?l.length:i.length:0);const h=f===Wt&&/\b(transform|all)(,|$)/.test(r(`${Wt}Property`).toString());return{type:f,timeout:d,propCount:p,hasTransform:h}}function oa(e,t){for(;e.lengthla(n)+la(e[r])))}function la(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function pc(){return document.body.offsetHeight}function gp(e,t,n){const r=e[Hn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const sa=Symbol("_vod"),bp=Symbol("_vsh"),yp=Symbol(""),wp=/(^|;)\s*display\s*:/;function _p(e,t,n){const r=e.style,o=Le(n);let l=!1;if(n&&!o){if(t)if(Le(t))for(const s of t.split(";")){const a=s.slice(0,s.indexOf(":")).trim();n[a]==null&&to(r,a,"")}else for(const s in t)n[s]==null&&to(r,s,"");for(const s in n)s==="display"&&(l=!0),to(r,s,n[s])}else if(o){if(t!==n){const s=r[yp];s&&(n+=";"+s),r.cssText=n,l=wp.test(n)}}else t&&e.removeAttribute("style");sa in e&&(e[sa]=l?r.display:"",e[bp]&&(r.display="none"))}const aa=/\s*!important$/;function to(e,t,n){if(te(n))n.forEach(r=>to(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ep(e,t);aa.test(n)?e.setProperty(wn(r),n.replace(aa,""),"important"):e[r]=n}}const ia=["Webkit","Moz","ms"],jo={};function Ep(e,t){const n=jo[t];if(n)return n;let r=Ye(t);if(r!=="filter"&&r in e)return jo[t]=r;r=Cr(r);for(let o=0;ozo||(Tp.then(()=>zo=0),zo=Date.now());function Pp(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;bt(Lp(r,n.value),t,5,[r])};return n.value=e,n.attached=Ap(),n}function Lp(e,t){if(te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ha=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Op=(e,t,n,r,o,l)=>{const s=o==="svg";t==="class"?gp(e,r,s):t==="style"?_p(e,n,r):Er(t)?Ol(t)||kp(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$p(e,t,r,s))?(fa(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ua(e,t,r,s,l,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Le(r))?fa(e,Ye(t),r):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ua(e,t,r,s))};function $p(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ha(t)&&ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ha(t)&&Le(n)?!1:t in e}const hc=new WeakMap,vc=new WeakMap,fo=Symbol("_moveCb"),va=Symbol("_enterCb"),Rp=e=>(delete e.props.mode,e),Mp=Rp({name:"TransitionGroup",props:Pe({},uc,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=En(),r=Ai();let o,l;return Ii(()=>{if(!o.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!Bp(o[0].el,n.vnode.el,s))return;o.forEach(Dp),o.forEach(Np);const a=o.filter(Fp);pc(),a.forEach(i=>{const c=i.el,f=c.style;Mt(c,s),f.transform=f.webkitTransform=f.transitionDuration="";const d=c[fo]=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",d),c[fo]=null,qt(c,s))};c.addEventListener("transitionend",d)})}),()=>{const s=ae(e),a=fc(s);let i=s.tag||tt;if(o=[],l)for(let c=0;c{a.split(/\s+/).forEach(i=>i&&r.classList.remove(i))}),n.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";const l=t.nodeType===1?t:t.parentNode;l.appendChild(r);const{hasTransform:s}=dc(r);return l.removeChild(r),s}const Hp=Pe({patchProp:Op},pp);let Vo,ma=!1;function jp(){return Vo=ma?Vo:Nd(Hp),ma=!0,Vo}const zp=(...e)=>{const t=jp().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Wp(r);if(o)return n(o,!0,Vp(o))},t};function Vp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Wp(e){return Le(e)?document.querySelector(e):e}var Or=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),Up=/.md((\?|#).*)?$/,ns=(e,t="/")=>Or(e)||e.startsWith("/")&&!e.startsWith(t)&&!Up.test(e),$r=e=>/^(https?:)?\/\//.test(e),ga=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},qp="http://.",Kp=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return ga(new URL(`${n}/${e}`,qp).pathname)}return ga(e)},Gp=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const l=o.split("/").length-r.split("/").length;return l!==0?l:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Yp=/(#|\?)/,mc=e=>{const[t,...n]=e.split(Yp);return{pathname:t,hashAndQueries:n.join("")}},Jp=["link","meta","script","style","noscript","template"],Qp=["title","base"],Xp=([e,t,n])=>Qp.includes(e)?e:Jp.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Zp=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=Xp(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},eh=e=>e[0]==="/"?e:`/${e}`,gc=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,rs=e=>e[e.length-1]==="/"?e.slice(0,-1):e,bc=e=>e[0]==="/"?e.slice(1):e,th=e=>typeof e=="function",Co=e=>Object.prototype.toString.call(e)==="[object Object]",ke=e=>typeof e=="string";const nh="modulepreload",rh=function(e){return"/ModernCpp-ConcurrentProgramming-Tutorial/"+e},ba={},_e=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),s=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=Promise.all(n.map(a=>{if(a=rh(a),a in ba)return;ba[a]=!0;const i=a.endsWith(".css"),c=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const f=document.createElement("link");if(f.rel=i?"stylesheet":nh,i||(f.as="script",f.crossOrigin=""),f.href=a,s&&f.setAttribute("nonce",s),document.head.appendChild(f),i)return new Promise((d,p)=>{f.addEventListener("load",d),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})}))}return o.then(()=>t()).catch(l=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=l,window.dispatchEvent(s),!s.defaultPrevented)throw l})},oh=JSON.parse("{}"),lh=Object.fromEntries([["/",{loader:()=>_e(()=>import("./index.html-CumviD6U.js"),__vite__mapDeps([0,1])),meta:{t:"现代C++并发编程教程"}}],["/SUMMARY.html",{loader:()=>_e(()=>import("./SUMMARY.html-BnXBmIpJ.js"),__vite__mapDeps([2,1])),meta:{t:"Summary"}}],["/homework/",{loader:()=>_e(()=>import("./index.html-BHEgHCm0.js"),__vite__mapDeps([3,1])),meta:{t:"此处存放作业"}}],["/md/01%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html",{loader:()=>_e(()=>import("./01基本概念.html-BKokb-lV.js"),__vite__mapDeps([4,1])),meta:{t:"基本概念"}}],["/md/02%E4%BD%BF%E7%94%A8%E7%BA%BF%E7%A8%8B.html",{loader:()=>_e(()=>import("./02使用线程.html-CuDgfpeg.js"),__vite__mapDeps([5,1])),meta:{t:"使用线程"}}],["/md/03%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE.html",{loader:()=>_e(()=>import("./03共享数据.html-BLgsE6xw.js"),__vite__mapDeps([6,1])),meta:{t:"共享数据"}}],["/md/04%E5%90%8C%E6%AD%A5%E6%93%8D%E4%BD%9C.html",{loader:()=>_e(()=>import("./04同步操作.html-rJexZaMy.js"),__vite__mapDeps([7,1])),meta:{t:"同步操作"}}],["/md/05%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C.html",{loader:()=>_e(()=>import("./05内存模型与原子操作.html-QZXnSagT.js"),__vite__mapDeps([8,1])),meta:{t:"内存模型与原子操作"}}],["/md/06%E5%8D%8F%E7%A8%8B.html",{loader:()=>_e(()=>import("./06协程.html-f5RY1G-q.js"),__vite__mapDeps([9,1])),meta:{t:"协程"}}],["/md/",{loader:()=>_e(()=>import("./index.html-C6Z_qkjf.js"),__vite__mapDeps([10,1])),meta:{t:"阅读须知"}}],["/image/%E6%8D%90%E8%B5%A0/",{loader:()=>_e(()=>import("./index.html-BNiJ94F3.js"),__vite__mapDeps([11,1])),meta:{t:""}}],["/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/01thread%E7%9A%84%E6%9E%84%E9%80%A0%E4%B8%8E%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html",{loader:()=>_e(()=>import("./01thread的构造与源码解析.html-EFWzQ7p9.js"),__vite__mapDeps([12,1])),meta:{t:"std::thread 的构造-源码解析"}}],["/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/02scoped_lock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html",{loader:()=>_e(()=>import("./02scoped_lock源码解析.html-1I_9i2hp.js"),__vite__mapDeps([13,1])),meta:{t:"std::scoped_lock 的源码实现与解析"}}],["/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/03async%E4%B8%8Efuture%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.html",{loader:()=>_e(()=>import("./03async与future源码解析.html-Cuvtvbpc.js"),__vite__mapDeps([14,1])),meta:{t:"st::async 与 std::future 源码解析"}}],["/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/04%E7%BA%BF%E7%A8%8B%E6%B1%A0.html",{loader:()=>_e(()=>import("./04线程池.html-B8ceqDbR.js"),__vite__mapDeps([15,1])),meta:{t:"线程池"}}],["/md/%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90/",{loader:()=>_e(()=>import("./index.html-BFILG7Me.js"),__vite__mapDeps([16,1])),meta:{t:"详细分析"}}],["/404.html",{loader:()=>_e(()=>import("./404.html-C-h4i3I8.js"),__vite__mapDeps([17,1])),meta:{t:""}}],["/image/",{loader:()=>_e(()=>import("./index.html-BV8xYf6R.js"),__vite__mapDeps([18,1])),meta:{t:"Image"}}]]);/*! + * vue-router v4.4.5 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const Pn=typeof document<"u";function yc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function sh(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&yc(e.default)}const fe=Object.assign;function Wo(e,t){const n={};for(const r in t){const o=t[r];n[r]=yt(o)?o.map(e):e(o)}return n}const ar=()=>{},yt=Array.isArray,wc=/#/g,ah=/&/g,ih=/\//g,ch=/=/g,uh=/\?/g,_c=/\+/g,fh=/%5B/g,dh=/%5D/g,Ec=/%5E/g,ph=/%60/g,Cc=/%7B/g,hh=/%7C/g,Sc=/%7D/g,vh=/%20/g;function os(e){return encodeURI(""+e).replace(hh,"|").replace(fh,"[").replace(dh,"]")}function mh(e){return os(e).replace(Cc,"{").replace(Sc,"}").replace(Ec,"^")}function hl(e){return os(e).replace(_c,"%2B").replace(vh,"+").replace(wc,"%23").replace(ah,"%26").replace(ph,"`").replace(Cc,"{").replace(Sc,"}").replace(Ec,"^")}function gh(e){return hl(e).replace(ch,"%3D")}function bh(e){return os(e).replace(wc,"%23").replace(uh,"%3F")}function yh(e){return e==null?"":bh(e).replace(ih,"%2F")}function mr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const wh=/\/$/,_h=e=>e.replace(wh,"");function Uo(e,t,n="/"){let r,o={},l="",s="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),l=t.slice(i+1,a>-1?a:t.length),o=e(l)),a>-1&&(r=r||t.slice(0,a),s=t.slice(a,t.length)),r=kh(r??t,n),{fullPath:r+(l&&"?")+l+s,path:r,query:o,hash:mr(s)}}function Eh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ya(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ch(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&zn(t.matched[r],n.matched[o])&&kc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function zn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function kc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Sh(e[n],t[n]))return!1;return!0}function Sh(e,t){return yt(e)?wa(e,t):yt(t)?wa(t,e):e===t}function wa(e,t){return yt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function kh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let l=n.length-1,s,a;for(s=0;s1&&l--;else break;return n.slice(0,l).join("/")+"/"+r.slice(s).join("/")}const It={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var gr;(function(e){e.pop="pop",e.push="push"})(gr||(gr={}));var ir;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ir||(ir={}));function xh(e){if(!e)if(Pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),_h(e)}const Th=/^[^#]+#/;function Ah(e,t){return e.replace(Th,"#")+t}function Ph(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const So=()=>({left:window.scrollX,top:window.scrollY});function Lh(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Ph(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function _a(e,t){return(history.state?history.state.position-t:-1)+e}const vl=new Map;function Oh(e,t){vl.set(e,t)}function $h(e){const t=vl.get(e);return vl.delete(e),t}let Rh=()=>location.protocol+"//"+location.host;function xc(e,t){const{pathname:n,search:r,hash:o}=t,l=e.indexOf("#");if(l>-1){let a=o.includes(e.slice(l))?e.slice(l).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),ya(i,"")}return ya(n,e)+r+o}function Mh(e,t,n,r){let o=[],l=[],s=null;const a=({state:p})=>{const h=xc(e,location),b=n.value,y=t.value;let _=0;if(p){if(n.value=h,t.value=p,s&&s===b){s=null;return}_=y?p.position-y.position:0}else r(h);o.forEach(w=>{w(n.value,b,{delta:_,type:gr.pop,direction:_?_>0?ir.forward:ir.back:ir.unknown})})};function i(){s=n.value}function c(p){o.push(p);const h=()=>{const b=o.indexOf(p);b>-1&&o.splice(b,1)};return l.push(h),h}function f(){const{history:p}=window;p.state&&p.replaceState(fe({},p.state,{scroll:So()}),"")}function d(){for(const p of l)p();l=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:i,listen:c,destroy:d}}function Ea(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?So():null}}function Ih(e){const{history:t,location:n}=window,r={value:xc(e,n)},o={value:t.state};o.value||l(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(i,c,f){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+i:Rh()+e+i;try{t[f?"replaceState":"pushState"](c,"",p),o.value=c}catch(h){console.error(h),n[f?"replace":"assign"](p)}}function s(i,c){const f=fe({},t.state,Ea(o.value.back,i,o.value.forward,!0),c,{position:o.value.position});l(i,f,!0),r.value=i}function a(i,c){const f=fe({},o.value,t.state,{forward:i,scroll:So()});l(f.current,f,!0);const d=fe({},Ea(r.value,i,null),{position:f.position+1},c);l(i,d,!1),r.value=i}return{location:r,state:o,push:a,replace:s}}function Dh(e){e=xh(e);const t=Ih(e),n=Mh(e,t.state,t.location,t.replace);function r(l,s=!0){s||n.pauseListeners(),history.go(l)}const o=fe({location:"",base:e,go:r,createHref:Ah.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Nh(e){return typeof e=="string"||e&&typeof e=="object"}function Tc(e){return typeof e=="string"||typeof e=="symbol"}const Ac=Symbol("");var Ca;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Ca||(Ca={}));function Vn(e,t){return fe(new Error,{type:e,[Ac]:!0},t)}function Rt(e,t){return e instanceof Error&&Ac in e&&(t==null||!!(e.type&t))}const Sa="[^/]+?",Fh={sensitive:!1,strict:!1,start:!0,end:!0},Bh=/[.+*?^${}()[\]/\\]/g;function Hh(e,t){const n=fe({},Fh,t),r=[];let o=n.start?"^":"";const l=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(o+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Pc(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const zh={type:0,value:""},Vh=/[a-zA-Z0-9_]/;function Wh(e){if(!e)return[[]];if(e==="/")return[[zh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${c}": ${h}`)}let n=0,r=n;const o=[];let l;function s(){l&&o.push(l),l=[]}let a=0,i,c="",f="";function d(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:f,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=i}for(;a{s(g)}:ar}function s(d){if(Tc(d)){const p=r.get(d);p&&(r.delete(d),n.splice(n.indexOf(p),1),p.children.forEach(s),p.alias.forEach(s))}else{const p=n.indexOf(d);p>-1&&(n.splice(p,1),d.record.name&&r.delete(d.record.name),d.children.forEach(s),d.alias.forEach(s))}}function a(){return n}function i(d){const p=Yh(d,n);n.splice(p,0,d),d.record.name&&!Aa(d)&&r.set(d.record.name,d)}function c(d,p){let h,b={},y,_;if("name"in d&&d.name){if(h=r.get(d.name),!h)throw Vn(1,{location:d});_=h.record.name,b=fe(xa(p.params,h.keys.filter(g=>!g.optional).concat(h.parent?h.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),d.params&&xa(d.params,h.keys.map(g=>g.name))),y=h.stringify(b)}else if(d.path!=null)y=d.path,h=n.find(g=>g.re.test(y)),h&&(b=h.parse(y),_=h.record.name);else{if(h=p.name?r.get(p.name):n.find(g=>g.re.test(p.path)),!h)throw Vn(1,{location:d,currentLocation:p});_=h.record.name,b=fe({},p.params,d.params),y=h.stringify(b)}const w=[];let E=h;for(;E;)w.unshift(E.record),E=E.parent;return{name:_,path:y,params:b,matched:w,meta:Gh(w)}}e.forEach(d=>l(d));function f(){n.length=0,r.clear()}return{addRoute:l,resolve:c,removeRoute:s,clearRoutes:f,getRoutes:a,getRecordMatcher:o}}function xa(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Ta(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Kh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Kh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Aa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Gh(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function Pa(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Yh(e,t){let n=0,r=t.length;for(;n!==r;){const l=n+r>>1;Pc(e,t[l])<0?r=l:n=l+1}const o=Jh(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function Jh(e){let t=e;for(;t=t.parent;)if(Lc(t)&&Pc(e,t)===0)return t}function Lc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qh(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;ol&&hl(l)):[r&&hl(r)]).forEach(l=>{l!==void 0&&(t+=(t.length?"&":"")+n,l!=null&&(t+="="+l))})}return t}function Xh(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=yt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const Zh=Symbol(""),Oa=Symbol(""),ko=Symbol(""),ls=Symbol(""),ml=Symbol("");function Xn(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Jt(e,t,n,r,o,l=s=>s()){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((a,i)=>{const c=p=>{p===!1?i(Vn(4,{from:n,to:t})):p instanceof Error?i(p):Nh(p)?i(Vn(2,{from:t,to:p})):(s&&r.enterCallbacks[o]===s&&typeof p=="function"&&s.push(p),a())},f=l(()=>e.call(r&&r.instances[o],t,n,c));let d=Promise.resolve(f);e.length<3&&(d=d.then(c)),d.catch(p=>i(p))})}function qo(e,t,n,r,o=l=>l()){const l=[];for(const s of e)for(const a in s.components){let i=s.components[a];if(!(t!=="beforeRouteEnter"&&!s.instances[a]))if(yc(i)){const f=(i.__vccOpts||i)[t];f&&l.push(Jt(f,n,r,s,a,o))}else{let c=i();l.push(()=>c.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${a}" at "${s.path}"`);const d=sh(f)?f.default:f;s.mods[a]=f,s.components[a]=d;const h=(d.__vccOpts||d)[t];return h&&Jt(h,n,r,s,a,o)()}))}}return l}function $a(e){const t=Se(ko),n=Se(ls),r=k(()=>{const i=Xt(e.to);return t.resolve(i)}),o=k(()=>{const{matched:i}=r.value,{length:c}=i,f=i[c-1],d=n.matched;if(!f||!d.length)return-1;const p=d.findIndex(zn.bind(null,f));if(p>-1)return p;const h=Ra(i[c-2]);return c>1&&Ra(f)===h&&d[d.length-1].path!==h?d.findIndex(zn.bind(null,i[c-2])):p}),l=k(()=>o.value>-1&&rv(n.params,r.value.params)),s=k(()=>o.value>-1&&o.value===n.matched.length-1&&kc(n.params,r.value.params));function a(i={}){return nv(i)?t[Xt(e.replace)?"replace":"push"](Xt(e.to)).catch(ar):Promise.resolve()}return{route:r,href:k(()=>r.value.href),isActive:l,isExactActive:s,navigate:a}}const ev=W({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:$a,setup(e,{slots:t}){const n=Sr($a(e)),{options:r}=Se(ko),o=k(()=>({[Ma(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ma(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&t.default(n);return e.custom?l:u("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},l)}}}),tv=ev;function nv(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function rv(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!yt(o)||o.length!==r.length||r.some((l,s)=>l!==o[s]))return!1}return!0}function Ra(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ma=(e,t,n)=>e??t??n,ov=W({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Se(ml),o=k(()=>e.route||r.value),l=Se(Oa,0),s=k(()=>{let c=Xt(l);const{matched:f}=o.value;let d;for(;(d=f[c])&&!d.components;)c++;return c}),a=k(()=>o.value.matched[s.value]);vn(Oa,k(()=>s.value+1)),vn(Zh,a),vn(ml,o);const i=q();return re(()=>[i.value,a.value,e.name],([c,f,d],[p,h,b])=>{f&&(f.instances[d]=c,h&&h!==f&&c&&c===p&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),c&&f&&(!h||!zn(f,h)||!p)&&(f.enterCallbacks[d]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=o.value,f=e.name,d=a.value,p=d&&d.components[f];if(!p)return Ia(n.default,{Component:p,route:c});const h=d.props[f],b=h?h===!0?c.params:typeof h=="function"?h(c):h:null,_=u(p,fe({},b,t,{onVnodeUnmounted:w=>{w.component.isUnmounted&&(d.instances[f]=null)},ref:i}));return Ia(n.default,{Component:_,route:c})||_}}});function Ia(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lv=ov;function sv(e){const t=qh(e.routes,e),n=e.parseQuery||Qh,r=e.stringifyQuery||La,o=e.history,l=Xn(),s=Xn(),a=Xn(),i=Ce(It);let c=It;Pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wo.bind(null,T=>""+T),d=Wo.bind(null,yh),p=Wo.bind(null,mr);function h(T,j){let B,Y;return Tc(T)?(B=t.getRecordMatcher(T),Y=j):Y=T,t.addRoute(Y,B)}function b(T){const j=t.getRecordMatcher(T);j&&t.removeRoute(j)}function y(){return t.getRoutes().map(T=>T.record)}function _(T){return!!t.getRecordMatcher(T)}function w(T,j){if(j=fe({},j||i.value),typeof T=="string"){const m=Uo(n,T,j.path),S=t.resolve({path:m.path},j),L=o.createHref(m.fullPath);return fe(m,S,{params:p(S.params),hash:mr(m.hash),redirectedFrom:void 0,href:L})}let B;if(T.path!=null)B=fe({},T,{path:Uo(n,T.path,j.path).path});else{const m=fe({},T.params);for(const S in m)m[S]==null&&delete m[S];B=fe({},T,{params:d(m)}),j.params=d(j.params)}const Y=t.resolve(B,j),le=T.hash||"";Y.params=f(p(Y.params));const he=Eh(r,fe({},T,{hash:mh(le),path:Y.path})),v=o.createHref(he);return fe({fullPath:he,hash:le,query:r===La?Xh(T.query):T.query||{}},Y,{redirectedFrom:void 0,href:v})}function E(T){return typeof T=="string"?Uo(n,T,i.value.path):fe({},T)}function g(T,j){if(c!==T)return Vn(8,{from:j,to:T})}function C(T){return I(T)}function R(T){return C(fe(E(T),{replace:!0}))}function V(T){const j=T.matched[T.matched.length-1];if(j&&j.redirect){const{redirect:B}=j;let Y=typeof B=="function"?B(T):B;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=E(Y):{path:Y},Y.params={}),fe({query:T.query,hash:T.hash,params:Y.path!=null?{}:T.params},Y)}}function I(T,j){const B=c=w(T),Y=i.value,le=T.state,he=T.force,v=T.replace===!0,m=V(B);if(m)return I(fe(E(m),{state:typeof m=="object"?fe({},le,m.state):le,force:he,replace:v}),j||B);const S=B;S.redirectedFrom=j;let L;return!he&&Ch(r,Y,B)&&(L=Vn(16,{to:S,from:Y}),ot(Y,Y,!0,!1)),(L?Promise.resolve(L):x(S,Y)).catch(A=>Rt(A)?Rt(A,2)?A:Ct(A):K(A,S,Y)).then(A=>{if(A){if(Rt(A,2))return I(fe({replace:v},E(A.to),{state:typeof A.to=="object"?fe({},le,A.to.state):le,force:he}),j||S)}else A=P(S,Y,!0,v,le);return M(S,Y,A),A})}function G(T,j){const B=g(T,j);return B?Promise.reject(B):Promise.resolve()}function N(T){const j=Ot.values().next().value;return j&&typeof j.runWithContext=="function"?j.runWithContext(T):T()}function x(T,j){let B;const[Y,le,he]=av(T,j);B=qo(Y.reverse(),"beforeRouteLeave",T,j);for(const m of Y)m.leaveGuards.forEach(S=>{B.push(Jt(S,T,j))});const v=G.bind(null,T,j);return B.push(v),Ne(B).then(()=>{B=[];for(const m of l.list())B.push(Jt(m,T,j));return B.push(v),Ne(B)}).then(()=>{B=qo(le,"beforeRouteUpdate",T,j);for(const m of le)m.updateGuards.forEach(S=>{B.push(Jt(S,T,j))});return B.push(v),Ne(B)}).then(()=>{B=[];for(const m of he)if(m.beforeEnter)if(yt(m.beforeEnter))for(const S of m.beforeEnter)B.push(Jt(S,T,j));else B.push(Jt(m.beforeEnter,T,j));return B.push(v),Ne(B)}).then(()=>(T.matched.forEach(m=>m.enterCallbacks={}),B=qo(he,"beforeRouteEnter",T,j,N),B.push(v),Ne(B))).then(()=>{B=[];for(const m of s.list())B.push(Jt(m,T,j));return B.push(v),Ne(B)}).catch(m=>Rt(m,8)?m:Promise.reject(m))}function M(T,j,B){a.list().forEach(Y=>N(()=>Y(T,j,B)))}function P(T,j,B,Y,le){const he=g(T,j);if(he)return he;const v=j===It,m=Pn?history.state:{};B&&(Y||v?o.replace(T.fullPath,fe({scroll:v&&m&&m.scroll},le)):o.push(T.fullPath,le)),i.value=T,ot(T,j,B,v),Ct()}let Q;function ce(){Q||(Q=o.listen((T,j,B)=>{if(!St.listening)return;const Y=w(T),le=V(Y);if(le){I(fe(le,{replace:!0}),Y).catch(ar);return}c=Y;const he=i.value;Pn&&Oh(_a(he.fullPath,B.delta),So()),x(Y,he).catch(v=>Rt(v,12)?v:Rt(v,2)?(I(v.to,Y).then(m=>{Rt(m,20)&&!B.delta&&B.type===gr.pop&&o.go(-1,!1)}).catch(ar),Promise.reject()):(B.delta&&o.go(-B.delta,!1),K(v,Y,he))).then(v=>{v=v||P(Y,he,!1),v&&(B.delta&&!Rt(v,8)?o.go(-B.delta,!1):B.type===gr.pop&&Rt(v,20)&&o.go(-1,!1)),M(Y,he,v)}).catch(ar)}))}let ve=Xn(),U=Xn(),Z;function K(T,j,B){Ct(T);const Y=U.list();return Y.length?Y.forEach(le=>le(T,j,B)):console.error(T),Promise.reject(T)}function pe(){return Z&&i.value!==It?Promise.resolve():new Promise((T,j)=>{ve.add([T,j])})}function Ct(T){return Z||(Z=!T,ce(),ve.list().forEach(([j,B])=>T?B(T):j()),ve.reset()),T}function ot(T,j,B,Y){const{scrollBehavior:le}=e;if(!Pn||!le)return Promise.resolve();const he=!B&&$h(_a(T.fullPath,0))||(Y||!B)&&history.state&&history.state.scroll||null;return wt().then(()=>le(T,j,he)).then(v=>v&&Lh(v)).catch(v=>K(v,T,j))}const Me=T=>o.go(T);let Je;const Ot=new Set,St={currentRoute:i,listening:!0,addRoute:h,removeRoute:b,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:y,resolve:w,options:e,push:C,replace:R,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:l.add,beforeResolve:s.add,afterEach:a.add,onError:U.add,isReady:pe,install(T){const j=this;T.component("RouterLink",tv),T.component("RouterView",lv),T.config.globalProperties.$router=j,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>Xt(i)}),Pn&&!Je&&i.value===It&&(Je=!0,C(o.location).catch(le=>{}));const B={};for(const le in It)Object.defineProperty(B,le,{get:()=>i.value[le],enumerable:!0});T.provide(ko,j),T.provide(ls,wi(B)),T.provide(ml,i);const Y=T.unmount;Ot.add(T),T.unmount=function(){Ot.delete(T),Ot.size<1&&(c=It,Q&&Q(),Q=null,i.value=It,Je=!1,Z=!1),Y()}}};function Ne(T){return T.reduce((j,B)=>j.then(()=>N(B)),Promise.resolve())}return St}function av(e,t){const n=[],r=[],o=[],l=Math.max(t.matched.length,e.matched.length);for(let s=0;szn(c,a))?r.push(a):n.push(a));const i=e.matched[s];i&&(t.matched.find(c=>zn(c,i))||o.push(i))}return[n,r,o]}function qn(){return Se(ko)}function zt(e){return Se(ls)}var ss=Symbol(""),_t=()=>{const e=Se(ss);if(!e)throw new Error("useClientData() is called without provider.");return e},iv=()=>_t().pageComponent,$e=()=>_t().pageData,xe=()=>_t().pageFrontmatter,cv=()=>_t().pageHead,Oc=()=>_t().pageLang,uv=()=>_t().pageLayout,ln=()=>_t().routeLocale,fv=()=>_t().routePath,dv=()=>_t().routes,$c=()=>_t().siteData,xo=()=>_t().siteLocaleData,pv=Symbol(""),gl=Ce(oh),Bn=Ce(lh),Rc=(e,t)=>{const n=Kp(e,t);if(Bn.value[n])return n;const r=encodeURI(n);if(Bn.value[r])return r;const o=gl.value[n]||gl.value[r];return o||n},Bt=(e,t)=>{const{pathname:n,hashAndQueries:r}=mc(e),o=Rc(n,t),l=o+r;return Bn.value[o]?{...Bn.value[o],path:l,notFound:!1}:{...Bn.value["/404.html"],path:l,notFound:!0}},hv=(e,t)=>{const{pathname:n,hashAndQueries:r}=mc(e);return Rc(n,t)+r},vv=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},ht=W({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=qn(),r=zt(),o=k(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/ModernCpp-ConcurrentProgramming-Tutorial/${hv(e.to,r.path).substring(1)}`);return()=>{var l;return u("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(s={})=>{vv(s)&&n.push(e.to).catch()}},(l=t.default)==null?void 0:l.call(t))}}}),mv=W({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=kr(e,"config"),r=zt(),o=$c(),l=k(()=>Or(n.value.link)),s=k(()=>n.value.target||(l.value?"_blank":void 0)),a=k(()=>s.value==="_blank"),i=k(()=>!l.value&&!a.value),c=k(()=>n.value.rel||(a.value?"noopener noreferrer":null)),f=k(()=>n.value.ariaLabel??n.value.text),d=k(()=>{if(n.value.exact)return!1;const h=Object.keys(o.value.locales);return h.length?h.every(b=>b!==n.value.link):n.value.link!=="/"}),p=k(()=>i.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(r.path):d.value?r.path.startsWith(n.value.link):r.path===n.value.link:!1);return()=>{const{before:h,after:b,default:y}=t,_=(y==null?void 0:y(n.value))||[h==null?void 0:h(n.value),n.value.text,b==null?void 0:b(n.value)];return i.value?u(ht,{class:"auto-link",to:n.value.link,active:p.value,"aria-label":f.value},()=>_):u("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:c.value,target:s.value},_)}}}),To=W({name:"ClientOnly",setup(e,t){const n=q(!1);return de(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),Mc=W({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=iv(),n=k(()=>{if(!e.path)return t.value;const r=Bt(e.path);return Ri(()=>r.loader().then(({comp:o})=>o))});return()=>u(n.value)}}),gv="Layout",bv="en-US",un=Sr({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=ke(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return Zp(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||bv,resolvePageLayout:(e,t)=>{const n=ke(e.frontmatter.layout)?e.frontmatter.layout:gv;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Gp(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head??[]]}}}),Et=(e={})=>e,De=e=>$r(e)?e:`/ModernCpp-ConcurrentProgramming-Tutorial/${bc(e)}`;const yv=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Rr=e=>{const t=ln();return k(()=>e[t.value]??{})};var nt=Uint8Array,$n=Uint16Array,wv=Int32Array,Ic=new nt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Dc=new nt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),_v=new nt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Nc=function(e,t){for(var n=new $n(31),r=0;r<31;++r)n[r]=t+=1<>1|(we&21845)<<1;Ut=(Ut&52428)>>2|(Ut&13107)<<2,Ut=(Ut&61680)>>4|(Ut&3855)<<4,bl[we]=((Ut&65280)>>8|(Ut&255)<<8)>>1}var cr=function(e,t,n){for(var r=e.length,o=0,l=new $n(t);o>i]=c}else for(a=new $n(r),o=0;o>15-e[o]);return a},Mr=new nt(288);for(var we=0;we<144;++we)Mr[we]=8;for(var we=144;we<256;++we)Mr[we]=9;for(var we=256;we<280;++we)Mr[we]=7;for(var we=280;we<288;++we)Mr[we]=8;var Hc=new nt(32);for(var we=0;we<32;++we)Hc[we]=5;var kv=cr(Mr,9,1),xv=cr(Hc,5,1),Ko=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},pt=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},Go=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Tv=function(e){return(e+7)/8|0},jc=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new nt(e.subarray(t,n))},Av=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],at=function(e,t,n){var r=new Error(t||Av[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,at),!n)throw r;return r},Pv=function(e,t,n,r){var o=e.length,l=0;if(!o||t.f&&!t.l)return n||new nt(0);var s=!n,a=s||t.i!=2,i=t.i;s&&(n=new nt(o*3));var c=function(le){var he=n.length;if(le>he){var v=new nt(Math.max(he*2,le));v.set(n),n=v}},f=t.f||0,d=t.p||0,p=t.b||0,h=t.l,b=t.d,y=t.m,_=t.n,w=o*8;do{if(!h){f=pt(e,d,1);var E=pt(e,d+1,3);if(d+=3,E)if(E==1)h=kv,b=xv,y=9,_=5;else if(E==2){var V=pt(e,d,31)+257,I=pt(e,d+10,15)+4,G=V+pt(e,d+5,31)+1;d+=14;for(var N=new nt(G),x=new nt(19),M=0;M>4;if(g<16)N[M++]=g;else{var U=0,Z=0;for(g==16?(Z=3+pt(e,d,3),d+=2,U=N[M-1]):g==17?(Z=3+pt(e,d,7),d+=3):g==18&&(Z=11+pt(e,d,127),d+=7);Z--;)N[M++]=U}}var K=N.subarray(0,V),pe=N.subarray(V);y=Ko(K),_=Ko(pe),h=cr(K,y,1),b=cr(pe,_,1)}else at(1);else{var g=Tv(d)+4,C=e[g-4]|e[g-3]<<8,R=g+C;if(R>o){i&&at(0);break}a&&c(p+C),n.set(e.subarray(g,R),p),t.b=p+=C,t.p=d=R*8,t.f=f;continue}if(d>w){i&&at(0);break}}a&&c(p+131072);for(var Ct=(1<>4;if(d+=U&15,d>w){i&&at(0);break}if(U||at(2),Je<256)n[p++]=Je;else if(Je==256){Me=d,h=null;break}else{var Ot=Je-254;if(Je>264){var M=Je-257,St=Ic[M];Ot=pt(e,d,(1<>4;Ne||at(3),d+=Ne&15;var pe=Sv[T];if(T>3){var St=Dc[T];pe+=Go(e,d)&(1<w){i&&at(0);break}a&&c(p+131072);var j=p+Ot;if(p>4>7||(e[0]<<8|e[1])%31)&&at(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&at(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function $v(e,t){return Pv(e.subarray(Ov(e,t),-4),{i:2},t,t)}var yl=typeof TextDecoder<"u"&&new TextDecoder,Rv=0;try{yl.decode(Lv,{stream:!0}),Rv=1}catch{}var Mv=function(e){for(var t="",n=0;;){var r=e[n++],o=(r>127)+(r>223)+(r>239);if(n+o>e.length)return{s:t,r:jc(e,n-1)};o?o==3?(r=((r&15)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|e[n++]&63):t+=String.fromCharCode((r&15)<<12|(e[n++]&63)<<6|e[n++]&63):t+=String.fromCharCode(r)}};function Iv(e,t){{for(var n=new nt(e.length),r=0;r{const t=atob(e);return Dv($v(Iv(t)))},Ke=(e,t)=>{var r;const n=(r=(t==null?void 0:t._instance)||En())==null?void 0:r.appContext.components;return n?e in n||Ye(e)in n||Cr(Ye(e))in n:!1},zc=e=>new Promise(t=>setTimeout(t,e)),Nv=e=>typeof e<"u",Yo=e=>typeof e=="number",wl=Array.isArray,po=(e,t)=>ke(e)&&e.startsWith(t),Fv=(e,t)=>ke(e)&&e.endsWith(t),Bv=Object.entries,as=Object.keys,Hv=e=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},is=e=>po(e,"/"),Vc=({type:e="info",text:t="",vertical:n,color:r},{slots:o})=>{var l;return u("span",{class:["vp-badge",e,{diy:r}],style:{verticalAlign:n??!1,backgroundColor:r??!1}},((l=o.default)==null?void 0:l.call(o))??t)};Vc.displayName="Badge";var jv=W({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=k(()=>{const r=["font-icon icon"],o=`${e.icon}`;return r.push(o),r}),n=k(()=>{const r={};return e.color&&(r.color=e.color),e.size&&(r["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),as(r).length?r:null});return()=>e.icon?u("span",{key:e.icon,class:t.value,style:n.value}):null}});const zv=Et({enhance:({app:e})=>{Ke("Badge")||e.component("Badge",Vc),Ke("FontIcon")||e.component("FontIcon",jv)},setup:()=>{},rootComponents:[]}),Vv=Object.freeze(Object.defineProperty({__proto__:null,default:zv},Symbol.toStringTag,{value:"Module"}));function Cn(e){return Dl()?(li(e),!0):!1}function Ue(e){return typeof e=="function"?e():Xt(e)}const Ir=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Wv=e=>e!=null,Uv=Object.prototype.toString,qv=e=>Uv.call(e)==="[object Object]",Wn=()=>{},Da=Kv();function Kv(){var e,t;return Ir&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function cs(e,t){function n(...r){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(l)})}return n}const Wc=e=>e();function Gv(e,t={}){let n,r,o=Wn;const l=a=>{clearTimeout(a),o(),o=Wn};return a=>{const i=Ue(e),c=Ue(t.maxWait);return n&&l(n),i<=0||c!==void 0&&c<=0?(r&&(l(r),r=null),Promise.resolve(a())):new Promise((f,d)=>{o=t.rejectOnCancel?d:f,c&&!r&&(r=setTimeout(()=>{n&&l(n),r=null,f(a())},c)),n=setTimeout(()=>{r&&l(r),r=null,f(a())},i)})}}function Yv(...e){let t=0,n,r=!0,o=Wn,l,s,a,i,c;!Ae(e[0])&&typeof e[0]=="object"?{delay:s,trailing:a=!0,leading:i=!0,rejectOnCancel:c=!1}=e[0]:[s,a=!0,i=!0,c=!1]=e;const f=()=>{n&&(clearTimeout(n),n=void 0,o(),o=Wn)};return p=>{const h=Ue(s),b=Date.now()-t,y=()=>l=p();return f(),h<=0?(t=Date.now(),y()):(b>h&&(i||!r)?(t=Date.now(),y()):a&&(l=new Promise((_,w)=>{o=c?w:_,n=setTimeout(()=>{t=Date.now(),r=!0,_(y()),f()},Math.max(0,h-b))})),!i&&!n&&(n=setTimeout(()=>r=!0,h)),r=!1,l)}}function Jv(e=Wc){const t=q(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...l)=>{t.value&&e(...l)};return{isActive:_n(t),pause:n,resume:r,eventFilter:o}}function Qv(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Xv(e){return En()}function Zv(...e){if(e.length!==1)return kr(...e);const t=e[0];return typeof t=="function"?_n(ql(()=>({get:t,set:Wn}))):q(t)}function us(e,t=200,n={}){return cs(Gv(t,n),e)}function e1(e,t=200,n=!1,r=!0,o=!1){return cs(Yv(t,n,r,o),e)}function t1(e,t,n={}){const{eventFilter:r=Wc,...o}=n;return re(e,cs(r,t),o)}function n1(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:l,pause:s,resume:a,isActive:i}=Jv(r);return{stop:t1(e,t,{...o,eventFilter:l}),pause:s,resume:a,isActive:i}}function fs(e,t=!0,n){Xv()?de(e,n):t?e():wt(e)}function r1(e,t,n={}){const{immediate:r=!0}=n,o=q(!1);let l=null;function s(){l&&(clearTimeout(l),l=null)}function a(){o.value=!1,s()}function i(...c){s(),o.value=!0,l=setTimeout(()=>{o.value=!1,l=null,e(...c)},Ue(t))}return r&&(o.value=!0,Ir&&i()),Cn(a),{isPending:_n(o),start:i,stop:a}}function _l(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Ae(e),l=q(e);function s(a){if(arguments.length)return l.value=a,l.value;{const i=Ue(n);return l.value=l.value===i?Ue(r):i,l.value}}return o?s:[l,s]}function Pt(e){var t;const n=Ue(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ht=Ir?window:void 0,o1=Ir?window.document:void 0,Uc=Ir?window.navigator:void 0;function Oe(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Ht):[t,n,r,o]=e,!t)return Wn;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const l=[],s=()=>{l.forEach(f=>f()),l.length=0},a=(f,d,p,h)=>(f.addEventListener(d,p,h),()=>f.removeEventListener(d,p,h)),i=re(()=>[Pt(t),Ue(o)],([f,d])=>{if(s(),!f)return;const p=qv(d)?{...d}:d;l.push(...n.flatMap(h=>r.map(b=>a(f,h,b,p))))},{immediate:!0,flush:"post"}),c=()=>{i(),s()};return Cn(c),c}function l1(){const e=q(!1),t=En();return t&&de(()=>{e.value=!0},t),e}function Kn(e){const t=l1();return k(()=>(t.value,!!e()))}function qc(e,t,n={}){const{window:r=Ht,...o}=n;let l;const s=Kn(()=>r&&"MutationObserver"in r),a=()=>{l&&(l.disconnect(),l=void 0)},i=k(()=>{const p=Ue(e),h=(Array.isArray(p)?p:[p]).map(Pt).filter(Wv);return new Set(h)}),c=re(()=>i.value,p=>{a(),s.value&&p.size&&(l=new MutationObserver(t),p.forEach(h=>l.observe(h,o)))},{immediate:!0,flush:"post"}),f=()=>l==null?void 0:l.takeRecords(),d=()=>{a(),c()};return Cn(d),{isSupported:s,stop:d,takeRecords:f}}function ds(e,t={}){const{window:n=Ht}=t,r=Kn(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const l=q(!1),s=c=>{l.value=c.matches},a=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",s):o.removeListener(s))},i=Qi(()=>{r.value&&(a(),o=n.matchMedia(Ue(e)),"addEventListener"in o?o.addEventListener("change",s):o.addListener(s),l.value=o.matches)});return Cn(()=>{i(),a(),o=void 0}),l}function Na(e,t={}){const{controls:n=!1,navigator:r=Uc}=t,o=Kn(()=>r&&"permissions"in r);let l;const s=typeof e=="string"?{name:e}:e,a=q(),i=()=>{l&&(a.value=l.state)},c=Qv(async()=>{if(o.value){if(!l)try{l=await r.permissions.query(s),Oe(l,"change",i),i()}catch{a.value="prompt"}return l}});return c(),n?{state:a,isSupported:o,query:c}:a}function s1(e={}){const{navigator:t=Uc,read:n=!1,source:r,copiedDuring:o=1500,legacy:l=!1}=e,s=Kn(()=>t&&"clipboard"in t),a=Na("clipboard-read"),i=Na("clipboard-write"),c=k(()=>s.value||l),f=q(""),d=q(!1),p=r1(()=>d.value=!1,o);function h(){s.value&&w(a.value)?t.clipboard.readText().then(E=>{f.value=E}):f.value=_()}c.value&&n&&Oe(["copy","cut"],h);async function b(E=Ue(r)){c.value&&E!=null&&(s.value&&w(i.value)?await t.clipboard.writeText(E):y(E),f.value=E,d.value=!0,p.start())}function y(E){const g=document.createElement("textarea");g.value=E??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function _(){var E,g,C;return(C=(g=(E=document==null?void 0:document.getSelection)==null?void 0:E.call(document))==null?void 0:g.toString())!=null?C:""}function w(E){return E==="granted"||E==="prompt"}return{isSupported:c,text:f,copied:d,copy:b}}const Kr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Gr="__vueuse_ssr_handlers__",a1=i1();function i1(){return Gr in Kr||(Kr[Gr]=Kr[Gr]||{}),Kr[Gr]}function c1(e,t){return a1[e]||t}function u1(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const f1={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Fa="vueuse-storage";function ps(e,t,n,r={}){var o;const{flush:l="pre",deep:s=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:c=!1,shallow:f,window:d=Ht,eventFilter:p,onError:h=x=>{console.error(x)},initOnMounted:b}=r,y=(f?Ce:q)(typeof t=="function"?t():t);if(!n)try{n=c1("getDefaultStorage",()=>{var x;return(x=Ht)==null?void 0:x.localStorage})()}catch(x){h(x)}if(!n)return y;const _=Ue(t),w=u1(_),E=(o=r.serializer)!=null?o:f1[w],{pause:g,resume:C}=n1(y,()=>V(y.value),{flush:l,deep:s,eventFilter:p});d&&a&&fs(()=>{Oe(d,"storage",G),Oe(d,Fa,N),b&&G()}),b||G();function R(x,M){d&&d.dispatchEvent(new CustomEvent(Fa,{detail:{key:e,oldValue:x,newValue:M,storageArea:n}}))}function V(x){try{const M=n.getItem(e);if(x==null)R(M,null),n.removeItem(e);else{const P=E.write(x);M!==P&&(n.setItem(e,P),R(M,P))}}catch(M){h(M)}}function I(x){const M=x?x.newValue:n.getItem(e);if(M==null)return i&&_!=null&&n.setItem(e,E.write(_)),_;if(!x&&c){const P=E.read(M);return typeof c=="function"?c(P,_):w==="object"&&!Array.isArray(P)?{..._,...P}:P}else return typeof M!="string"?M:E.read(M)}function G(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){y.value=_;return}if(!(x&&x.key!==e)){g();try{(x==null?void 0:x.newValue)!==E.write(y.value)&&(y.value=I(x))}catch(M){h(M)}finally{x?wt(C):C()}}}}function N(x){G(x.detail)}return y}function d1(e){return ds("(prefers-color-scheme: dark)",e)}function p1(e,t,n={}){const{window:r=Ht,...o}=n;let l;const s=Kn(()=>r&&"ResizeObserver"in r),a=()=>{l&&(l.disconnect(),l=void 0)},i=k(()=>Array.isArray(e)?e.map(d=>Pt(d)):[Pt(e)]),c=re(i,d=>{if(a(),s.value&&r){l=new ResizeObserver(t);for(const p of d)p&&l.observe(p,o)}},{immediate:!0,flush:"post"}),f=()=>{a(),c()};return Cn(f),{isSupported:s,stop:f}}function h1(e,t={width:0,height:0},n={}){const{window:r=Ht,box:o="content-box"}=n,l=k(()=>{var d,p;return(p=(d=Pt(e))==null?void 0:d.namespaceURI)==null?void 0:p.includes("svg")}),s=q(t.width),a=q(t.height),{stop:i}=p1(e,([d])=>{const p=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(r&&l.value){const h=Pt(e);if(h){const b=h.getBoundingClientRect();s.value=b.width,a.value=b.height}}else if(p){const h=Array.isArray(p)?p:[p];s.value=h.reduce((b,{inlineSize:y})=>b+y,0),a.value=h.reduce((b,{blockSize:y})=>b+y,0)}else s.value=d.contentRect.width,a.value=d.contentRect.height},n);fs(()=>{const d=Pt(e);d&&(s.value="offsetWidth"in d?d.offsetWidth:t.width,a.value="offsetHeight"in d?d.offsetHeight:t.height)});const c=re(()=>Pt(e),d=>{s.value=d?t.width:0,a.value=d?t.height:0});function f(){i(),c()}return{width:s,height:a,stop:f}}const Ba=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function hs(e,t={}){const{document:n=o1,autoExit:r=!1}=t,o=k(()=>{var w;return(w=Pt(e))!=null?w:n==null?void 0:n.querySelector("html")}),l=q(!1),s=k(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(w=>n&&w in n||o.value&&w in o.value)),a=k(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(w=>n&&w in n||o.value&&w in o.value)),i=k(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(w=>n&&w in n||o.value&&w in o.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(w=>n&&w in n),f=Kn(()=>o.value&&n&&s.value!==void 0&&a.value!==void 0&&i.value!==void 0),d=()=>c?(n==null?void 0:n[c])===o.value:!1,p=()=>{if(i.value){if(n&&n[i.value]!=null)return n[i.value];{const w=o.value;if((w==null?void 0:w[i.value])!=null)return!!w[i.value]}}return!1};async function h(){if(!(!f.value||!l.value)){if(a.value)if((n==null?void 0:n[a.value])!=null)await n[a.value]();else{const w=o.value;(w==null?void 0:w[a.value])!=null&&await w[a.value]()}l.value=!1}}async function b(){if(!f.value||l.value)return;p()&&await h();const w=o.value;s.value&&(w==null?void 0:w[s.value])!=null&&(await w[s.value](),l.value=!0)}async function y(){await(l.value?h():b())}const _=()=>{const w=p();(!w||w&&d())&&(l.value=w)};return Oe(n,Ba,_,!1),Oe(()=>Pt(o),Ba,_,!1),r&&Cn(h),{isSupported:f,isFullscreen:l,enter:b,exit:h,toggle:y}}function Jo(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Kc(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Qo=new WeakMap;function Gc(e,t=!1){const n=q(t);let r=null,o="";re(Zv(e),a=>{const i=Jo(Ue(a));if(i){const c=i;if(Qo.get(c)||Qo.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(o=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const l=()=>{const a=Jo(Ue(e));!a||n.value||(Da&&(r=Oe(a,"touchmove",i=>{v1(i)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},s=()=>{const a=Jo(Ue(e));!a||!n.value||(Da&&(r==null||r()),a.style.overflow=o,Qo.delete(a),n.value=!1)};return Cn(s),k({get(){return n.value},set(a){a?l():s()}})}function m1(e={}){const{window:t=Ht,behavior:n="auto"}=e;if(!t)return{x:q(0),y:q(0)};const r=q(t.scrollX),o=q(t.scrollY),l=k({get(){return r.value},set(a){scrollTo({left:a,behavior:n})}}),s=k({get(){return o.value},set(a){scrollTo({top:a,behavior:n})}});return Oe(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:l,y:s}}function g1(e={}){const{window:t=Ht,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:l=!0}=e,s=q(n),a=q(r),i=()=>{t&&(l?(s.value=t.innerWidth,a.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,a.value=t.document.documentElement.clientHeight))};if(i(),fs(i),Oe("resize",i,{passive:!0}),o){const c=ds("(orientation: portrait)");re(c,()=>i())}return{width:s,height:a}}const Ha=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},b1=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=qn();Oe("scroll",us(()=>{var b,y;const s=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(s-0)d.some(w=>w.hash===_.hash));for(let _=0;_=(((b=w.parentElement)==null?void 0:b.offsetTop)??0)-r,C=!E||s<(((y=E.parentElement)==null?void 0:y.offsetTop)??0)-r;if(!(g&&C))continue;const V=decodeURIComponent(o.currentRoute.value.hash),I=decodeURIComponent(w.hash);if(V===I)return;if(f){for(let G=_+1;Gke(e.title)?{title:e.title}:null;const Jc=Symbol(""),k1=e=>{Yc=e},x1=()=>Se(Jc),T1=e=>{e.provide(Jc,Yc)};var A1={"/":{title:"目录",empty:"暂无目录"}};const P1=W({name:"Catalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean,hideHeading:Boolean},setup(e){const t=x1(),n=Rr(A1),r=$e(),o=dv(),l=$c(),a=Ce(Bv(o.value).map(([c,{meta:f}])=>{const d=t(f);if(!d)return null;const p=c.split("/").length;return{level:Fv(c,"/")?p-2:p-1,base:c.replace(/\/[^/]+\/?$/,"/"),path:c,...d}}).filter(c=>Co(c)&&ke(c.title))),i=k(()=>{const c=e.base?eh(gc(e.base)):r.value.path.replace(/\/[^/]+$/,"/"),f=c.split("/").length-2,d=[];return a.value.filter(({level:p,path:h})=>{if(!po(h,c)||h===c)return!1;if(c==="/"){const b=as(l.value.locales).filter(y=>y!=="/");if(h==="/404.html"||b.some(y=>po(h,y)))return!1}return p-f<=e.level}).sort(({title:p,level:h,order:b},{title:y,level:_,order:w})=>{const E=h-_;return E||(Yo(b)?Yo(w)?b>0?w>0?b-w:-1:w<0?b-w:1:b:Yo(w)?w:p.localeCompare(y))}).forEach(p=>{var y;const{base:h,level:b}=p;switch(b-f){case 1:{d.push(p);break}case 2:{const _=d.find(w=>w.path===h);_&&(_.children??(_.children=[])).push(p);break}default:{const _=d.find(w=>w.path===h.replace(/\/[^/]+\/$/,"/"));if(_){const w=(y=_.children)==null?void 0:y.find(E=>E.path===h);w&&(w.children??(w.children=[])).push(p)}}}}),d});return()=>{const c=i.value.some(f=>f.children);return u("div",{class:["vp-catalog-wrapper",{index:e.index}]},[e.hideHeading?null:u("h2",{class:"vp-catalog-main-title"},n.value.title),i.value.length?u(e.index?"ol":"ul",{class:["vp-catalogs",{deep:c}]},i.value.map(({children:f=[],title:d,path:p,content:h})=>{const b=u(ht,{class:"vp-catalog-title",to:p},()=>h?u(h):d);return u("li",{class:"vp-catalog"},c?[u("h3",{id:d,class:["vp-catalog-child-title",{"has-children":f.length}]},[u("a",{href:`#${d}`,class:"vp-catalog-header-anchor","aria-hidden":!0},"#"),b]),f.length?u(e.index?"ol":"ul",{class:"vp-child-catalogs"},f.map(({children:y=[],content:_,path:w,title:E})=>u("li",{class:"vp-child-catalog"},[u("div",{class:["vp-catalog-sub-title",{"has-children":y.length}]},[u("a",{href:`#${E}`,class:"vp-catalog-header-anchor"},"#"),u(ht,{class:"vp-catalog-title",to:w},()=>_?u(_):E)]),y.length?u(e.index?"ol":"div",{class:e.index?"vp-sub-catalogs":"vp-sub-catalogs-wrapper"},y.map(({content:g,path:C,title:R})=>e.index?u("li",{class:"vp-sub-catalog"},u(ht,{to:C},()=>g?u(g):R)):u(ht,{class:"vp-sub-catalog-link",to:C},()=>g?u(g):R))):null]))):null]:u("div",{class:"vp-catalog-child-title"},b))})):u("p",{class:"vp-empty-catalog"},n.value.empty)])}}}),L1=Et({enhance:({app:e})=>{T1(e),Ke("Catalog",e)||e.component("Catalog",P1)}}),O1=Object.freeze(Object.defineProperty({__proto__:null,default:L1},Symbol.toStringTag,{value:"Module"}));var $1={"/":{backToTop:"返回顶部"}};const R1=W({name:"BackToTop",setup(){const e=xe(),t=Rr($1),n=Ce(),{height:r}=h1(n),{height:o}=g1(),{y:l}=m1(),s=k(()=>e.value.backToTop!==!1&&l.value>100),a=k(()=>l.value/(r.value-o.value)*100);return de(()=>{n.value=document.body}),()=>u(jn,{name:"back-to-top"},()=>s.value?u("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[u("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":a.value},u("svg",u("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*a.value*.48} ${Math.PI*(100-a.value)*.48}`}))),u("div",{class:"back-to-top-icon"})]):null)}}),M1=Et({rootComponents:[R1]}),I1=Object.freeze(Object.defineProperty({__proto__:null,default:M1},Symbol.toStringTag,{value:"Module"}));/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const se={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
    '},status:null,set:e=>{const t=se.isStarted();e=Xo(e,se.settings.minimum,1),se.status=e===1?null:e;const n=se.render(!t),r=n.querySelector(se.settings.barSelector),o=se.settings.speed,l=se.settings.easing;return n.offsetWidth,D1(s=>{Yr(r,{transform:"translate3d("+ja(e)+"%,0,0)",transition:"all "+o+"ms "+l}),e===1?(Yr(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(()=>{Yr(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(()=>{se.remove(),s()},o)},o)):setTimeout(()=>s(),o)}),se},isStarted:()=>typeof se.status=="number",start:()=>{se.status||se.set(0);const e=()=>{setTimeout(()=>{se.status&&(se.trickle(),e())},se.settings.trickleSpeed)};return se.settings.trickle&&e(),se},done:e=>!e&&!se.status?se:se.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=se.status;return t?(typeof e!="number"&&(e=(1-t)*Xo(Math.random()*t,.1,.95)),t=Xo(t+e,0,.994),se.set(t)):se.start()},trickle:()=>se.inc(Math.random()*se.settings.trickleRate),render:e=>{if(se.isRendered())return document.getElementById("nprogress");za(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=se.settings.template;const n=t.querySelector(se.settings.barSelector),r=e?"-100":ja(se.status||0),o=document.querySelector(se.settings.parent);return Yr(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&za(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{Va(document.documentElement,"nprogress-busy"),Va(document.querySelector(se.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&N1(e)},isRendered:()=>!!document.getElementById("nprogress")},Xo=(e,t,n)=>en?n:e,ja=e=>(-1+e)*100,D1=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Yr=function(){const e=["Webkit","O","Moz","ms"],t={};function n(s){return s.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(a,i){return i.toUpperCase()})}function r(s){const a=document.body.style;if(s in a)return s;let i=e.length;const c=s.charAt(0).toUpperCase()+s.slice(1);let f;for(;i--;)if(f=e[i]+c,f in a)return f;return s}function o(s){return s=n(s),t[s]??(t[s]=r(s))}function l(s,a,i){a=o(a),s.style[a]=i}return function(s,a){for(const i in a){const c=a[i];c!==void 0&&Object.prototype.hasOwnProperty.call(a,i)&&l(s,i,c)}}}(),Qc=(e,t)=>(typeof e=="string"?e:vs(e)).indexOf(" "+t+" ")>=0,za=(e,t)=>{const n=vs(e),r=n+t;Qc(n,t)||(e.className=r.substring(1))},Va=(e,t)=>{const n=vs(e);if(!Qc(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},vs=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),N1=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},F1=()=>{de(()=>{const e=qn(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||se.start()}),e.afterEach(n=>{t.add(n.path),se.done()})})},B1=Et({setup(){F1()}}),H1=Object.freeze(Object.defineProperty({__proto__:null,default:B1},Symbol.toStringTag,{value:"Module"})),j1=JSON.parse('{"encrypt":{},"logo":"/image/现代C++并发编程教程.png","navTitle":"现代C++并发编程教程","repo":"https://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/","editLinkPattern":"https://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/blob/main/:path","contributors":false,"darkmode":"toggle","pageInfo":["ReadingTime"],"locales":{"/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"sidebar":[{"text":"首页","link":"/"},{"text":"阅读须知","link":"/md/"},{"text":"基本概念","link":"/md/01基本概念"},{"text":"使用线程","link":"/md/02使用线程"},{"text":"共享数据","link":"/md/03共享数据"},{"text":"同步操作","link":"/md/04同步操作"},{"text":"内存模型与原子操作","link":"/md/05内存模型与原子操作"},{"text":"协程","link":"/md/06协程"},{"text":"详细分析","link":"/md/详细分析/","collapsible":true,"children":[{"text":"std::thread 的构造-源码解析","link":"/md/详细分析/01thread的构造与源码解析"},{"text":"std::scoped_lock 的源码实现与解析","link":"/md/详细分析/02scoped_lock源码解析"},{"text":"std::async 与 std::future 源码解析","link":"/md/详细分析/03async与future源码解析"},{"text":"线程池","link":"/md/详细分析/04线程池"}]}]}}}'),z1=q(j1),Xc=()=>z1,Zc=Symbol(""),V1=()=>{const e=Se(Zc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},W1=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},U1=Et({enhance({app:e}){const t=Xc(),n=e._context.provides[ss],r=k(()=>W1(t.value,n.routeLocale.value));e.provide(Zc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),q1=Object.freeze(Object.defineProperty({__proto__:null,default:U1},Symbol.toStringTag,{value:"Module"})),K1=/language-(shellscript|shell|bash|sh|zsh)/,G1=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o,ignoreSelector:l=[],transform:s})=>{const a=ds("(max-width: 419px)"),i=k(()=>!a.value||o),c=Rr(n),f=$e(),d=_=>{var E;if(_.hasAttribute("copy-code-registered"))return;const w=document.createElement("button");w.type="button",w.classList.add("vp-copy-code-button"),w.setAttribute("aria-label",c.value.copy),w.setAttribute("data-copied",c.value.copied),(E=_.parentElement)==null||E.insertBefore(w,_),_.setAttribute("copy-code-registered","")};re(()=>[f.value.path,i.value],async()=>{document.body.classList.toggle("copy-code-disabled",!i.value),i.value&&(await wt(),await zc(e),document.querySelectorAll(r.join(",")).forEach(d))},{immediate:!0});const{copy:h}=s1({legacy:!0}),b=new WeakMap,y=(_,w,E)=>{const g=w.cloneNode(!0);l.length&&g.querySelectorAll(l.join(",")).forEach(R=>R.remove()),s&&s(g);let C=g.textContent||"";K1.test(_.className)&&(C=C.replace(/^ *(\$|>) /gm,"")),h(C).then(()=>{if(t<=0)return;E.classList.add("copied"),clearTimeout(b.get(E));const R=setTimeout(()=>{E.classList.remove("copied"),E.blur(),b.delete(E)},t);b.set(E,R)})};Oe("click",_=>{const w=_.target;if(i.value&&w.matches('div[class*="language-"] > button.vp-copy-code-button')){const E=w.parentElement,g=w.nextElementSibling;if(!E||!g)return;y(E,g,w)}})};var Y1={"/":{copy:"复制代码",copied:"已复制"}},J1=['.theme-hope-content div[class*="language-"] pre'];const Q1=Et({setup:()=>{G1({selector:J1,locales:Y1,duration:2e3,delay:500,showInMobile:!1})}}),X1=Object.freeze(Object.defineProperty({__proto__:null,default:Q1},Symbol.toStringTag,{value:"Module"})),Re=({name:e="",color:t="currentColor",ariaLabel:n},{attrs:r,slots:o})=>{var l;return u("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":n??`${e} icon`,...r},(l=o.default)==null?void 0:l.call(o))};Re.displayName="IconBase";const Dr=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=u("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[u("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),u("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[u("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),u("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?u("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};Dr.displayName="LoadingIcon";const ms=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},Z1=e=>$r(e)?e:`https://github.com/${e}`,gs=(e="")=>!$r(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,eu=()=>u(Re,{name:"github"},()=>u("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));eu.displayName="GitHubIcon";const tu=()=>u(Re,{name:"gitee"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));tu.displayName="GiteeIcon";const nu=()=>u(Re,{name:"bitbucket"},()=>u("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));nu.displayName="BitbucketIcon";const ru=()=>u(Re,{name:"source"},()=>u("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));ru.displayName="SourceIcon";const e0=({link:e,type:t=gs(e??"")})=>{if(!t)return null;const n=t.toLowerCase();return u(n==="bitbucket"?nu:n==="github"?eu:n==="gitlab"?"GitLab":n==="gitee"?tu:ru)},t0=(e,t=0)=>{let n=3735928559^t,r=1103547991^t;for(let o=0,l;o>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)},ou=(e,t)=>t0(e)%t,lu=/#.*$/u,n0=e=>{const t=lu.exec(e);return t?t[0]:""},Wa=e=>decodeURI(e).replace(lu,"").replace(/\/index\.html$/iu,"/").replace(/\/(README|index)\.md$/iu,"/").replace(/\.(?:html|md)$/iu,""),su=(e,t)=>{if(!Nv(t))return!1;const n=Wa(e.path),r=Wa(t),o=n0(t);return o?o===e.hash&&(!r||n===r):n===r};var r0=e=>Object.prototype.toString.call(e)==="[object Object]",yr=e=>typeof e=="string";const au=Array.isArray,Ua=e=>r0(e)&&yr(e.name),qa=(e,t=!1)=>e?au(e)?e.map(n=>yr(n)?{name:n}:Ua(n)?n:null).filter(n=>n!==null):yr(e)?[{name:e}]:Ua(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],iu=(e,t)=>{if(e){if(au(e)&&e.every(yr))return e;if(yr(e))return[e];console.error(`Expect ${t} to be \`string[] | string | undefined\`, but got`,e)}return[]},o0=e=>iu(e,"category"),l0=e=>iu(e,"tag"),ho=()=>{const e=document.documentElement;return e.classList.contains("dark")||e.getAttribute("data-theme")==="dark"},s0=(e,t)=>t==="json"?JSON.parse(e):new Function(`let config,__chart_js_config__; +{ +${e} +__chart_js_config__=config; +} +return __chart_js_config__;`)();var a0=W({name:"ChartJS",props:{config:{type:String,required:!0},id:{type:String,required:!0},title:{type:String,default:""},type:{type:String,default:"json"}},setup(e){const t=Ce(),n=Ce(),r=q(!1),o=q(!0),l=k(()=>br(e.config));let s=!1,a;const i=async c=>{const[{default:f}]=await Promise.all([_e(()=>import("./auto-Cl2ltNcc.js"),[]),s?Promise.resolve():(s=!0,new Promise(h=>setTimeout(h,800)))]);f.defaults.borderColor=c?"#ccc":"#36A2EB",f.defaults.color=c?"#fff":"#000",f.defaults.maintainAspectRatio=!1;const d=s0(l.value,e.type),p=n.value.getContext("2d");a==null||a.destroy(),a=new f(p,d),o.value=!1};return de(()=>{r.value=ho(),qc(document.documentElement,()=>{r.value=ho()},{attributeFilter:["class","data-theme"],attributes:!0}),re(r,c=>i(c),{immediate:!0})}),()=>[e.title?u("div",{class:"chartjs-title"},decodeURIComponent(e.title)):null,o.value?u(Dr,{class:"chartjs-loading",height:192}):null,u("div",{ref:t,class:"chartjs-wrapper",id:e.id,style:{display:o.value?"none":"block"}},u("canvas",{ref:n,height:400}))]}});const Jr=ps("VUEPRESS_CODE_TAB_STORE",{});var i0=W({name:"CodeTabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=q(e.active),r=Ce([]),o=()=>{e.tabId&&(Jr.value[e.tabId]=e.data[n.value].id)},l=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},a=(c,f)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=f):c.key==="ArrowRight"?(c.preventDefault(),l()):c.key==="ArrowLeft"&&(c.preventDefault(),s()),e.tabId&&(Jr.value[e.tabId]=e.data[n.value].id)},i=()=>{if(e.tabId){const c=e.data.findIndex(({id:f})=>Jr.value[e.tabId]===f);if(c!==-1)return c}return e.active};return de(()=>{n.value=i(),re(()=>Jr.value[e.tabId],(c,f)=>{if(e.tabId&&c!==f){const d=e.data.findIndex(({id:p})=>p===c);d!==-1&&(n.value=d)}})}),()=>e.data.length?u("div",{class:"vp-code-tabs"},[u("div",{class:"vp-code-tabs-nav",role:"tablist"},e.data.map(({id:c},f)=>{const d=f===n.value;return u("button",{type:"button",ref:p=>{p&&(r.value[f]=p)},class:["vp-code-tab-nav",{active:d}],role:"tab","aria-controls":`codetab-${e.id}-${f}`,"aria-selected":d,onClick:()=>{n.value=f,o()},onKeydown:p=>a(p,f)},t[`title${f}`]({value:c,isActive:d}))})),e.data.map(({id:c},f)=>{const d=f===n.value;return u("div",{class:["vp-code-tab",{active:d}],id:`codetab-${e.id}-${f}`,role:"tabpanel","aria-expanded":d},[u("div",{class:"vp-code-tab-title"},t[`title${f}`]({value:c,isActive:d})),t[`tab${f}`]({value:c,isActive:d})])})]):null}});const cu=({active:e=!1},{slots:t})=>{var n;return u("div",{class:["code-group-item",{active:e}],"aria-selected":e},(n=t.default)==null?void 0:n.call(t))};cu.displayName="CodeGroupItem";const c0=W({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const n=q(-1),r=Ce([]),o=(a=n.value)=>{n.value=a{n.value=a>0?a-1:r.value.length-1,r.value[n.value].focus()},s=(a,i)=>{a.key===" "||a.key==="Enter"?(a.preventDefault(),n.value=i):a.key==="ArrowRight"?(a.preventDefault(),o(i)):a.key==="ArrowLeft"&&(a.preventDefault(),l(i))};return()=>{var i;const a=(((i=t.default)==null?void 0:i.call(t))||[]).filter(c=>c.type.name==="CodeGroupItem").map(c=>(c.props===null&&(c.props={}),c));return a.length===0?null:(n.value<0||n.value>a.length-1?(n.value=a.findIndex(c=>"active"in c.props),n.value===-1&&(n.value=0)):a.forEach((c,f)=>{c.props.active=f===n.value}),u("div",{class:"code-group"},[u("div",{class:"code-group-nav"},a.map((c,f)=>{const d=f===n.value;return u("button",{type:"button",ref:p=>{p&&(r.value[f]=p)},class:["code-group-nav-tab",{active:d}],"aria-pressed":d,"aria-expanded":d,onClick:()=>{n.value=f},onKeydown:p=>s(p,f)},c.props.title)})),a]))}}});let u0={};const uu=Symbol(""),f0=()=>Se(uu),d0=e=>{e.provide(uu,u0)},p0=(async()=>{}).constructor,h0=(e,t,n)=>t==="js"?p0("myChart",`let width,height,option,__echarts_config__; +{ +${e} +__echarts_config__={width,height,option}; +} +return __echarts_config__; +`)(n):Promise.resolve({option:JSON.parse(e)});var v0=W({name:"ECharts",props:{config:{type:String,required:!0},id:{type:String,required:!0},title:{type:String,default:""},type:{type:String,default:"json"}},setup(e){const t=f0(),n=q(!0),r=Ce();let o;return Oe("resize",us(()=>o==null?void 0:o.resize(),100)),de(()=>{Promise.all([_e(()=>import("./index-AN989yVn.js"),[]),new Promise(l=>setTimeout(l,800))]).then(async([l])=>{var i;await((i=t.setup)==null?void 0:i.call(t)),o=l.init(r.value);const{option:s,...a}=await h0(br(e.config),e.type,o);o.resize(a),o.setOption({...t.option,...s}),n.value=!1})}),on(()=>{o==null||o.dispose()}),()=>[e.title?u("div",{class:"echarts-title"},decodeURIComponent(e.title)):null,u("div",{class:"echarts-wrapper"},[u("div",{ref:r,class:"echarts-container",id:e.id}),n.value?u(Dr,{class:"echarts-loading",height:360}):null])]}}),bs={x:0,y:0,"line-width":2,"line-length":40,"text-margin":8,"font-size":14,"font-color":"#8DA1AC","line-color":"#8DA1AC","element-color":"black",fill:"white","yes-text":"Yes","no-text":"No","arrow-end":"block",scale:1},m0={...bs,symbols:{start:{class:"start-element","font-color":"#fff",fill:"#595959","line-width":"0px"},end:{class:"end-element","font-color":"#fff",fill:"#595959","line-width":"0px"},operation:{class:"operation-element","font-color":"#fff",fill:"#1890ff","line-width":"0px"},inputoutput:{class:"inputoutput-element","font-color":"#fff",fill:"#1890ff","line-width":"0px"},subroutine:{class:"subroutine-element","font-color":"#fff",fill:"#FF485E","element-color":"#fff","line-color":"red"},condition:{class:"condition-element","font-color":"#fff",fill:"#FF485E","line-width":"0px"},parallel:{class:"parallel-element","font-color":"#fff",fill:"#1890ff","line-width":"0px"}}},g0={...bs,"line-width":1,symbols:{start:{class:"start-element",fill:"#ccc","line-color":"#5c6ac4","font-color":"#000"},end:{class:"end-element",fill:"#ccc","line-color":"#5c6ac4","font-color":"#000"},operation:{class:"operation-element",fill:"#f1f1f1","line-color":"#5c6ac4","font-color":"#000"},inputoutput:{class:"inputoutput-element",fill:"#f1f1f1","line-color":"#5c6ac4","font-color":"#000"},subroutine:{class:"subroutine-element",fill:"#f1f1f1","line-color":"#5c6ac4","font-color":"#000"},condition:{class:"condition-element",fill:"#f1f1f1","line-color":"#5c6ac4","font-color":"#000"},parallel:{class:"parallel-element",fill:"#f1f1f1","line-color":"#5c6ac4","font-color":"#000"}}},b0={...bs,symbols:{start:{class:"start-element","font-color":"#fff",fill:"#2F495F","line-width":"0px"},end:{class:"end-element","font-color":"#fff",fill:"#2F495F","line-width":"0px"},operation:{class:"operation-element","font-color":"#fff",fill:"#00BC7D","line-width":"0px"},inputoutput:{class:"inputoutput-element","font-color":"#fff",fill:"#EB4D5D","line-width":"0px"},subroutine:{class:"subroutine-element","font-color":"#fff",fill:"#937AC4","element-color":"#fff","line-color":"red"},condition:{class:"condition-element","font-color":"#fff",fill:"#FFB500","line-width":"0px"},parallel:{class:"parallel-element","font-color":"#fff",fill:"#2F495F","line-width":"0px"}}};const Ka={ant:m0,vue:b0,pie:g0};let y0={};const fu=Symbol(""),w0=()=>Se(fu),_0=e=>{e.provide(fu,y0)};var E0=W({name:"FlowChart",props:{code:{type:String,required:!0},id:{type:String,required:!0},preset:{type:String,default:"vue"}},setup(e){let t=null;const n=Ce(),r=q(!0),o=q(1),l=k(()=>Ka[e.preset]||(console.warn(`[md-enhance:flowchart] Unknown preset: ${e.preset}`),Ka.vue)),s=a=>a<419?.8:a>1280?1:.9;return de(()=>{Promise.all([_e(()=>import("./flowchart-CTwbLKUk.js"),[]),new Promise(a=>setTimeout(a,800))]).then(([{parse:a}])=>{t=a(br(e.code)),o.value=s(window.innerWidth),r.value=!1,t.draw(e.id,{...l.value,scale:o.value})}),Oe("resize",us(()=>{if(t){const a=s(window.innerWidth);o.value!==a&&(o.value=a,t.draw(e.id,{...l.value,scale:a}))}},100))}),()=>[r.value?u(Dr,{class:"flowchart-loading",height:192}):null,u("div",{ref:n,class:["flowchart-wrapper",e.preset],id:e.id,style:{display:r.value?"none":"block"}})]}});const C0=()=>{Oe("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})},Tn={useMaxWidth:!1},S0=e=>({dark:e,background:e?"#1e1e1e":"#fff",primaryColor:e?"#389d70":"#4abf8a",primaryBorderColor:e?"#389d70":"#4abf8a",primaryTextColor:e?"#fff":"#000",secondaryColor:"#ffb500",secondaryBorderColor:e?"#fff":"#000",secondaryTextColor:e?"#ddd":"#333",tertiaryColor:e?"#282828":"#efeef4",tertiaryBorderColor:e?"#bbb":"#242424",tertiaryTextColor:e?"#ddd":"#333",noteBkgColor:e?"#f6d365":"#fff5ad",noteTextColor:"#242424",noteBorderColor:e?"#f6d365":"#333",lineColor:e?"#d3d3d3":"#333",textColor:e?"#fff":"#242424",mainBkg:e?"#389d70":"#4abf8a",errorBkgColor:"#eb4d5d",errorTextColor:"#fff",nodeBorder:e?"#389d70":"#4abf8a",nodeTextColor:e?"#fff":"#242424",signalTextColor:e?"#9e9e9e":"#242424",classText:"#fff",labelColor:"#fff",attributeBackgroundColorEven:e?"#0d1117":"#fff",attributeBackgroundColorOdd:e?"#161b22":"#f8f8f8",fillType0:e?"#cf1322":"#f1636e",fillType1:"#f39c12",fillType2:"#2ecc71",fillType3:"#fa541c",fillType4:"#25a55b",fillType5:"#13c2c2",fillType6:"#096dd9",fillType7:"#aa6fe9"});var k0=W({name:"Mermaid",props:{id:{type:String,required:!0},code:{type:String,required:!0},title:{type:String,default:""}},setup(e){const{themeVariables:t,...n}=w0(),r=Ce(),o=k(()=>br(e.code)),l=q(""),s=q(!1);let a=!1;const i=async()=>{const[{default:d}]=await Promise.all([_e(()=>import("./mermaid.core-Bc1j4tiv.js").then(p=>p.b8),[]),a?Promise.resolve():(a=!0,new Promise(p=>setTimeout(p,800)))]);d.initialize({theme:"base",themeVariables:{...S0(s.value),...th(t)?t(s.value):t},flowchart:Tn,sequence:Tn,journey:Tn,gantt:Tn,er:Tn,pie:Tn,...n,startOnLoad:!1}),l.value=(await d.render(e.id,o.value)).svg},c=()=>{const{body:d}=document,p=document.createElement("div");p.classList.add("mermaid-preview"),p.innerHTML=l.value,d.appendChild(p),p.addEventListener("click",()=>{d.removeChild(p)})},f=()=>{const d=`data:image/svg+xml;charset=utf8,${l.value.replace(/
    /g,"
    ").replace(/%/g,"%25").replace(/"/g,"%22").replace(/'/g,"%27").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(//g,"%3E")}`,p=document.createElement("a");p.setAttribute("href",d),p.setAttribute("download",`${e.title?br(e.title):e.id}.svg`),p.click()};return de(()=>{s.value=ho(),i(),qc(document.documentElement,()=>{s.value=ho()},{attributeFilter:["class","data-theme"],attributes:!0}),re(s,()=>i())}),()=>[u("div",{class:"mermaid-actions"},[u("button",{class:"preview-button",onClick:()=>c(),title:"preview",innerHTML:''}),u("button",{class:"download-button",onClick:()=>f(),title:"download",innerHTML:''})]),u("div",{ref:r,class:"mermaid-wrapper"},l.value?u("div",{class:"mermaid-content",innerHTML:l.value}):u(Dr,{class:"mermaid-loading",height:96}))]}});const Zo=ps("VUEPRESS_TAB_STORE",{});var x0=W({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=q(e.active),r=Ce([]),o=()=>{e.tabId&&(Zo.value[e.tabId]=e.data[n.value].id)},l=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},a=(c,f)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=f):c.key==="ArrowRight"?(c.preventDefault(),l()):c.key==="ArrowLeft"&&(c.preventDefault(),s()),o()},i=()=>{if(e.tabId){const c=e.data.findIndex(({id:f})=>Zo.value[e.tabId]===f);if(c!==-1)return c}return e.active};return de(()=>{n.value=i(),re(()=>Zo.value[e.tabId],(c,f)=>{if(e.tabId&&c!==f){const d=e.data.findIndex(({id:p})=>p===c);d!==-1&&(n.value=d)}})}),()=>e.data.length?u("div",{class:"vp-tabs"},[u("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:c},f)=>{const d=f===n.value;return u("button",{type:"button",ref:p=>{p&&(r.value[f]=p)},class:["vp-tab-nav",{active:d}],role:"tab","aria-controls":`tab-${e.id}-${f}`,"aria-selected":d,onClick:()=>{n.value=f,o()},onKeydown:p=>a(p,f)},t[`title${f}`]({value:c,isActive:d}))})),e.data.map(({id:c},f)=>{const d=f===n.value;return u("div",{class:["vp-tab",{active:d}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":d},[u("div",{class:"vp-tab-title"},t[`title${f}`]({value:c,isActive:d})),t[`tab${f}`]({value:c,isActive:d})])})]):null}});const T0=Et({enhance:({app:e})=>{e.component("ChartJS",a0),e.component("CodeTabs",i0),Ke("CodeGroup",e)||e.component("CodeGroup",c0),Ke("CodeGroupItem",e)||e.component("CodeGroupItem",cu),e.component("ECharts",v0),d0(e),e.component("FlowChart",E0),_0(e),e.component("Mermaid",k0),e.component("Tabs",x0)},setup:()=>{C0()}}),A0=Object.freeze(Object.defineProperty({__proto__:null,default:T0},Symbol.toStringTag,{value:"Module"})),P0=q({}),du=Symbol(""),L0=()=>Se(du),O0=e=>{e.provide(du,P0)},$0='
    ',R0=e=>ke(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),pu=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(pu(e)),e.onerror=r=>n(r))}),M0=(e,{download:t=!0,fullscreen:n=!0}={})=>{e.on("uiRegister",()=>{if(e.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(r,o)=>{const l=[];let s=-1;for(let a=0;a{o.goTo(l.indexOf(c.target))},l.push(i),r.appendChild(i)}o.on("change",()=>{s>=0&&l[s].classList.remove("active"),l[o.currIndex].classList.add("active"),s=o.currIndex})}}),n){const{isSupported:r,toggle:o}=hs();r.value&&e.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{o()}})}t&&e.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(r,o)=>{r.setAttribute("download",""),r.setAttribute("target","_blank"),r.setAttribute("rel","noopener"),o.on("change",()=>{r.setAttribute("href",o.currSlide.data.src)})}})})},I0=(e,{scrollToClose:t=!0,download:n=!0,fullscreen:r=!0,...o})=>_e(async()=>{const{default:l}=await import("./photoswipe.esm-GXRgw7eJ.js");return{default:l}},[]).then(({default:l})=>{let s=null;const a=e.map(i=>({html:$0,element:i,msrc:i.src}));return e.forEach((i,c)=>{const f=()=>{s==null||s.destroy(),s=new l({preloaderDelay:0,showHideAnimationType:"zoom",...o,dataSource:a,index:c,...t?{closeOnVerticalDrag:!0,wheelToZoom:!1}:{}}),M0(s,{download:n,fullscreen:r}),s.addFilter("thumbEl",()=>i),s.addFilter("placeholderSrc",()=>i.src),s.init()};i.getAttribute("photo-swipe")||(i.style.cursor="zoom-in",i.addEventListener("click",()=>{f()}),i.addEventListener("keypress",({key:d})=>{d==="Enter"&&f()}),i.setAttribute("photo-swipe","")),pu(i).then(d=>{a.splice(c,1,d),s==null||s.refreshSlideContent(c)})}),t?Oe("wheel",()=>{s==null||s.close()}):()=>{}}),D0=({selector:e,locales:t,delay:n=500,download:r=!0,fullscreen:o=!0,scrollToClose:l=!0})=>{const s=L0(),a=Rr(t),i=$e(),c=xe();let f=null;const d=()=>{const{photoSwipe:p}=c.value;p!==!1&&wt().then(()=>zc(n)).then(async()=>{const h=ke(p)?p:e;f=await I0(R0(h),{...s.value,...a.value,download:r,fullscreen:o,scrollToClose:l})})};de(()=>{d(),re(()=>[i.value.path,s.value],()=>{f==null||f(),d()})}),on(()=>{f==null||f()})};var N0={"/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"}};const F0=".theme-hope-content :not(a) > img:not([no-view])",B0=N0,H0=800,j0=!0,z0=!0,V0=!0,W0=Et({enhance:({app:e})=>{O0(e)},setup:()=>{D0({selector:F0,delay:H0,locales:B0,download:j0,fullscreen:z0,scrollToClose:V0})}}),U0=Object.freeze(Object.defineProperty({__proto__:null,default:W0},Symbol.toStringTag,{value:"Module"}));function hu(e){return Dl()?(li(e),!0):!1}function Ft(e){return typeof e=="function"?e():Xt(e)}const vu=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const q0=Object.prototype.toString,K0=e=>q0.call(e)==="[object Object]",gn=()=>{},El=G0();function G0(){var e,t;return vu&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function mu(e,t){function n(...r){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(l)})}return n}const gu=e=>e();function Y0(e,t={}){let n,r,o=gn;const l=a=>{clearTimeout(a),o(),o=gn};return a=>{const i=Ft(e),c=Ft(t.maxWait);return n&&l(n),i<=0||c!==void 0&&c<=0?(r&&(l(r),r=null),Promise.resolve(a())):new Promise((f,d)=>{o=t.rejectOnCancel?d:f,c&&!r&&(r=setTimeout(()=>{n&&l(n),r=null,f(a())},c)),n=setTimeout(()=>{r&&l(r),r=null,f(a())},i)})}}function J0(e=gu){const t=q(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...l)=>{t.value&&e(...l)};return{isActive:_n(t),pause:n,resume:r,eventFilter:o}}function Q0(e){return En()}function X0(...e){if(e.length!==1)return kr(...e);const t=e[0];return typeof t=="function"?_n(ql(()=>({get:t,set:gn}))):q(t)}function Z0(e,t=200,n={}){return mu(Y0(t,n),e)}function em(e,t,n={}){const{eventFilter:r=gu,...o}=n;return re(e,mu(r,t),o)}function tm(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:l,pause:s,resume:a,isActive:i}=J0(r);return{stop:em(e,t,{...o,eventFilter:l}),pause:s,resume:a,isActive:i}}function nm(e,t=!0,n){Q0()?de(e,n):t?e():wt(e)}const wr=vu?window:void 0;function tr(e){var t;const n=Ft(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Zt(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=wr):[t,n,r,o]=e,!t)return gn;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const l=[],s=()=>{l.forEach(f=>f()),l.length=0},a=(f,d,p,h)=>(f.addEventListener(d,p,h),()=>f.removeEventListener(d,p,h)),i=re(()=>[tr(t),Ft(o)],([f,d])=>{if(s(),!f)return;const p=K0(d)?{...d}:d;l.push(...n.flatMap(h=>r.map(b=>a(f,h,b,p))))},{immediate:!0,flush:"post"}),c=()=>{i(),s()};return hu(c),c}let Ga=!1;function rm(e,t,n={}){const{window:r=wr,ignore:o=[],capture:l=!0,detectIframe:s=!1}=n;if(!r)return gn;El&&!Ga&&(Ga=!0,Array.from(r.document.body.children).forEach(h=>h.addEventListener("click",gn)),r.document.documentElement.addEventListener("click",gn));let a=!0;const i=h=>Ft(o).some(b=>{if(typeof b=="string")return Array.from(r.document.querySelectorAll(b)).some(y=>y===h.target||h.composedPath().includes(y));{const y=tr(b);return y&&(h.target===y||h.composedPath().includes(y))}}),c=h=>{const b=tr(e);if(!(!b||b===h.target||h.composedPath().includes(b))){if(h.detail===0&&(a=!i(h)),!a){a=!0;return}t(h)}};let f=!1;const d=[Zt(r,"click",h=>{f||(f=!0,setTimeout(()=>{f=!1},0),c(h))},{passive:!0,capture:l}),Zt(r,"pointerdown",h=>{const b=tr(e);a=!i(h)&&!!(b&&!h.composedPath().includes(b))},{passive:!0}),s&&Zt(r,"blur",h=>{setTimeout(()=>{var b;const y=tr(e);((b=r.document.activeElement)==null?void 0:b.tagName)==="IFRAME"&&!(y!=null&&y.contains(r.document.activeElement))&&t(h)},0)})].filter(Boolean);return()=>d.forEach(h=>h())}const Qr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Xr="__vueuse_ssr_handlers__",om=lm();function lm(){return Xr in Qr||(Qr[Xr]=Qr[Xr]||{}),Qr[Xr]}function sm(e,t){return om[e]||t}function am(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const im={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ya="vueuse-storage";function cm(e,t,n,r={}){var o;const{flush:l="pre",deep:s=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:c=!1,shallow:f,window:d=wr,eventFilter:p,onError:h=x=>{console.error(x)},initOnMounted:b}=r,y=(f?Ce:q)(typeof t=="function"?t():t);if(!n)try{n=sm("getDefaultStorage",()=>{var x;return(x=wr)==null?void 0:x.localStorage})()}catch(x){h(x)}if(!n)return y;const _=Ft(t),w=am(_),E=(o=r.serializer)!=null?o:im[w],{pause:g,resume:C}=tm(y,()=>V(y.value),{flush:l,deep:s,eventFilter:p});d&&a&&nm(()=>{n instanceof Storage?Zt(d,"storage",G):Zt(d,Ya,N),b&&G()}),b||G();function R(x,M){if(d){const P={key:e,oldValue:x,newValue:M,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",P):new CustomEvent(Ya,{detail:P}))}}function V(x){try{const M=n.getItem(e);if(x==null)R(M,null),n.removeItem(e);else{const P=E.write(x);M!==P&&(n.setItem(e,P),R(M,P))}}catch(M){h(M)}}function I(x){const M=x?x.newValue:n.getItem(e);if(M==null)return i&&_!=null&&n.setItem(e,E.write(_)),_;if(!x&&c){const P=E.read(M);return typeof c=="function"?c(P,_):w==="object"&&!Array.isArray(P)?{..._,...P}:P}else return typeof M!="string"?M:E.read(M)}function G(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){y.value=_;return}if(!(x&&x.key!==e)){g();try{(x==null?void 0:x.newValue)!==E.write(y.value)&&(y.value=I(x))}catch(M){h(M)}finally{x?wt(C):C()}}}}function N(x){G(x.detail)}return y}function el(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function b2(e,t,n={}){const{window:r=wr}=n;return cm(e,t,r==null?void 0:r.localStorage,n)}function bu(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const tl=new WeakMap;function fm(e,t=!1){const n=q(t);let r=null,o="";re(X0(e),a=>{const i=el(Ft(a));if(i){const c=i;if(tl.get(c)||tl.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(o=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const l=()=>{const a=el(Ft(e));!a||n.value||(El&&(r=Zt(a,"touchmove",i=>{um(i)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},s=()=>{const a=el(Ft(e));!a||!n.value||(El&&(r==null||r()),a.style.overflow=o,tl.delete(a),n.value=!1)};return hu(s),k({get(){return n.value},set(a){a?l():s()}})}const ys=e=>{const t=ln();return k(()=>e[t.value]??{})},dm=(e,t)=>ke(e)&&e.startsWith(t),{values:pm}=Object,Gn=({name:e="",color:t="currentColor",ariaLabel:n},{attrs:r,slots:o})=>{var l;return u("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":n??`${e} icon`,...r},(l=o.default)==null?void 0:l.call(o))};Gn.displayName="IconBase";function hm(){const e=q(!1),t=En();return t&&de(()=>{e.value=!0},t),e}function vm(e){return hm(),k(()=>!!e())}const mm=()=>vm(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),gm=()=>{const e=mm();return k(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},bm=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),ym=e=>[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i].some(t=>t.test(e)),wm=e=>[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i].some(t=>t.test(e)),_m=()=>u(Gn,{name:"heading"},()=>u("path",{d:"M250.4 704.6H64V595.4h202.4l26.2-166.6H94V319.6h214.4L352 64h127.8l-43.6 255.4h211.2L691 64h126.2l-43.6 255.4H960v109.2H756.2l-24.6 166.6H930v109.2H717L672 960H545.8l43.6-255.4H376.6L333 960H206.8l43.6-255.4zm168.4-276L394 595.4h211.2l24.6-166.6h-211z"}));_m.displayName="HeadingIcon";const Em=()=>u(Gn,{name:"heart"},()=>u("path",{d:"M1024 358.156C1024 195.698 892.3 64 729.844 64c-86.362 0-164.03 37.218-217.844 96.49C458.186 101.218 380.518 64 294.156 64 131.698 64 0 195.698 0 358.156 0 444.518 37.218 522.186 96.49 576H96l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232 517.49 805.49a2981.962 2981.962 0 0 1-5.49 5.48c-1.96-1.95-3.814-3.802-5.49-5.48L182.532 481.234C147.366 449.306 128 405.596 128 358.156 128 266.538 202.538 192 294.156 192c47.44 0 91.15 19.366 123.076 54.532L512 350.912l94.768-104.378C638.696 211.366 682.404 192 729.844 192 821.462 192 896 266.538 896 358.156c0 47.44-19.368 91.15-54.532 123.076z"}));Em.displayName="HeartIcon";const Cm=()=>u(Gn,{name:"history"},()=>u("path",{d:"M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512zm0-896a384 384 0 1 0 384 384 384 384 0 0 0-384-384zm192 448H512a64 64 0 0 1-64-64V320a64 64 0 0 1 128 0v128h128a64 64 0 0 1 0 128z"}));Cm.displayName="HistoryIcon";const Sm=()=>u(Gn,{name:"title"},()=>u("path",{d:"M512 256c70.656 0 134.656 28.672 180.992 75.008A254.933 254.933 0 0 1 768 512c0 83.968-41.024 157.888-103.488 204.48C688.96 748.736 704 788.48 704 832c0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192h128a64 64 0 1 0 128 0 64 64 0 0 0-64-64 255.19 255.19 0 0 1-181.056-75.008A255.403 255.403 0 0 1 256 512c0-83.968 41.024-157.824 103.488-204.544C335.04 275.264 320 235.584 320 192A192 192 0 0 1 512 0c105.984 0 192 85.952 192 192H576a64.021 64.021 0 0 0-128 0c0 35.328 28.672 64 64 64zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128z"}));Sm.displayName="TitleIcon";const ws=()=>u(Gn,{name:"search"},()=>u("path",{d:"M192 480a256 256 0 1 1 512 0 256 256 0 0 1-512 0m631.776 362.496-143.2-143.168A318.464 318.464 0 0 0 768 480c0-176.736-143.264-320-320-320S128 303.264 128 480s143.264 320 320 320a318.016 318.016 0 0 0 184.16-58.592l146.336 146.368c12.512 12.48 32.768 12.48 45.28 0 12.48-12.512 12.48-32.768 0-45.28"}));ws.displayName="SearchIcon";const yu=()=>u("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",preserveAspectRatio:"xMidYMid",viewBox:"0 0 100 100"},[u("circle",{cx:"28",cy:"75",r:"11",fill:"currentColor"},u("animate",{attributeName:"fill-opacity",begin:"0s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 47a28 28 0 0 1 28 28"},u("animate",{attributeName:"stroke-opacity",begin:"0.1s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 25a50 50 0 0 1 50 50"},u("animate",{attributeName:"stroke-opacity",begin:"0.2s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"}))]);yu.displayName="LoadingIcon";const wu=({hint:e})=>u("div",{class:"search-pro-result-wrapper loading"},[u(yu),e]);wu.displayName="SearchLoading";const km='';var xm={0:{"/":{0:"分",1:"类",2:":",3:" ",4:"$",5:"c",6:"o",7:"n",8:"t",9:"e",10:"n",11:"t"}},1:{"/":{0:"标",1:"签",2:":",3:" ",4:"$",5:"c",6:"o",7:"n",8:"t",9:"e",10:"n",11:"t"}}},Tm={"/":{cancel:"取消",placeholder:"搜索",search:"搜索",searching:"搜索中",defaultTitle:"文档",select:"选择",navigate:"切换",autocomplete:"自动补全",exit:"关闭",queryHistory:"搜索历史",resultHistory:"历史结果",emptyHistory:"无搜索历史",emptyResult:"没有找到结果",loading:"正在加载搜索索引..."}},Am={searchDelay:150,suggestDelay:0,queryHistoryCount:5,resultHistoryCount:5,hotKeys:[{key:"k",ctrl:!0},{key:"/",ctrl:!0}],worker:"search-pro.worker.js"};const vo=Am,y2=xm,_u=vo.hotKeys,_s=Tm,nl="Canceled because of new search request.",Pm=()=>{const e=new Worker(`/ModernCpp-ConcurrentProgramming-Tutorial/${vo.worker}`,{}),t={suggest:null,search:null,all:null};return e.addEventListener("message",({data:n})=>{const[r,o,l]=n,s=t[r];(s==null?void 0:s.id)===o&&s.resolve(l)}),e.addEventListener("error",n=>{console.error("Search Worker error:",n)}),{suggest:(n,r,o)=>new Promise((l,s)=>{var i;(i=t.suggest)==null||i.reject(new Error(nl));const a=Date.now();e.postMessage({type:"suggest",id:a,query:n,locale:r,options:o}),t.suggest={id:a,resolve:l,reject:s}}),search:(n,r,o)=>new Promise((l,s)=>{var i;(i=t.search)==null||i.reject(new Error(nl));const a=Date.now();e.postMessage({type:"search",id:a,query:n,locale:r,options:o}),t.search={id:a,resolve:l,reject:s}}),all:(n,r,o)=>new Promise((l,s)=>{var i;(i=t.all)==null||i.reject(new Error(nl));const a=Date.now();e.postMessage({type:"all",id:a,query:n,locale:r,options:o}),t.all={id:a,resolve:l,reject:s}}),terminate:()=>{e.terminate(),pm(t).forEach(n=>{n==null||n.reject(new Error("Worker has been terminated."))})}}};let Lm={};const Eu=Symbol(""),Cu=()=>{const e=ln(),{locales:t={},...n}=Se(Eu);return k(()=>({...n,...t[e.value]}))},Om=e=>{e.provide(Eu,Lm)},$m=(e,t=!1)=>{const n=q(0),r=k(()=>e.value[n.value]),o=()=>{n.value=n.value>0?n.value-1:e.value.length-1},l=()=>{n.value=n.value{t||(n.value=0)}),{index:n,item:r,prev:o,next:l}},Rm=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Mm=e=>_u.some(t=>{const{key:n,ctrl:r=!1,shift:o=!1,alt:l=!1,meta:s=!1}=t;return n===e.key&&r===e.ctrlKey&&o===e.shiftKey&&l===e.altKey&&s===e.metaKey}),Im='',Dm='',Nm='',Fm='',Es=Symbol(""),Bm=()=>{const e=q(!1);vn(Es,e)},Hm=e=>{const t=q([]);{const n=Cu(),r=$e(),o=ln();de(()=>{const{suggest:l,terminate:s}=Pm(),a=i=>{const c=i.join(" "),{searchFilter:f,splitWord:d,suggestionsFilter:p=b=>b,...h}=n.value;c?l(c,o.value,h).then(b=>p(b,c,o.value,r.value)).then(b=>{t.value=b.length?dm(b[0],c)&&!b[0].slice(c.length).includes(" ")?b:[c,...b]:[]}).catch(b=>{console.warn(b)}):t.value=[]};re([e,o],([i])=>a(i),{immediate:!0}),on(()=>{s()})})}return{suggestions:t}},rl=_u[0];var jm=W({name:"SearchBox",setup(){const e=ys(_s),t=Se(Es),n=q(!1),r=k(()=>rl?[(n.value?["⌃","⇧","⌥","⌘"]:["Ctrl","Shift","Alt","Win"]).filter((o,l)=>rl[["ctrl","shift","alt","meta"][l]]),rl.key.toUpperCase()]:null);return Zt("keydown",o=>{!t.value&&Mm(o)&&!Rm(o.target)&&(o.preventDefault(),t.value=!0)}),de(()=>{const{userAgent:o}=navigator;n.value=wm(o)||ym(o)||bm(o)}),()=>[u("button",{type:"button",class:"search-pro-button","aria-label":e.value.search,onClick:()=>{t.value=!0}},[u(ws),u("div",{class:"search-pro-placeholder"},e.value.search),r.value?u("div",{class:"search-pro-key-hints"},r.value.map(o=>u("kbd",{class:"search-pro-key"},o))):null])]}});const zm=Ri({loader:()=>_e(()=>import("./SearchResult-jru87sjv.js"),[]),loadingComponent:()=>{const e=ys(_s);return u(wu,{hint:e.value.loading})}});var Vm=W({name:"SearchModal",setup(){const e=Se(Es),t=xo(),n=gm(),r=ys(_s),o=Cu(),l=q(""),s=q([]),{suggestions:a}=Hm(s),i=q(!1),{index:c,prev:f,next:d}=$m(a),p=Ce(),h=Ce(),b=(_=c.value)=>{l.value=a.value[_],i.value=!1};Zt("keydown",_=>{i.value?_.key==="ArrowUp"?f():_.key==="ArrowDown"?d():_.key==="Enter"?b():_.key==="Escape"&&(i.value=!1):_.key==="Escape"&&(e.value=!1)});const y=Z0(()=>{var _,w;(((w=(_=o.value).splitWord)==null?void 0:w.call(_,l.value))??Promise.resolve(l.value.split(" "))).then(E=>{s.value=E})},Math.min(vo.searchDelay,vo.suggestDelay));return re(l,y,{immediate:!0}),de(()=>{const _=fm(document.body);re(e,async w=>{var E;_.value=w,w&&(await wt(),(E=p.value)==null||E.focus())}),rm(h,()=>{i.value=!1}),on(()=>{_.value=!1})}),()=>e.value?u("div",{class:"search-pro-modal-wrapper"},[u("div",{class:"search-pro-mask",onClick:()=>{e.value=!1,l.value=""}}),u("div",{class:"search-pro-modal"},[u("div",{class:"search-pro-box"},[u("form",[u("label",{for:"search-pro","aria-label":r.value.search},u(ws)),u("input",{ref:p,type:"search",class:"search-pro-input",id:"search-pro",placeholder:r.value.placeholder,spellcheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off",name:`${t.value.title}-search`,value:l.value,"aria-controls":"search-pro-results",onKeydown:_=>{const{key:w}=_;a.value.length&&(w==="Tab"?(b(),_.preventDefault()):(w==="ArrowDown"||w==="ArrowUp"||w==="Escape")&&_.preventDefault())},onInput:({target:_})=>{l.value=_.value,i.value=!0,c.value=0}}),l.value?u("button",{type:"reset",class:"search-pro-clear-button",innerHTML:km,onClick:()=>{l.value=""}}):null,i.value&&a.value.length?u("ul",{class:"search-pro-suggestions",ref:h},a.value.map((_,w)=>u("li",{class:["search-pro-suggestion",{active:w===c.value}],onClick:()=>{b(w)}},[u("kbd",{class:"search-pro-auto-complete",title:`Tab ${r.value.autocomplete}`},"Tab"),_]))):null]),u("button",{type:"button",class:"search-pro-close-button",onClick:()=>{e.value=!1,l.value=""}},r.value.cancel)]),u(zm,{queries:s.value,isFocusing:!i.value,onClose:()=>{e.value=!1},onUpdateQuery:_=>{l.value=_}}),n.value?null:u("div",{class:"search-pro-hints"},[u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:Im}),r.value.select]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:Nm}),u("kbd",{innerHTML:Dm}),r.value.navigate]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:Fm}),r.value.exit])])])]):null}}),Wm=Et({enhance({app:e}){Om(e),e.component("SearchBox",jm)},setup(){Bm()},rootComponents:[Vm]});const Um=Object.freeze(Object.defineProperty({__proto__:null,default:Wm},Symbol.toStringTag,{value:"Module"})),Su=()=>{const e=$e();return k(()=>e.value.readingTime??null)},qm=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:l,time:s}=t;return{time:n<1?o:s.replace("$time",Math.round(n).toString()),words:l.replace("$word",r.toString())}};var Ja={"/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"}};const Qa={words:"",time:""},Cl=typeof Ja>"u"?null:Ja,Km=()=>Cl?Rr(Cl):k(()=>null),Gm=()=>{if(typeof Cl>"u")return k(()=>Qa);const e=Su(),t=Km();return k(()=>e.value&&t.value?qm(e.value,t.value):Qa)},Sn=()=>Xc(),ye=()=>V1(),ft=()=>{const e=Sn();return k(()=>!!e.value.pure)},no=()=>null,Ym="719px",Jm="1440px",Qm="false",Xm="9",Ao={mobileBreakPoint:Ym,pcBreakPoint:Jm,enableThemeColor:Qm,colorNumber:Xm},Cs={},ku=e=>{const{icon:t="",color:n,size:r}=e,o=n||r?{}:null;return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),$r(t)?u("img",{class:"icon",src:t,alt:"","no-view":"",style:o}):is(t)?u("img",{class:"icon",src:De(t),alt:"","aria-hidden":"","no-view":"",style:o}):u(gt("FontIcon"),e)};ku.displayName="HopeIcon";var qe=ku;const xu=()=>{const e=ye();return k(()=>e.value.author)},Zm="http://.",Ss=()=>{const e=qn(),t=zt();return n=>{if(n)if(is(n))t.path!==n&&e.push(n);else if(Or(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(new URL(`${r}/${encodeURI(n)}`,Zm).pathname)}}},Tu=()=>{const e=xe(),t=xu();return k(()=>{const{author:n}=e.value;return n?qa(n):n===!1?[]:qa(t.value,!1)})},eg=()=>{const e=xe();return k(()=>o0(e.value.category??e.value.categories).map(t=>({name:t,path:""})))},tg=()=>{const e=xe();return k(()=>l0(e.value.tag??e.value.tags).map(t=>({name:t,path:""})))},ng=()=>{const e=xe(),t=$e();return k(()=>{const n=Hv(e.value.date);if(n)return n;const{createdTime:r}=t.value.git??{};return r?new Date(r):null})},rg=()=>{const e=ye(),t=$e(),n=xe(),r=Tu(),o=eg(),l=tg(),s=ng(),a=Su(),i=Gm(),c=k(()=>({author:r.value,category:o.value,date:s.value,localizedDate:t.value.localizedDate,tag:l.value,isOriginal:n.value.isOriginal??!1,readingTime:a.value,readingTimeLocale:i.value,pageview:n.value.pageview??!0})),f=k(()=>n.value.pageInfo??e.value.pageInfo??null);return{info:c,items:f}},ks=(e,t)=>"activeMatch"in t?new RegExp(t.activeMatch,"u").test(e.path):su(e,t.link),xs=(e,t)=>"children"in t?!!t.prefix&&su(e,t.prefix)||t.children.some(n=>xs(e,n)):ks(e,t),Sl=e=>!ns(e)&&!Or(e);var At=(e=>(e.title="t",e.shortTitle="s",e.icon="i",e.index="I",e.order="O",e.breadcrumbExclude="b",e))(At||{}),og=(e=>(e.type="y",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e))(og||{}),lg=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(lg||{});const mo=(e,t=!1,n)=>{const{meta:r,path:o,notFound:l}=Bt(e,n);return l?{text:o,link:o}:{text:!t&&r[At.shortTitle]?r[At.shortTitle]:r[At.title]||o,link:o,...r[At.icon]?{icon:r[At.icon]}:{}}},pn=(e="",t="")=>is(t)||Or(t)?t:`${gc(e)}${t}`,Au=(e,t)=>{const n=ke(e)?mo(pn(t,e)):e.link?{...e,link:Sl(e.link)?Bt(pn(t,e.link)).path:e.link}:e;if("children"in n){const r=pn(t,n.prefix),o=n.children==="structure"?Cs[r]:n.children;return{...n,prefix:r,children:o.map(l=>Au(l,r))}}return{...n}},kl=({config:e,prefix:t=""})=>e.map(n=>Au(n,t)),sg=({config:e,routePath:t,headerDepth:n})=>{const r=as(e).sort((o,l)=>l.length-o.length);for(const o of r)if(po(decodeURI(t),o)){const l=e[o];return kl({config:l==="structure"?Cs[o]:l||[],headerDepth:n,prefix:o})}return console.warn(`${decodeURI(t)} is missing sidebar config.`),[]},ag=({config:e,headerDepth:t,routeLocale:n,routePath:r})=>e==="structure"?kl({config:Cs[n],headerDepth:t,prefix:n}):wl(e)?kl({config:e,headerDepth:t}):Co(e)?sg({config:e,routePath:r,headerDepth:t}):[],Pu=Symbol(""),ig=()=>{const e=xe(),t=ye(),n=ln(),r=fv(),o=k(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),l=k(()=>e.value.headerDepth??t.value.headerDepth??2),s=k(()=>ag({config:o.value,headerDepth:l.value,routeLocale:n.value,routePath:r.value}));vn(Pu,s)},Ts=()=>{const e=Se(Pu);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},{mobileBreakPoint:cg,pcBreakPoint:ug}=Ao,Xa=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,Po=()=>{const e=q(!1),t=q(!1),n=()=>{e.value=window.innerWidth<=(Xa(cg)??719),t.value=window.innerWidth>=(Xa(ug)??1440)};return Oe("resize",n,!1),Oe("orientationchange",n,!1),de(()=>{n()}),{isMobile:e,isPC:t}},Lu=Symbol(""),Nr=()=>{const e=Se(Lu);if(!e)throw new Error("useDarkmode() is called without provider.");return e},fg=e=>{const t=Sn(),n=d1(),r=k(()=>t.value.darkmode??"switch"),o=ps("vuepress-theme-hope-scheme","auto"),l=k(()=>{const a=r.value;return a==="disable"?!1:a==="enable"?!0:a==="auto"?n.value:a==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),s=k(()=>{const a=r.value;return a==="switch"||a==="toggle"});e.provide(Lu,{canToggle:s,config:r,isDarkmode:l,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>l.value}})},dg=()=>{const{config:e,isDarkmode:t,status:n}=Nr();Qi(()=>{e.value==="disable"?n.value="light":e.value==="enable"?n.value="dark":e.value==="toggle"&&n.value==="auto"&&(n.value="light")}),de(()=>{re(t,r=>document.documentElement.setAttribute("data-theme",r?"dark":"light"),{immediate:!0})})};var pg=W({name:"PageFooter",setup(){const e=Sn(),t=ye(),n=xe(),r=Tu(),o=k(()=>{const{copyright:c,footer:f}=n.value;return f!==!1&&!!(c||f||t.value.displayFooter)}),l=k(()=>{const{footer:c}=n.value;return c===!1?!1:ke(c)?c:t.value.footer??""}),s=k(()=>r.value.map(({name:c})=>c).join(", ")),a=c=>`Copyright © ${new Date().getFullYear()} ${s.value} ${c?`${c} Licensed`:""}`,i=k(()=>{const{copyright:c,license:f=""}=n.value,{license:d}=e.value,{copyright:p}=t.value;return c??(f?a(f):p??(s.value||d?a(d):!1))});return()=>o.value?u("footer",{class:"vp-footer-wrapper"},[l.value?u("div",{class:"vp-footer",innerHTML:l.value}):null,i.value?u("div",{class:"vp-copyright",innerHTML:i.value}):null]):null}}),Ge=W({name:"AutoLink",props:{config:{type:Object,required:!0}},emits:["focusout"],slots:Object,setup(e,{emit:t,slots:n}){return()=>{const{icon:r}=e.config;return u(mv,{...e,onFocusout:()=>t("focusout")},{default:n.default?()=>n.default():null,before:n.before?()=>n.before():r?()=>u(qe,{icon:r}):null,after:n.after?()=>n.after():null})}}}),hg=W({name:"NavbarDropdown",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=$e(),r=kr(e,"config"),o=k(()=>r.value.ariaLabel??r.value.text),l=q(!1);re(()=>n.value.path,()=>{l.value=!1});const s=a=>{a.detail===0&&(l.value=!l.value)};return()=>{var a;return u("div",{class:["vp-dropdown-wrapper",{open:l.value}]},[u("button",{type:"button",class:"vp-dropdown-title","aria-label":o.value,onClick:s},[((a=t.title)==null?void 0:a.call(t))||[u(qe,{icon:r.value.icon}),e.config.text],u("span",{class:"arrow"}),u("ul",{class:"vp-dropdown"},r.value.children.map((i,c)=>{const f=c===r.value.children.length-1;return u("li",{class:"vp-dropdown-item"},"children"in i?[u("h4",{class:"vp-dropdown-subtitle"},i.link?u(Ge,{config:i,onFocusout:()=>{i.children.length===0&&f&&(l.value=!1)}}):i.text),u("ul",{class:"vp-dropdown-subitems"},i.children.map((d,p)=>u("li",{class:"vp-dropdown-subitem"},u(Ge,{config:d,onFocusout:()=>{p===i.children.length-1&&f&&(l.value=!1)}}))))]:u(Ge,{config:i,onFocusout:()=>{f&&(l.value=!1)}}))}))])])}}});const Ou=(e,t="")=>ke(e)?mo(pn(t,e)):"children"in e?{...e,...e.link&&Sl(e.link)?{link:Bt(pn(t,e.link)).path}:{},children:e.children.map(n=>Ou(n,pn(t,e.prefix)))}:{...e,link:Sl(e.link)?Bt(pn(t,e.link)).path:e.link},$u=()=>{const e=ye();return k(()=>(e.value.navbar||[]).map(t=>Ou(t)))},vg=()=>{const e=ye(),t=k(()=>e.value.repo),n=k(()=>t.value?Z1(t.value):null),r=k(()=>t.value?gs(t.value):null),o=k(()=>n.value?e.value.repoLabel??r.value??"Source":null);return k(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value??"Source",label:o.value,link:n.value})};var mg=W({name:"NavScreenMenu",props:{config:{type:Object,required:!0}},setup(e){const t=$e(),n=kr(e,"config"),r=k(()=>n.value.ariaLabel??n.value.text),o=q(!1);re(()=>t.value.path,()=>{o.value=!1});const l=(s,a)=>a[a.length-1]===s;return()=>[u("button",{type:"button",class:["vp-nav-screen-menu-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[u("span",{class:"text"},[u(qe,{icon:n.value.icon}),e.config.text]),u("span",{class:["arrow",o.value?"down":"end"]})]),u("ul",{class:["vp-nav-screen-menu",{hide:!o.value}]},n.value.children.map(s=>u("li",{class:"vp-nav-screen-menu-item"},"children"in s?[u("h4",{class:"vp-nav-screen-menu-subtitle"},s.link?u(Ge,{config:s,onFocusout:()=>{l(s,n.value.children)&&s.children.length===0&&(o.value=!1)}}):s.text),u("ul",{class:"vp-nav-screen-menu-subitems"},s.children.map(a=>u("li",{class:"vp-nav-screen-menu-subitem"},u(Ge,{config:a,onFocusout:()=>{l(a,s.children)&&l(s,n.value.children)&&(o.value=!1)}}))))]:u(Ge,{config:s,onFocusout:()=>{l(s,n.value.children)&&(o.value=!1)}}))))]}}),gg=W({name:"NavScreenLinks",setup(){const e=$u();return()=>e.value.length?u("nav",{class:"nav-screen-links"},e.value.map(t=>u("div",{class:"navbar-links-item"},"children"in t?u(mg,{config:t}):u(Ge,{config:t})))):null}});const Ru=()=>u(Re,{name:"dark"},()=>u("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Ru.displayName="DarkIcon";const Mu=()=>u(Re,{name:"light"},()=>u("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Mu.displayName="LightIcon";const Iu=()=>u(Re,{name:"auto"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));Iu.displayName="AutoIcon";const Du=()=>u(Re,{name:"enter-fullscreen"},()=>u("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));Du.displayName="EnterFullScreenIcon";const Nu=()=>u(Re,{name:"cancel-fullscreen"},()=>u("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Nu.displayName="CancelFullScreenIcon";const Fu=()=>u(Re,{name:"outlook"},()=>[u("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Fu.displayName="OutlookIcon";var Bu=W({name:"ColorModeSwitch",setup(){const{config:e,isDarkmode:t,status:n}=Nr(),r=ft(),o=()=>{e.value==="switch"?n.value={light:"dark",dark:"auto",auto:"light"}[n.value]:n.value=n.value==="light"?"dark":"light"},l=async s=>{if(!(document.startViewTransition&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!r.value)||!s){o();return}const a=s.clientX,i=s.clientY,c=Math.hypot(Math.max(a,innerWidth-a),Math.max(i,innerHeight-i)),f=t.value;await document.startViewTransition(async()=>{o(),await wt()}).ready,t.value!==f&&document.documentElement.animate({clipPath:t.value?[`circle(${c}px at ${a}px ${i}px)`,`circle(0px at ${a}px ${i}px)`]:[`circle(0px at ${a}px ${i}px)`,`circle(${c}px at ${a}px ${i}px)`]},{duration:400,pseudoElement:t.value?"::view-transition-old(root)":"::view-transition-new(root)"})};return()=>u("button",{type:"button",class:"vp-color-mode-switch",id:"color-mode-switch",onClick:l},[u(Iu,{style:{display:n.value==="auto"?"block":"none"}}),u(Ru,{style:{display:n.value==="dark"?"block":"none"}}),u(Mu,{style:{display:n.value==="light"?"block":"none"}})])}}),bg=W({name:"ColorMode",setup(){const e=ye(),{canToggle:t}=Nr(),n=k(()=>e.value.outlookLocales.darkmode);return()=>t.value?u("div",{class:"vp-color-mode"},[u("label",{class:"vp-color-mode-title",for:"color-mode-switch"},n.value),u(Bu)]):null}});const Za=Ao.enableThemeColor==="true";var Hu=W({name:"ToggleFullScreenButton",setup(){const e=ye(),{isSupported:t,isFullscreen:n,toggle:r}=hs(),o=k(()=>e.value.outlookLocales.fullscreen);return()=>t?u("div",{class:"full-screen-wrapper"},[u("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),u("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>r()},n.value?u(Nu):u(Du))]):null}}),ju=W({name:"OutlookSettings",setup(){const e=Sn(),t=ft(),n=k(()=>!t.value&&e.value.fullscreen);return()=>u(To,()=>[null,u(bg),n.value?u(Hu):null])}}),yg=W({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=$e(),{isMobile:o}=Po(),l=Ce(),s=Gc(l);return de(()=>{l.value=document.body,re(o,a=>{!a&&e.show&&(s.value=!1,t("close"))}),re(()=>r.value.path,()=>{s.value=!1,t("close")})}),on(()=>{s.value=!1}),()=>u(jn,{name:"fade",onEnter:()=>{s.value=!0},onAfterLeave:()=>{s.value=!1}},()=>{var a,i;return e.show?u("div",{id:"nav-screen",class:"vp-nav-screen"},u("div",{class:"vp-nav-screen-container"},[(a=n.before)==null?void 0:a.call(n),u(gg),u("div",{class:"vp-outlook-wrapper"},u(ju)),(i=n.after)==null?void 0:i.call(n)])):null})}}),wg=W({name:"NavbarBrand",setup(){const e=ln(),t=xo(),n=ye(),r=k(()=>n.value.home??e.value),o=k(()=>t.value.title),l=k(()=>n.value.navbarTitle??o.value),s=k(()=>n.value.logo?De(n.value.logo):null),a=k(()=>n.value.logoDark?De(n.value.logoDark):null);return()=>u(ht,{to:r.value,class:"vp-brand"},()=>[s.value?u("img",{class:["vp-nav-logo",{light:!!a.value}],src:s.value,alt:""}):null,a.value?u("img",{class:["vp-nav-logo dark"],src:a.value,alt:""}):null,l.value?u("span",{class:["vp-site-name",{"hide-in-pad":s.value&&(n.value.hideSiteNameOnMobile??!0)}]},l.value):null])}}),_g=W({name:"NavbarLinks",setup(){const e=$u();return()=>e.value.length?u("nav",{class:"vp-nav-links"},e.value.map(t=>u("div",{class:"vp-nav-item hide-in-mobile"},"children"in t?u(hg,{config:t}):u(Ge,{config:t})))):null}}),Eg=W({name:"RepoLink",setup(){const e=vg();return()=>e.value?u("div",{class:"vp-nav-item vp-action"},u("a",{class:"vp-action-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},u(e0,{type:e.value.type,style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const zu=({active:e=!1},{emit:t})=>u("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},u("span",[u("span",{class:"vp-top"}),u("span",{class:"vp-middle"}),u("span",{class:"vp-bottom"})]));zu.displayName="ToggleNavbarButton";const xl=(e,{emit:t})=>u("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},u("span",{class:"icon"}));xl.displayName="ToggleSidebarButton",xl.emits=["toggle"];var Cg=W({name:"OutlookButton",setup(){const e=Sn(),t=$e(),{canToggle:n}=Nr(),{isSupported:r}=hs(),o=ft(),l=q(!1),s=k(()=>!o.value&&e.value.fullscreen&&r),a=k(()=>n.value||s.value);return re(()=>t.value.path,()=>{l.value=!1}),()=>a.value?u("div",{class:"vp-nav-item hide-in-mobile"},n.value&&!s.value&&!Za?u(Bu):s.value&&!n.value&&!Za?u(Hu):u("button",{type:"button",class:["vp-outlook-button",{open:l.value}],tabindex:"-1","aria-hidden":!0},[u(Fu),u("div",{class:"vp-outlook-dropdown"},u(ju))])):null}}),Sg=W({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=ye(),{isMobile:o}=Po(),l=q(!1),s=k(()=>{const{navbarAutoHide:f="mobile"}=r.value;return f!=="none"&&(f==="always"||o.value)}),a=k(()=>r.value.navbarLayout??{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),i={Brand:wg,Language:no,Links:_g,Repo:Eg,Outlook:Cg,Search:Ke("Docsearch")?gt("Docsearch"):Ke("SearchBox")?gt("SearchBox"):no},c=f=>i[f]??(Ke(f)?gt(f):no);return()=>{var f,d,p,h,b,y,_,w,E;return[u("header",{key:"navbar",id:"navbar",class:["vp-navbar",{"auto-hide":s.value}]},[u("div",{class:"vp-navbar-start"},[u(xl,{onToggle:()=>{l.value&&(l.value=!1),t("toggleSidebar")}}),(f=n.startBefore)==null?void 0:f.call(n),(d=a.value.start)==null?void 0:d.map(g=>u(c(g))),(p=n.startAfter)==null?void 0:p.call(n)]),u("div",{class:"vp-navbar-center"},[(h=n.centerBefore)==null?void 0:h.call(n),(b=a.value.center)==null?void 0:b.map(g=>u(c(g))),(y=n.centerAfter)==null?void 0:y.call(n)]),u("div",{class:"vp-navbar-end"},[(_=n.endBefore)==null?void 0:_.call(n),(w=a.value.end)==null?void 0:w.map(g=>u(c(g))),(E=n.endAfter)==null?void 0:E.call(n),u(zu,{active:l.value,onToggle:()=>{l.value=!l.value}})])]),u(yg,{show:l.value,onClose:()=>{l.value=!1}},{before:n.screenTop?()=>n.screenTop():null,after:n.screenBottom?()=>n.screenBottom():null})]}}}),kg=W({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=zt();return()=>ke(e.config.link)?u(Ge,{class:["vp-sidebar-link",{active:ks(t,e.config)}],config:{...e.config,exact:!0}}):u("p",e,[u(qe,{icon:e.config.icon}),e.config.text])}}),xg=W({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=zt(),r=q(!1),o=k(()=>xs(n,e.config)),l=k(()=>ks(n,e.config)),s=k(()=>e.open||e.config.expanded&&!r.value);return()=>{const{collapsible:a,children:i=[],icon:c,prefix:f,link:d,text:p}=e.config;return u("section",{class:"vp-sidebar-group"},[u(a?"button":"p",{class:["vp-sidebar-header",{clickable:a||d,exact:l.value,active:o.value}],...a?{type:"button",onClick:()=>{r.value=!0,t("toggle")}}:{}},[u(qe,{icon:c}),d?u(Ge,{class:"vp-sidebar-title no-external-link-icon",config:{text:p,link:d}}):u("span",{class:"vp-sidebar-title"},p),a?u("span",{class:["vp-arrow",s.value?"down":"end"]}):null]),s.value||!a?u(Vu,{key:f,config:i}):null])}}}),Vu=W({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=zt(),n=q(-1),r=o=>{n.value=o===n.value?-1:o};return re(()=>t.path,()=>{const o=e.config.findIndex(l=>xs(t,l));n.value=o},{immediate:!0,flush:"post"}),()=>u("ul",{class:"vp-sidebar-links"},e.config.map((o,l)=>u("li","children"in o?u(xg,{config:o,open:l===n.value,onToggle:()=>r(l)}):u(kg,{config:o}))))}}),Tg=W({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=zt(),r=Ts(),o=Ce();return de(()=>{re(()=>n.hash,l=>{const s=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${l}"]`);if(!s)return;const{top:a,height:i}=o.value.getBoundingClientRect(),{top:c,height:f}=s.getBoundingClientRect();ca+i&&s.scrollIntoView(!1)},{immediate:!0})}),()=>{var l,s,a;return u("aside",{ref:o,key:"sidebar",id:"sidebar",class:"vp-sidebar"},[(l=t.top)==null?void 0:l.call(t),((s=t.default)==null?void 0:s.call(t))??u(Vu,{config:r.value}),(a=t.bottom)==null?void 0:a.call(t)])}}}),Wu=W({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=qn(),r=xe(),o=Sn(),l=ye(),{isMobile:s,isPC:a}=Po(),i=ft(),[c,f]=_l(!1),[d,p]=_l(!1),h=Ts(),b=q(!1),y=k(()=>e.noNavbar||r.value.navbar===!1||l.value.navbar===!1?!1:!!(l.value.logo??l.value.repo??l.value.navbar)),_=k(()=>e.noSidebar?!1:r.value.sidebar!==!1&&h.value.length!==0&&!r.value.home),w=k(()=>r.value.externalLinkIcon??o.value.externalLinkIcon??!0),E=k(()=>!e.noToc&&!r.value.home&&(r.value.toc??l.value.toc??!0)),g={x:0,y:0},C=I=>{g.x=I.changedTouches[0].clientX,g.y=I.changedTouches[0].clientY},R=I=>{const G=I.changedTouches[0].clientX-g.x,N=I.changedTouches[0].clientY-g.y;Math.abs(G)>Math.abs(N)*1.5&&Math.abs(G)>40&&(G>0&&g.x<=80?f(!0):f(!1))};let V=0;return Oe("scroll",e1(()=>{const I=window.scrollY;I<=58||I{I||f(!1)}),de(()=>{const I=Gc(document.body);re(c,N=>{I.value=N});const G=n.afterEach(()=>{f(!1)});on(()=>{I.value=!1,G()})}),()=>u(Ke("GlobalEncrypt")?gt("GlobalEncrypt"):ms,()=>u("div",{class:["theme-container",{"hide-navbar":b.value,"no-navbar":!y.value,"sidebar-collapsed":!s.value&&!a.value&&d.value,"sidebar-open":s.value&&c.value,"no-sidebar":!_.value&&!t.sidebar&&!t.sidebarTop&&!t.sidebarBottom,"external-link-icon":w.value,pure:i.value,"has-toc":E.value},e.containerClass,r.value.containerClass??""],onTouchStart:C,onTouchEnd:R},[y.value?u(Sg,{onToggleSidebar:()=>f()},{startBefore:t.navbarStartBefore?()=>t.navbarStartBefore():null,startAfter:t.navbarStartAfter?()=>t.navbarStartAfter():null,centerBefore:t.navbarCenterBefore?()=>t.navbarCenterBefore():null,centerAfter:t.navbarCenterAfter?()=>t.navbarCenterAfter():null,endBefore:t.navbarEndBefore?()=>t.navbarEndBefore():null,endAfter:t.navbarEndAfter?()=>t.navbarEndAfter():null,screenTop:t.navScreenTop?()=>t.navScreenTop():null,screenBottom:t.navScreenBottom?()=>t.navScreenBottom():null}):null,u(jn,{name:"fade"},()=>c.value?u("div",{class:"vp-sidebar-mask",onClick:()=>f(!1)}):null),u(jn,{name:"fade"},()=>s.value?null:u("div",{class:"toggle-sidebar-wrapper",onClick:()=>p()},u("span",{class:["arrow",d.value?"end":"start"]}))),u(Tg,{},{default:t.sidebar?()=>t.sidebar():null,top:t.sidebarTop?()=>t.sidebarTop():null,bottom:t.sidebarBottom?()=>t.sidebarBottom():null}),t.default(),u(pg)]))}});const ct=W({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>{const o={name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},l=()=>t.default();return e.type==="group"?u(Ip,o,l):u(jn,o,l)}}}),_r=({custom:e})=>u(Mc,{class:["theme-hope-content",{custom:e}]});_r.displayName="MarkdownContent",_r.props={custom:Boolean};const Uu=()=>u(Re,{name:"author"},()=>u("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));Uu.displayName="AuthorIcon";const qu=()=>u(Re,{name:"calendar"},()=>u("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));qu.displayName="CalendarIcon";const Ku=()=>u(Re,{name:"category"},()=>u("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));Ku.displayName="CategoryIcon";const Gu=()=>u(Re,{name:"print"},()=>u("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));Gu.displayName="PrintIcon";const Yu=()=>u(Re,{name:"tag"},()=>u("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));Yu.displayName="TagIcon";const Ju=()=>u(Re,{name:"timer"},()=>u("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));Ju.displayName="TimerIcon";const Qu=()=>u(Re,{name:"word"},()=>[u("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),u("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);Qu.displayName="WordIcon";const sn=()=>{const e=ye();return k(()=>e.value.metaLocales)};var Ag=W({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0}},setup(e){const t=sn(),n=ft();return()=>e.author.length?u("span",{class:"page-author-info","aria-label":`${t.value.author}${n.value?"":"🖊"}`,...n.value?{}:{"data-balloon-pos":"up"}},[u(Uu),u("span",e.author.map(r=>r.url?u("a",{class:"page-author-item",href:r.url,target:"_blank",rel:"noopener noreferrer"},r.name):u("span",{class:"page-author-item"},r.name))),u("span",{property:"author",content:e.author.map(r=>r.name).join(", ")})]):null}}),Pg=W({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0}},setup(e){const t=sn(),n=Ss(),r=ft();return()=>e.category.length?u("span",{class:"page-category-info","aria-label":`${t.value.category}${r.value?"":"🌈"}`,...r.value?{}:{"data-balloon-pos":"up"}},[u(Ku),e.category.map(({name:o,path:l})=>u("span",{class:["page-category-item",{[`color${ou(o,Number(Ao.colorNumber))}`]:!r.value,clickable:l}],role:l?"navigation":"",onClick:()=>{l&&n(l)}},o)),u("meta",{property:"articleSection",content:e.category.map(({name:o})=>o).join(",")})]):null}}),Lg=W({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""}},setup(e){const t=Oc(),n=sn(),r=ft();return()=>e.date?u("span",{class:"page-date-info","aria-label":`${n.value.date}${r.value?"":"📅"}`,...r.value?{}:{"data-balloon-pos":"up"}},[u(qu),u("span",u(To,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),u("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),Og=W({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=sn();return()=>e.isOriginal?u("span",{class:"page-original-info"},t.value.origin):null}}),$g=W({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null}},setup(e){const t=sn(),n=ft(),r=k(()=>{if(!e.readingTime)return null;const{minutes:o}=e.readingTime;return o<1?"PT1M":`PT${Math.round(o)}M`});return()=>{var o,l;return(o=e.readingTimeLocale)!=null&&o.time?u("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${n.value?"":"⌛"}`,...n.value?{}:{"data-balloon-pos":"up"}},[u(Ju),u("span",(l=e.readingTimeLocale)==null?void 0:l.time),u("meta",{property:"timeRequired",content:r.value})]):null}}}),Rg=W({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]}},setup(e){const t=sn(),n=Ss(),r=ft();return()=>e.tag.length?u("span",{class:"page-tag-info","aria-label":`${t.value.tag}${r.value?"":"🏷"}`,...r.value?{}:{"data-balloon-pos":"up"}},[u(Yu),e.tag.map(({name:o,path:l})=>u("span",{class:["page-tag-item",{[`color${ou(o,Number(Ao.colorNumber))}`]:!r.value,clickable:l}],role:l?"navigation":"",onClick:()=>{l&&n(l)}},o)),u("meta",{property:"keywords",content:e.tag.map(({name:o})=>o).join(",")})]):null}}),Mg=W({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null}},setup(e){const t=sn(),n=ft();return()=>{var r,o,l;return(r=e.readingTimeLocale)!=null&&r.words?u("span",{class:"page-word-info","aria-label":`${t.value.words}${n.value?"":"🔠"}`,...n.value?{}:{"data-balloon-pos":"up"}},[u(Qu),u("span",(o=e.readingTimeLocale)==null?void 0:o.words),u("meta",{property:"wordCount",content:(l=e.readingTime)==null?void 0:l.words})]):null}}}),Ig=W({name:"PageInfo",components:{AuthorInfo:Ag,CategoryInfo:Pg,DateInfo:Lg,OriginalInfo:Og,PageViewInfo:no,ReadingTimeInfo:$g,TagInfo:Rg,WordInfo:Mg},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=ft();return()=>e.items?u("div",{class:"page-info"},e.items.map(n=>u(gt(`${n}Info`),{...e.info,isPure:t.value}))):null}}),Dg=W({name:"PrintButton",setup(){const e=Sn(),t=ye();return()=>e.value.print===!1?null:u("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},u(Gu))}}),Ng=W({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=zt(),r=$e(),o=sn(),[l,s]=_l(),a=Ce(),i=q("-1.7rem"),c=d=>{var p;(p=a.value)==null||p.scrollTo({top:d,behavior:"smooth"})},f=()=>{if(a.value){const d=document.querySelector(".vp-toc-item.active");d?i.value=`${d.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return de(()=>{re(()=>n.hash,d=>{if(a.value){const p=document.querySelector(`#toc a.vp-toc-link[href$="${d}"]`);if(!p)return;const{top:h,height:b}=a.value.getBoundingClientRect(),{top:y,height:_}=p.getBoundingClientRect();yh+b&&c(a.value.scrollTop+y+_-h-b)}}),re(()=>n.fullPath,f,{flush:"post",immediate:!0})}),()=>{var b,y;const d=({title:_,level:w,slug:E})=>u(ht,{to:`#${E}`,class:["vp-toc-link",`level${w}`],onClick:()=>{s()}},()=>_),p=(_,w)=>_.length&&w>0?u("ul",{class:"vp-toc-list"},_.map(E=>{const g=p(E.children,w-1);return[u("li",{class:["vp-toc-item",{active:n.hash===`#${E.slug}`}]},d(E)),g?u("li",g):null]})):null,h=e.items.length?p(e.items,e.headerDepth):r.value.headers?p(r.value.headers,e.headerDepth):null;return h?u("div",{class:"vp-toc-placeholder"},[u("aside",{id:"toc"},[(b=t.before)==null?void 0:b.call(t),u("div",{class:"vp-toc-header",onClick:()=>{s()}},[o.value.toc,u(Dg),u("div",{class:["arrow",l.value?"down":"end"]})]),u("div",{class:["vp-toc-wrapper",l.value?"open":""],ref:a},[h,u("div",{class:"vp-toc-marker",style:{top:i.value}})]),(y=t.after)==null?void 0:y.call(t)])]):null}}}),Xu=W({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=$e(),n=ye(),r=Ce(),o=({target:l})=>{const s=document.querySelector(l.hash);if(s){const a=()=>{s.removeAttribute("tabindex"),s.removeEventListener("blur",a)};s.setAttribute("tabindex","-1"),s.addEventListener("blur",a),s.focus(),window.scrollTo(0,0)}};return de(()=>{re(()=>t.value.path,()=>r.value.focus())}),()=>[u("span",{ref:r,tabindex:"-1"}),u("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}});let ol=null,Zn=null;const Tl={wait:()=>ol,pending:()=>{ol=new Promise(e=>{Zn=e})},resolve:()=>{Zn==null||Zn(),ol=null,Zn=null}},Zu=(e,{slots:t})=>u(jn,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:Tl.resolve,onBeforeLeave:Tl.pending},()=>t.default());Zu.displayName="FadeSlideY";const Fg=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=rs(t);return n.forEach((l,s)=>{s!==n.length-1?(o+=`${l}/`,r.push({link:o,name:l||"Home"})):l!==""&&(o+=l,r.push({link:o,name:l}))}),r},ei=(e,t)=>e===!1?e:Co(e)?{...e,link:mo(e.link,!0,t).link}:ke(e)?mo(e,!0,t):null,Al=(e,t,n)=>{const r=e.findIndex(l=>l.link===t);if(r!==-1){const l=e[r+n];return l?l.link?l:"prefix"in l&&!Bt(l.prefix).notFound?{...l,link:l.prefix}:null:null}for(const l of e)if("children"in l){const s=Al(l.children,t,n);if(s)return s}const o=e.findIndex(l=>"prefix"in l&&l.prefix===t);if(o!==-1){const l=e[o+n];return l?l.link?l:"prefix"in l&&!Bt(l.prefix).notFound?{...l,link:l.prefix}:null:null}return null},Bg=()=>{const e=xe(),t=ye(),n=Ts(),r=zt(),o=k(()=>{const s=ei(e.value.prev,r.path);return s===!1?null:s??(t.value.prevLink===!1?null:Al(n.value,r.path,-1))}),l=k(()=>{const s=ei(e.value.next,r.path);return s===!1?null:s??(t.value.nextLink===!1?null:Al(n.value,r.path,1))});return{prevLink:o,nextLink:l}},Pl=(e,{slots:t})=>{var d,p;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:l,description:s,image:a,imageDark:i,header:c,features:f=[]}=e;return u("div",{class:"vp-feature-wrapper"},[n?u("div",{class:["vp-feature-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-feature",style:l?{color:l}:{}},[((d=t.image)==null?void 0:d.call(t,e))??[a?u("img",{class:["vp-feature-image",{light:i}],src:De(a),alt:""}):null,i?u("img",{class:"vp-feature-image dark",src:De(i),alt:""}):null],((p=t.info)==null?void 0:p.call(t,e))??[c?u("h2",{class:"vp-feature-header"},c):null,s?u("p",{class:"vp-feature-description",innerHTML:s}):null],f.length?u("div",{class:"vp-features"},f.map(({icon:h,title:b,details:y,link:_})=>{const w=[u("h3",{class:"vp-feature-title"},[u(qe,{icon:h}),u("span",{innerHTML:b})]),u("p",{class:"vp-feature-details",innerHTML:y})];return _?ns(_)?u("a",{class:"vp-feature-item link",href:_,"aria-label":b,target:"_blank"},w):u(ht,{class:"vp-feature-item link",to:_,"aria-label":b},()=>w):u("div",{class:"vp-feature-item"},w)})):null])])};Pl.displayName="FeaturePanel";var Hg=W({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=xe(),r=xo(),o=k(()=>n.value.heroFullScreen??!1),l=k(()=>{const{heroText:c,tagline:f}=n.value;return{text:c??r.value.title??"Hello",tagline:f??r.value.description??"",isFullScreen:o.value}}),s=k(()=>{const{heroText:c,heroImage:f,heroImageDark:d,heroAlt:p,heroImageStyle:h}=n.value;return{image:f?De(f):null,imageDark:d?De(d):null,imageStyle:h,alt:p??c??"",isFullScreen:o.value}}),a=k(()=>{const{bgImage:c,bgImageDark:f,bgImageStyle:d}=n.value;return{image:ke(c)?De(c):null,imageDark:ke(f)?De(f):null,bgStyle:d,isFullScreen:o.value}}),i=k(()=>n.value.actions??[]);return()=>{var c,f,d;return u("header",{class:["vp-hero-info-wrapper",{fullscreen:o.value}]},[((c=t.bg)==null?void 0:c.call(t,a.value))??[a.value.image?u("div",{class:["vp-hero-mask",{light:a.value.imageDark}],style:[{"background-image":`url(${a.value.image})`},a.value.bgStyle]}):null,a.value.imageDark?u("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${a.value.imageDark})`},a.value.bgStyle]}):null],u("div",{class:"vp-hero-info"},[((f=t.logo)==null?void 0:f.call(t,s.value))??u(ct,{appear:!0,type:"group"},()=>{const{image:p,imageDark:h,imageStyle:b,alt:y}=s.value;return[p?u("img",{key:"light",class:["vp-hero-image",{light:h}],style:b,src:p,alt:y}):null,h?u("img",{key:"dark",class:"vp-hero-image dark",style:b,src:h,alt:y}):null]}),((d=t.info)==null?void 0:d.call(t,l.value))??u("div",{class:"vp-hero-infos"},[l.value.text?u(ct,{appear:!0,delay:.04},()=>u("h1",{id:"main-title",class:"vp-hero-title"},l.value.text)):null,l.value.tagline?u(ct,{appear:!0,delay:.08},()=>u("p",{id:"main-description",innerHTML:l.value.tagline})):null,i.value.length?u(ct,{appear:!0,delay:.12},()=>u("p",{class:"vp-hero-actions"},i.value.map(p=>u(Ge,{class:["vp-hero-action",p.type??"default","no-external-link-icon"],config:p},p.icon?{before:()=>u(qe,{icon:p.icon})}:{})))):null])])])}}});const ef=(e,{slots:t})=>{var p,h,b;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:l,description:s,image:a,imageDark:i,header:c,highlights:f=[],type:d="un-order"}=e;return u("div",{class:"vp-highlight-wrapper",style:l?{color:l}:{}},[n?u("div",{class:["vp-highlight-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))??[a?u("img",{class:["vp-highlight-image",{light:i}],src:De(a),alt:""}):null,i?u("img",{class:"vp-highlight-image dark",src:De(i),alt:""}):null],((h=t.info)==null?void 0:h.call(t,e))??[u("div",{class:"vp-highlight-info-wrapper"},u("div",{class:"vp-highlight-info"},[c?u("h2",{class:"vp-highlight-header",innerHTML:c}):null,s?u("p",{class:"vp-highlight-description",innerHTML:s}):null,((b=t.highlights)==null?void 0:b.call(t,f))??u(d==="order"?"ol":d==="no-order"?"dl":"ul",{class:"vp-highlights"},f.map(({icon:y,title:_,details:w,link:E})=>{const g=[u(d==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[y?u(qe,{class:"vp-highlight-icon",icon:y}):null,u("span",{innerHTML:_})]),w?u(d==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:w}):null];return u(d==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:E}]},E?ns(E)?u("a",{class:"vp-highlight-item link",href:E,"aria-label":_,target:"_blank"},g):u(ht,{class:"vp-highlight-item link",to:E,"aria-label":_},()=>g):u("div",{class:"vp-highlight-item"},g))}))]))]])])};ef.displayName="HighlightPanel";var jg=W({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=xe(),r=k(()=>{const{features:l}=n.value;return wl(l)?l:null}),o=k(()=>{const{highlights:l}=n.value;return wl(l)?l:null});return()=>{var l,s,a,i;return u("main",{id:"main-content",class:"vp-page vp-project-home","aria-labelledby":n.value.heroText===null?"":"main-title"},[(l=t.top)==null?void 0:l.call(t),u(Hg),((s=o.value)==null?void 0:s.map(c=>"features"in c?u(Pl,c):u(ef,c)))??(r.value?u(ct,{appear:!0,delay:.24},()=>u(Pl,{features:r.value})):null),(a=t.center)==null?void 0:a.call(t),u(ct,{appear:!0,delay:.32},()=>u(_r)),(i=t.bottom)==null?void 0:i.call(t)])}}}),zg=W({name:"BreadCrumb",setup(){const e=$e(),t=ln(),n=xe(),r=ye(),o=Ce([]),l=k(()=>(n.value.breadcrumb??r.value.breadcrumb??!0)&&o.value.length>1),s=k(()=>n.value.breadcrumbIcon??r.value.breadcrumbIcon??!0),a=()=>{const i=Fg(e.value.path,t.value).map(({link:c,name:f})=>{const{path:d,meta:p,notFound:h}=Bt(c);return h||p[At.breadcrumbExclude]?null:{title:p[At.shortTitle]||p[At.title]||f,icon:p[At.icon],path:d}}).filter(c=>c!==null);i.length>1&&(o.value=i)};return de(()=>{re(()=>e.value.path,a,{immediate:!0})}),()=>u("nav",{class:["vp-breadcrumb",{disable:!l.value}]},l.value?u("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},o.value.map((i,c)=>u("li",{class:{"is-active":o.value.length-1===c},property:"itemListElement",typeof:"ListItem"},[u(ht,{to:i.path,property:"item",typeof:"WebPage"},()=>[s.value?u(qe,{icon:i.icon}):null,u("span",{property:"name"},i.title||"Unknown")]),u("meta",{property:"position",content:c+1})]))):[])}}),Vg=W({name:"PageNav",setup(){const e=ye(),t=Ss(),{prevLink:n,nextLink:r}=Bg();return Oe("keydown",o=>{o.altKey&&(o.key==="ArrowRight"?r.value&&(t(r.value.link),o.preventDefault()):o.key==="ArrowLeft"&&n.value&&(t(n.value.link),o.preventDefault()))}),()=>n.value||r.value?u("nav",{class:"vp-page-nav"},[n.value?u(Ge,{class:"prev",config:n.value},()=>{var o,l;return[u("div",{class:"hint"},[u("span",{class:"arrow start"}),e.value.metaLocales.prev]),u("div",{class:"link"},[u(qe,{icon:(o=n.value)==null?void 0:o.icon}),(l=n.value)==null?void 0:l.text])]}):null,r.value?u(Ge,{class:"next",config:r.value},()=>{var o,l;return[u("div",{class:"hint"},[e.value.metaLocales.next,u("span",{class:"arrow end"})]),u("div",{class:"link"},[(o=r.value)==null?void 0:o.text,u(qe,{icon:(l=r.value)==null?void 0:l.icon})])]}):null]):null}});const Wg=()=>{const e=ye(),t=$e(),n=xe();return k(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})},Ug={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},qg=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const l=gs(e);let s;return o?s=o:l!==null&&(s=Ug[l]),s?s.replace(/:repo/u,$r(e)?e:`https://github.com/${e}`).replace(/:branch/u,t).replace(/:path/u,bc(`${rs(n)}/${r}`)):null},Kg=()=>{const e=ye(),t=$e(),n=xe();return k(()=>{const{repo:r,docsRepo:o=r,docsBranch:l="main",docsDir:s="",editLink:a,editLinkPattern:i=""}=e.value;if(!(n.value.editLink??a??!0)||!o)return null;const c=qg({docsRepo:o,docsBranch:l,docsDir:s,editLinkPattern:i,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},Gg=()=>{const e=xo(),t=ye(),n=$e(),r=xe();return k(()=>{var o,l;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((o=n.value.git)!=null&&o.updatedTime)?null:new Date((l=n.value.git)==null?void 0:l.updatedTime).toLocaleString(e.value.lang)})};var Yg=W({name:"PageTitle",setup(){const e=$e(),t=xe(),n=ye(),{info:r,items:o}=rg();return()=>u("div",{class:"vp-page-title"},[u("h1",[n.value.titleIcon===!1?null:u(qe,{icon:t.value.icon}),e.value.title]),u(Ig,{info:r.value,...o.value===null?{}:{items:o.value}}),u("hr")])}});const tf=()=>u(Re,{name:"edit"},()=>[u("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),u("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);tf.displayName="EditIcon";var Jg=W({name:"PageMeta",setup(){const e=ye(),t=Kg(),n=Gg(),r=Wg();return()=>{var l;const{metaLocales:o}=e.value;return u("footer",{class:"vp-page-meta"},[t.value?u("div",{class:"vp-meta-item edit-link"},u(Ge,{class:"vp-meta-label",config:t.value},{before:()=>u(tf)})):null,u("div",{class:"vp-meta-item git-info"},[n.value?u("div",{class:"update-time"},[u("span",{class:"vp-meta-label"},`${o.lastUpdated}: `),u(To,()=>u("span",{class:"vp-meta-info"},n.value))]):null,(l=r.value)!=null&&l.length?u("div",{class:"contributors"},[u("span",{class:"vp-meta-label"},`${o.contributors}: `),r.value.map(({email:s,name:a},i)=>[u("span",{class:"vp-meta-info",title:`email: ${s}`},a),i!==r.value.length-1?",":""])]):null])])}}}),Qg=W({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=xe(),{isDarkmode:r}=Nr(),o=ye(),l=k(()=>n.value.toc??o.value.toc??!0),s=k(()=>n.value.headerDepth??o.value.headerDepth??2);return()=>u("main",{id:"main-content",class:"vp-page"},u(Ke("LocalEncrypt")?gt("LocalEncrypt"):ms,()=>{var a,i,c,f;return[(a=t.top)==null?void 0:a.call(t),n.value.cover?u("div",{class:"page-cover"},u("img",{src:De(n.value.cover),alt:"","no-view":""})):null,u(zg),u(Yg),l.value?u(Ng,{headerDepth:s.value},{before:t.tocBefore?()=>t.tocBefore():null,after:t.tocAfter?()=>t.tocAfter():null}):null,(i=t.contentBefore)==null?void 0:i.call(t),u(_r),(c=t.contentAfter)==null?void 0:c.call(t),u(Jg),u(Vg),Ke("CommentService")?u(gt("CommentService"),{darkmode:r.value}):null,(f=t.bottom)==null?void 0:f.call(t)]}))}}),Xg=W({name:"PortfolioHero",slots:Object,setup(e,{slots:t}){const n=xu(),r=xe(),o=q(0),l=k(()=>{var p;return((p=r.value.titles)==null?void 0:p[o.value])??""}),s=q(""),a=k(()=>{const{name:p,avatar:h,avatarDark:b,avatarAlt:y,avatarStyle:_}=r.value;return{name:p??n.value.name,avatar:h?De(h):null,avatarDark:b?De(b):null,avatarStyle:_,alt:(y||p)??""}}),i=k(()=>{const{bgImage:p,bgImageDark:h,bgImageStyle:b}=r.value;return{image:ke(p)?De(p):null,imageDark:ke(h)?De(h):null,bgStyle:b}}),c=k(()=>{const{welcome:p,name:h,titles:b,medias:y}=r.value;return{name:h??n.value.name,welcome:p??"👋 Hi There, I'm",title:s.value,titles:b??[],medias:y??[]}}),f=()=>{s.value="";let p=0,h=!1;const b=async()=>{if(!h)if(s.value+=l.value[p],p+=1,await wt(),p{b()},150);else{const y=c.value.titles.length;setTimeout(()=>{o.value=y<=1||o.value===c.value.titles.length-1?0:o.value+1},1e3)}};return b(),()=>{h=!0}};let d;return de(()=>{re(l,()=>{d==null||d(),d=f()},{immediate:!0})}),()=>{var p,h,b;return u("section",{id:"portfolio",class:["vp-portfolio",{bg:i.value.image}]},[((p=t.bg)==null?void 0:p.call(t,i.value))??[i.value.image?u("div",{class:["vp-portfolio-mask",{light:i.value.imageDark}],style:[{background:`url(${i.value.image}) center/cover no-repeat`},i.value.bgStyle]}):null,i.value.imageDark?u("div",{class:"vp-portfolio-mask dark",style:[{background:`url(${i.value.imageDark}) center/cover no-repeat`},i.value.bgStyle]}):null],((h=t.avatar)==null?void 0:h.call(t,a.value))??u("div",{class:"vp-portfolio-avatar"},[u(ct,{delay:.04},()=>{const{avatarDark:y,name:_,alt:w,avatarStyle:E}=a.value;return[u("img",{key:"light",class:{light:y},src:a.value.avatar,title:_,alt:w,style:E}),y?u("img",{key:"dark",class:"dark",src:y,title:_,alt:w,style:E}):null]})]),u("div",{class:"vp-portfolio-container"},((b=t.info)==null?void 0:b.call(t,c.value))??u("div",{class:"vp-portfolio-info"},[u(ct,{appear:!0,delay:.08},()=>u("h6",{class:"vp-portfolio-welcome"},c.value.welcome)),u(ct,{appear:!0,delay:.12},()=>u("h1",{class:"vp-portfolio-name",id:"main-title"},c.value.name)),u(ct,{appear:!0,delay:.16},()=>u("h2",{class:"vp-portfolio-title"},s.value)),u(ct,{appear:!0,delay:.2},()=>c.value.medias.length?u("div",{class:"vp-portfolio-medias"},c.value.medias.map(({name:y,url:_,icon:w})=>u("a",{class:"vp-portfolio-media",href:_,rel:"noopener noreferrer",target:"_blank",title:y},u(qe,{icon:w})))):Ke("SocialMedias")?u(gt("SocialMedias")):null)]))])}}}),Zg=W({name:"PortfolioHome",setup(){const e=xe(),t=k(()=>e.value.content??"portfolio");return()=>u("main",{id:"main-content",class:"vp-page vp-portfolio-home","aria-labelledby":"main-title"},[u(Xg),t.value==="none"?null:u("div",{},u(ct,{appear:!0,delay:.24},()=>u(_r,{class:{"vp-portfolio-content":t.value==="portfolio"}})))])}}),e2=W({name:"Layout",slots:Object,setup(e,{slots:t}){ye();const n=$e(),r=xe(),o=ft(),{isMobile:l}=Po(),s=k(()=>"none");return()=>[u(Xu),u(Wu,{},{default:()=>{var a;return((a=t.default)==null?void 0:a.call(t))??(r.value.portfolio?u(Zg):r.value.home?u(jg):u(o.value?ms:Zu,()=>u(Qg,{key:n.value.path},{top:t.top?()=>t.top():null,bottom:t.bottom?()=>t.bottom():null,contentBefore:t.contentBefore?()=>t.contentBefore():null,contentAfter:t.contentAfter?()=>t.contentAfter():null,tocBefore:t.tocBefore?()=>t.tocBefore():null,tocAfter:t.tocAfter?()=>t.tocAfter():null})))},navScreenBottom:s.value==="none"&&Ke("BloggerInfo")?()=>u(gt("BloggerInfo")):null,sidebar:!l.value&&s.value==="always"&&Ke("BloggerInfo")?()=>u(gt("BloggerInfo")):null})]}}),t2=W({name:"NotFoundHint",setup(){const e=ye(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>u("div",{class:"not-found-hint"},[u("p",{class:"error-code"},"404"),u("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),u("p",{class:"error-hint"},t())])}}),n2=W({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=qn(),r=ln(),o=ye();return()=>[u(Xu),u(Wu,{noSidebar:!0},()=>{var l;return u("main",{id:"main-content",class:"vp-page not-found"},((l=t.default)==null?void 0:l.call(t))??[u(t2),u("div",{class:"actions"},[u("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),u("button",{type:"button",class:"action-button",onClick:()=>{n.push(o.value.home??r.value)}},o.value.routeLocales.home)])])})]}});k1(e=>{const t=e.t,n=e.I!==!1,r=e.i;return n?{title:t,content:r?()=>[u(qe,{icon:r}),t]:null,order:e.O,index:e.I}:null});const r2=Et({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await Tl.wait(),n(...r)),fg(e),e.component("HopeIcon",qe)},setup:()=>{dg(),ig()},layouts:{Layout:e2,NotFound:n2}}),o2=Object.freeze(Object.defineProperty({__proto__:null,default:r2},Symbol.toStringTag,{value:"Module"})),Zr=[yv,Vv,S1,O1,I1,H1,q1,X1,A0,U0,Um,o2].map(e=>e.default).filter(Boolean),l2=JSON.parse('{"base":"/ModernCpp-ConcurrentProgramming-Tutorial/","lang":"zh-CN","title":"现代C++并发编程教程","description":"现代C++并发编程教程","head":[["link",{"rel":"icon","href":"/ModernCpp-ConcurrentProgramming-Tutorial/image/现代C++并发编程教程.png"}]],"locales":{}}');var nr=Ce(l2),s2=Dh,a2=()=>{const e=sv({history:s2(rs("/ModernCpp-ConcurrentProgramming-Tutorial/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===It){const r=Bt(t.fullPath);if(r.path!==t.fullPath)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},i2=e=>{e.component("ClientOnly",To),e.component("Content",Mc),e.component("RouteLink",ht)},c2=(e,t,n)=>{const r=k(()=>t.currentRoute.value.path),o=ql((_,w)=>({get(){return _(),t.currentRoute.value.meta._pageChunk},set(E){t.currentRoute.value.meta._pageChunk=E,w()}})),l=k(()=>un.resolveLayouts(n)),s=k(()=>un.resolveRouteLocale(nr.value.locales,r.value)),a=k(()=>un.resolveSiteLocaleData(nr.value,s.value)),i=k(()=>o.value.comp),c=k(()=>o.value.data),f=k(()=>c.value.frontmatter),d=k(()=>un.resolvePageHeadTitle(c.value,a.value)),p=k(()=>un.resolvePageHead(d.value,f.value,a.value)),h=k(()=>un.resolvePageLang(c.value,a.value)),b=k(()=>un.resolvePageLayout(c.value,l.value)),y={layouts:l,pageData:c,pageComponent:i,pageFrontmatter:f,pageHead:p,pageHeadTitle:d,pageLang:h,pageLayout:b,redirects:gl,routeLocale:s,routePath:r,routes:Bn,siteData:nr,siteLocaleData:a};return e.provide(ss,y),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>p.value},$headTitle:{get:()=>d.value},$lang:{get:()=>h.value},$page:{get:()=>c.value},$routeLocale:{get:()=>s.value},$site:{get:()=>nr.value},$siteLocale:{get:()=>a.value},$withBase:{get:()=>De}}),y},u2=()=>{const e=cv(),t=Oc();let n=[];const r=()=>{e.value.forEach(s=>{const a=f2(s);a&&n.push(a)})},o=()=>{const s=[];return e.value.forEach(a=>{const i=d2(a);i&&s.push(i)}),s},l=()=>{document.documentElement.lang=t.value;const s=o();n.forEach((a,i)=>{const c=s.findIndex(f=>a.isEqualNode(f));c===-1?(a.remove(),delete n[i]):s.splice(c,1)}),s.forEach(a=>document.head.appendChild(a)),n=[...n.filter(a=>!!a),...s]};vn(pv,l),de(()=>{r(),re(e,l,{immediate:!1})})},f2=([e,t,n=""])=>{const r=Object.entries(t).map(([a,i])=>ke(i)?`[${a}=${JSON.stringify(i)}]`:i===!0?`[${a}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(a=>a.innerText===n)||null},d2=([e,t,n])=>{if(!ke(e))return null;const r=document.createElement(e);return Co(t)&&Object.entries(t).forEach(([o,l])=>{ke(l)?r.setAttribute(o,l):l===!0&&r.setAttribute(o,"")}),ke(n)&&r.appendChild(document.createTextNode(n)),r},p2=zp,h2=async()=>{var n;const e=p2({name:"Vuepress",setup(){var l;u2();for(const s of Zr)(l=s.setup)==null||l.call(s);const r=Zr.flatMap(({rootComponents:s=[]})=>s.map(a=>u(a))),o=uv();return()=>[u(o.value),r]}}),t=a2();i2(e),c2(e,t,Zr);for(const r of Zr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:nr}));return e.use(t),{app:e,router:t}};h2().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Ce as A,de as B,Cu as C,Pm as D,on as E,y2 as F,Co as G,Cm as H,km as I,Z0 as J,vo as K,ke as L,_s as P,ht as R,_e as _,oc as a,lc as b,v2 as c,h2 as createVueApp,m2 as d,Te as e,g2 as f,W as g,qn as h,ln as i,ys as j,Sr as k,q as l,k as m,Zt as n,Yd as o,re as p,u as q,gt as r,wu as s,kr as t,b2 as u,Sm as v,nd as w,_m as x,Em as y,$e as z}; diff --git a/assets/arc-BDtf7cdN.js b/assets/arc-BDtf7cdN.js new file mode 100644 index 00000000..1d64bf70 --- /dev/null +++ b/assets/arc-BDtf7cdN.js @@ -0,0 +1 @@ +import{w as ln,c as U}from"./path-CbwjOpE9.js";import{aO as an,aP as Y,aQ as O,aR as rn,aS as y,aK as on,aT as z,aU as _,aV as un,aW as t,aX as sn,aY as tn,aZ as fn}from"./mermaid.core-Bc1j4tiv.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,m=a-R,r=m*E-n*i;if(!(r*ru*u+X*X&&(K=w,Q=d),{cx:K,cy:Q,x01:-n,y01:-m,x11:K*(v/T-1),y11:Q*(v/T-1)}}function vn(){var l=cn,h=yn,D=U(0),S=null,v=gn,R=mn,V=pn,a=null,E=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=R.apply(this,arguments)-rn,W=un(c-f),o=c>f;if(a||(a=n=E()),sy))a.moveTo(0,0);else if(W>on-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!o),r>y&&(a.moveTo(r*Y(c),r*O(c)),a.arc(0,0,r,c,f,o));else{var p=f,g=c,A=f,T=c,P=W,I=W,K=V.apply(this,arguments)/2,Q=K>y&&(S?+S.apply(this,arguments):z(r*r+s*s)),w=_(un(s-r)/2,+D.apply(this,arguments)),d=w,x=w,e,u;if(Q>y){var X=sn(Q/r*O(K)),B=sn(Q/s*O(K));(P-=X*2)>y?(X*=o?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(I=0,p=g=(f+c)/2)}var Z=s*Y(p),j=s*O(p),C=r*Y(T),F=r*O(T);if(w>y){var G=s*Y(g),H=s*O(g),L=r*Y(A),M=r*O(A),q;if(Wy?x>y?(e=J(L,M,Z,j,s,x,o),u=J(G,H,C,F,s,x,o),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(C,F):d>y?(e=J(C,F,G,H,r,-d,o),u=J(Z,j,L,M,r,-d,o),a.lineTo(e.cx+e.x01,e.cy+e.y01),dt in i?xo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>_o(i,typeof t!="symbol"?t+"":t,e);/*! + * @kurkle/color v0.3.2 + * https://github.com/kurkle/color#readme + * (c) 2023 Jukka Kurkela + * Released under the MIT License + */function ye(i){return i+.5|0}const xt=(i,t,e)=>Math.max(Math.min(i,e),t);function ee(i){return xt(ye(i*2.55),0,255)}function Mt(i){return xt(ye(i*255),0,255)}function ft(i){return xt(ye(i/2.55)/100,0,1)}function Zi(i){return xt(ye(i*100),0,100)}const it={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},xi=[..."0123456789ABCDEF"],yo=i=>xi[i&15],vo=i=>xi[(i&240)>>4]+xi[i&15],we=i=>(i&240)>>4===(i&15),Mo=i=>we(i.r)&&we(i.g)&&we(i.b)&&we(i.a);function ko(i){var t=i.length,e;return i[0]==="#"&&(t===4||t===5?e={r:255&it[i[1]]*17,g:255&it[i[2]]*17,b:255&it[i[3]]*17,a:t===5?it[i[4]]*17:255}:(t===7||t===9)&&(e={r:it[i[1]]<<4|it[i[2]],g:it[i[3]]<<4|it[i[4]],b:it[i[5]]<<4|it[i[6]],a:t===9?it[i[7]]<<4|it[i[8]]:255})),e}const wo=(i,t)=>i<255?t(i):"";function So(i){var t=Mo(i)?yo:vo;return i?"#"+t(i.r)+t(i.g)+t(i.b)+wo(i.a,t):void 0}const Po=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function vn(i,t,e){const s=t*Math.min(e,1-e),n=(o,a=(o+i/30)%12)=>e-s*Math.max(Math.min(a-3,9-a,1),-1);return[n(0),n(8),n(4)]}function Do(i,t,e){const s=(n,o=(n+i/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[s(5),s(3),s(1)]}function Oo(i,t,e){const s=vn(i,1,.5);let n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)s[n]*=1-t-e,s[n]+=t;return s}function Co(i,t,e,s,n){return i===n?(t-e)/s+(t.5?h/(2-o-a):h/(o+a),l=Co(e,s,n,h,o),l=l*60+.5),[l|0,c||0,r]}function Fi(i,t,e,s){return(Array.isArray(t)?i(t[0],t[1],t[2]):i(t,e,s)).map(Mt)}function Ii(i,t,e){return Fi(vn,i,t,e)}function Ao(i,t,e){return Fi(Oo,i,t,e)}function To(i,t,e){return Fi(Do,i,t,e)}function Mn(i){return(i%360+360)%360}function Lo(i){const t=Po.exec(i);let e=255,s;if(!t)return;t[5]!==s&&(e=t[6]?ee(+t[5]):Mt(+t[5]));const n=Mn(+t[2]),o=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?s=Ao(n,o,a):t[1]==="hsv"?s=To(n,o,a):s=Ii(n,o,a),{r:s[0],g:s[1],b:s[2],a:e}}function Ro(i,t){var e=Ei(i);e[0]=Mn(e[0]+t),e=Ii(e),i.r=e[0],i.g=e[1],i.b=e[2]}function Eo(i){if(!i)return;const t=Ei(i),e=t[0],s=Zi(t[1]),n=Zi(t[2]);return i.a<255?`hsla(${e}, ${s}%, ${n}%, ${ft(i.a)})`:`hsl(${e}, ${s}%, ${n}%)`}const Ji={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Qi={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Fo(){const i={},t=Object.keys(Qi),e=Object.keys(Ji);let s,n,o,a,r;for(s=0;s>16&255,o>>8&255,o&255]}return i}let Se;function Io(i){Se||(Se=Fo(),Se.transparent=[0,0,0,0]);const t=Se[i.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const zo=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Bo(i){const t=zo.exec(i);let e=255,s,n,o;if(t){if(t[7]!==s){const a=+t[7];e=t[8]?ee(a):xt(a*255,0,255)}return s=+t[1],n=+t[3],o=+t[5],s=255&(t[2]?ee(s):xt(s,0,255)),n=255&(t[4]?ee(n):xt(n,0,255)),o=255&(t[6]?ee(o):xt(o,0,255)),{r:s,g:n,b:o,a:e}}}function Vo(i){return i&&(i.a<255?`rgba(${i.r}, ${i.g}, ${i.b}, ${ft(i.a)})`:`rgb(${i.r}, ${i.g}, ${i.b})`)}const ai=i=>i<=.0031308?i*12.92:Math.pow(i,1/2.4)*1.055-.055,Ht=i=>i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4);function Wo(i,t,e){const s=Ht(ft(i.r)),n=Ht(ft(i.g)),o=Ht(ft(i.b));return{r:Mt(ai(s+e*(Ht(ft(t.r))-s))),g:Mt(ai(n+e*(Ht(ft(t.g))-n))),b:Mt(ai(o+e*(Ht(ft(t.b))-o))),a:i.a+e*(t.a-i.a)}}function Pe(i,t,e){if(i){let s=Ei(i);s[t]=Math.max(0,Math.min(s[t]+s[t]*e,t===0?360:1)),s=Ii(s),i.r=s[0],i.g=s[1],i.b=s[2]}}function kn(i,t){return i&&Object.assign(t||{},i)}function ts(i){var t={r:0,g:0,b:0,a:255};return Array.isArray(i)?i.length>=3&&(t={r:i[0],g:i[1],b:i[2],a:255},i.length>3&&(t.a=Mt(i[3]))):(t=kn(i,{r:0,g:0,b:0,a:1}),t.a=Mt(t.a)),t}function No(i){return i.charAt(0)==="r"?Bo(i):Lo(i)}class ue{constructor(t){if(t instanceof ue)return t;const e=typeof t;let s;e==="object"?s=ts(t):e==="string"&&(s=ko(t)||Io(t)||No(t)),this._rgb=s,this._valid=!!s}get valid(){return this._valid}get rgb(){var t=kn(this._rgb);return t&&(t.a=ft(t.a)),t}set rgb(t){this._rgb=ts(t)}rgbString(){return this._valid?Vo(this._rgb):void 0}hexString(){return this._valid?So(this._rgb):void 0}hslString(){return this._valid?Eo(this._rgb):void 0}mix(t,e){if(t){const s=this.rgb,n=t.rgb;let o;const a=e===o?.5:e,r=2*a-1,l=s.a-n.a,c=((r*l===-1?r:(r+l)/(1+r*l))+1)/2;o=1-c,s.r=255&c*s.r+o*n.r+.5,s.g=255&c*s.g+o*n.g+.5,s.b=255&c*s.b+o*n.b+.5,s.a=a*s.a+(1-a)*n.a,this.rgb=s}return this}interpolate(t,e){return t&&(this._rgb=Wo(this._rgb,t._rgb,e)),this}clone(){return new ue(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){const e=this._rgb;return e.a*=1-t,this}greyscale(){const t=this._rgb,e=ye(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){const e=this._rgb;return e.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Pe(this._rgb,2,t),this}darken(t){return Pe(this._rgb,2,-t),this}saturate(t){return Pe(this._rgb,1,t),this}desaturate(t){return Pe(this._rgb,1,-t),this}rotate(t){return Ro(this._rgb,t),this}}/*! + * Chart.js v4.4.4 + * https://www.chartjs.org + * (c) 2024 Chart.js Contributors + * Released under the MIT License + */function ht(){}const Ho=(()=>{let i=0;return()=>i++})();function L(i){return i===null||typeof i>"u"}function V(i){if(Array.isArray&&Array.isArray(i))return!0;const t=Object.prototype.toString.call(i);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function A(i){return i!==null&&Object.prototype.toString.call(i)==="[object Object]"}function W(i){return(typeof i=="number"||i instanceof Number)&&isFinite(+i)}function tt(i,t){return W(i)?i:t}function D(i,t){return typeof i>"u"?t:i}const jo=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100:+i/t,wn=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100*t:+i;function F(i,t,e){if(i&&typeof i.call=="function")return i.apply(e,t)}function R(i,t,e,s){let n,o,a;if(V(i))for(o=i.length,n=0;ni,x:i=>i.x,y:i=>i.y};function Xo(i){const t=i.split("."),e=[];let s="";for(const n of t)s+=n,s.endsWith("\\")?s=s.slice(0,-1)+".":(e.push(s),s="");return e}function Uo(i){const t=Xo(i);return e=>{for(const s of t){if(s==="")break;e=e&&e[s]}return e}}function kt(i,t){return(es[t]||(es[t]=Uo(t)))(i)}function zi(i){return i.charAt(0).toUpperCase()+i.slice(1)}const ge=i=>typeof i<"u",wt=i=>typeof i=="function",is=(i,t)=>{if(i.size!==t.size)return!1;for(const e of i)if(!t.has(e))return!1;return!0};function Ko(i){return i.type==="mouseup"||i.type==="click"||i.type==="contextmenu"}const z=Math.PI,I=2*z,qo=I+z,qe=Number.POSITIVE_INFINITY,Go=z/180,j=z/2,Ot=z/4,ss=z*2/3,_t=Math.log10,ct=Math.sign;function le(i,t,e){return Math.abs(i-t)n-o).pop(),t}function Yt(i){return!isNaN(parseFloat(i))&&isFinite(i)}function Jo(i,t){const e=Math.round(i);return e-t<=i&&e+t>=i}function Pn(i,t,e){let s,n,o;for(s=0,n=i.length;sl&&c=Math.min(t,e)-s&&i<=Math.max(t,e)+s}function Vi(i,t,e){e=e||(a=>i[a]1;)o=n+s>>1,e(o)?n=o:s=o;return{lo:n,hi:s}}const pt=(i,t,e,s)=>Vi(i,e,s?n=>{const o=i[n][t];return oi[n][t]Vi(i,e,s=>i[s][t]>=e);function ia(i,t,e){let s=0,n=i.length;for(;ss&&i[n-1]>e;)n--;return s>0||n{const s="_onData"+zi(e),n=i[e];Object.defineProperty(i,e,{configurable:!0,enumerable:!1,value(...o){const a=n.apply(this,o);return i._chartjs.listeners.forEach(r=>{typeof r[s]=="function"&&r[s](...o)}),a}})})}function as(i,t){const e=i._chartjs;if(!e)return;const s=e.listeners,n=s.indexOf(t);n!==-1&&s.splice(n,1),!(s.length>0)&&(On.forEach(o=>{delete i[o]}),delete i._chartjs)}function Cn(i){const t=new Set(i);return t.size===i.length?i:Array.from(t)}const An=function(){return typeof window>"u"?function(i){return i()}:window.requestAnimationFrame}();function Tn(i,t){let e=[],s=!1;return function(...n){e=n,s||(s=!0,An.call(window,()=>{s=!1,i.apply(t,e)}))}}function na(i,t){let e;return function(...s){return t?(clearTimeout(e),e=setTimeout(i,t,s)):i.apply(this,s),t}}const Wi=i=>i==="start"?"left":i==="end"?"right":"center",K=(i,t,e)=>i==="start"?t:i==="end"?e:(t+e)/2,oa=(i,t,e,s)=>i===(s?"left":"right")?e:i==="center"?(t+e)/2:t;function Ln(i,t,e){const s=t.length;let n=0,o=s;if(i._sorted){const{iScale:a,_parsed:r}=i,l=a.axis,{min:c,max:h,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=Y(Math.min(pt(r,l,c).lo,e?s:pt(t,l,a.getPixelForValue(c)).lo),0,s-1)),u?o=Y(Math.max(pt(r,a.axis,h,!0).hi+1,e?0:pt(t,l,a.getPixelForValue(h),!0).hi+1),n,s)-n:o=s-n}return{start:n,count:o}}function Rn(i){const{xScale:t,yScale:e,_scaleRanges:s}=i,n={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!s)return i._scaleRanges=n,!0;const o=s.xmin!==t.min||s.xmax!==t.max||s.ymin!==e.min||s.ymax!==e.max;return Object.assign(s,n),o}const De=i=>i===0||i===1,rs=(i,t,e)=>-(Math.pow(2,10*(i-=1))*Math.sin((i-t)*I/e)),ls=(i,t,e)=>Math.pow(2,-10*i)*Math.sin((i-t)*I/e)+1,ce={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>-i*(i-2),easeInOutQuad:i=>(i/=.5)<1?.5*i*i:-.5*(--i*(i-2)-1),easeInCubic:i=>i*i*i,easeOutCubic:i=>(i-=1)*i*i+1,easeInOutCubic:i=>(i/=.5)<1?.5*i*i*i:.5*((i-=2)*i*i+2),easeInQuart:i=>i*i*i*i,easeOutQuart:i=>-((i-=1)*i*i*i-1),easeInOutQuart:i=>(i/=.5)<1?.5*i*i*i*i:-.5*((i-=2)*i*i*i-2),easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>(i-=1)*i*i*i*i+1,easeInOutQuint:i=>(i/=.5)<1?.5*i*i*i*i*i:.5*((i-=2)*i*i*i*i+2),easeInSine:i=>-Math.cos(i*j)+1,easeOutSine:i=>Math.sin(i*j),easeInOutSine:i=>-.5*(Math.cos(z*i)-1),easeInExpo:i=>i===0?0:Math.pow(2,10*(i-1)),easeOutExpo:i=>i===1?1:-Math.pow(2,-10*i)+1,easeInOutExpo:i=>De(i)?i:i<.5?.5*Math.pow(2,10*(i*2-1)):.5*(-Math.pow(2,-10*(i*2-1))+2),easeInCirc:i=>i>=1?i:-(Math.sqrt(1-i*i)-1),easeOutCirc:i=>Math.sqrt(1-(i-=1)*i),easeInOutCirc:i=>(i/=.5)<1?-.5*(Math.sqrt(1-i*i)-1):.5*(Math.sqrt(1-(i-=2)*i)+1),easeInElastic:i=>De(i)?i:rs(i,.075,.3),easeOutElastic:i=>De(i)?i:ls(i,.075,.3),easeInOutElastic(i){return De(i)?i:i<.5?.5*rs(i*2,.1125,.45):.5+.5*ls(i*2-1,.1125,.45)},easeInBack(i){return i*i*((1.70158+1)*i-1.70158)},easeOutBack(i){return(i-=1)*i*((1.70158+1)*i+1.70158)+1},easeInOutBack(i){let t=1.70158;return(i/=.5)<1?.5*(i*i*(((t*=1.525)+1)*i-t)):.5*((i-=2)*i*(((t*=1.525)+1)*i+t)+2)},easeInBounce:i=>1-ce.easeOutBounce(1-i),easeOutBounce(i){return i<1/2.75?7.5625*i*i:i<2/2.75?7.5625*(i-=1.5/2.75)*i+.75:i<2.5/2.75?7.5625*(i-=2.25/2.75)*i+.9375:7.5625*(i-=2.625/2.75)*i+.984375},easeInOutBounce:i=>i<.5?ce.easeInBounce(i*2)*.5:ce.easeOutBounce(i*2-1)*.5+.5};function Ni(i){if(i&&typeof i=="object"){const t=i.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function cs(i){return Ni(i)?i:new ue(i)}function ri(i){return Ni(i)?i:new ue(i).saturate(.5).darken(.1).hexString()}const aa=["x","y","borderWidth","radius","tension"],ra=["color","borderColor","backgroundColor"];function la(i){i.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),i.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),i.set("animations",{colors:{type:"color",properties:ra},numbers:{type:"number",properties:aa}}),i.describe("animations",{_fallback:"animation"}),i.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function ca(i){i.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const hs=new Map;function ha(i,t){t=t||{};const e=i+JSON.stringify(t);let s=hs.get(e);return s||(s=new Intl.NumberFormat(i,t),hs.set(e,s)),s}function ve(i,t,e){return ha(t,e).format(i)}const En={values(i){return V(i)?i:""+i},numeric(i,t,e){if(i===0)return"0";const s=this.chart.options.locale;let n,o=i;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(n="scientific"),o=da(i,e)}const a=_t(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ve(i,s,l)},logarithmic(i,t,e){if(i===0)return"0";const s=e[t].significand||i/Math.pow(10,Math.floor(_t(i)));return[1,2,3,5,10,15].includes(s)||t>.8*e.length?En.numeric.call(this,i,t,e):""}};function da(i,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&i!==Math.floor(i)&&(e=i-Math.floor(i)),e}var ei={formatters:En};function ua(i){i.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ei.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),i.route("scale.ticks","color","","color"),i.route("scale.grid","color","","borderColor"),i.route("scale.border","color","","borderColor"),i.route("scale.title","color","","color"),i.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),i.describe("scales",{_fallback:"scale"}),i.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const zt=Object.create(null),yi=Object.create(null);function he(i,t){if(!t)return i;const e=t.split(".");for(let s=0,n=e.length;ss.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(s,n)=>ri(n.backgroundColor),this.hoverBorderColor=(s,n)=>ri(n.borderColor),this.hoverColor=(s,n)=>ri(n.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return li(this,t,e)}get(t){return he(this,t)}describe(t,e){return li(yi,t,e)}override(t,e){return li(zt,t,e)}route(t,e,s,n){const o=he(this,t),a=he(this,s),r="_"+e;Object.defineProperties(o,{[r]:{value:o[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[r],c=a[n];return A(l)?Object.assign({},c,l):D(l,c)},set(l){this[r]=l}}})}apply(t){t.forEach(e=>e(this))}}var N=new fa({_scriptable:i=>!i.startsWith("on"),_indexable:i=>i!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[la,ca,ua]);function ga(i){return!i||L(i.size)||L(i.family)?null:(i.style?i.style+" ":"")+(i.weight?i.weight+" ":"")+i.size+"px "+i.family}function Ge(i,t,e,s,n){let o=t[n];return o||(o=t[n]=i.measureText(n).width,e.push(n)),o>s&&(s=o),s}function pa(i,t,e,s){s=s||{};let n=s.data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==t&&(n=s.data={},o=s.garbageCollect=[],s.font=t),i.save(),i.font=t;let a=0;const r=e.length;let l,c,h,d,u;for(l=0;le.length){for(l=0;l0&&i.stroke()}}function mt(i,t,e){return e=e||.5,!t||i&&i.x>t.left-e&&i.xt.top-e&&i.y0&&o.strokeColor!=="";let l,c;for(i.save(),i.font=n.string,xa(i,o),l=0;l+i||0;function Hi(i,t){const e={},s=A(t),n=s?Object.keys(t):t,o=A(i)?s?a=>D(i[a],i[t[a]]):a=>i[a]:()=>i;for(const a of n)e[a]=wa(o(a));return e}function In(i){return Hi(i,{top:"y",right:"x",bottom:"y",left:"x"})}function Ft(i){return Hi(i,["topLeft","topRight","bottomLeft","bottomRight"])}function G(i){const t=In(i);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function $(i,t){i=i||{},t=t||N.font;let e=D(i.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let s=D(i.style,t.style);s&&!(""+s).match(Ma)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:D(i.family,t.family),lineHeight:ka(D(i.lineHeight,t.lineHeight),e),size:e,style:s,weight:D(i.weight,t.weight),string:""};return n.string=ga(n),n}function ie(i,t,e,s){let n,o,a;for(n=0,o=i.length;ne&&r===0?0:r+l;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function St(i,t){return Object.assign(Object.create(i),t)}function ji(i,t=[""],e,s,n=()=>i[0]){const o=e||i;typeof s>"u"&&(s=Wn("_fallback",i));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:i,_rootScopes:o,_fallback:s,_getTarget:n,override:r=>ji([r,...i],t,o,s)};return new Proxy(a,{deleteProperty(r,l){return delete r[l],delete r._keys,delete i[0][l],!0},get(r,l){return Bn(r,l,()=>Ra(l,t,i,r))},getOwnPropertyDescriptor(r,l){return Reflect.getOwnPropertyDescriptor(r._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(i[0])},has(r,l){return fs(r).includes(l)},ownKeys(r){return fs(r)},set(r,l,c){const h=r._storage||(r._storage=n());return r[l]=h[l]=c,delete r._keys,!0}})}function Xt(i,t,e,s){const n={_cacheable:!1,_proxy:i,_context:t,_subProxy:e,_stack:new Set,_descriptors:zn(i,s),setContext:o=>Xt(i,o,e,s),override:o=>Xt(i.override(o),t,e,s)};return new Proxy(n,{deleteProperty(o,a){return delete o[a],delete i[a],!0},get(o,a,r){return Bn(o,a,()=>Da(o,a,r))},getOwnPropertyDescriptor(o,a){return o._descriptors.allKeys?Reflect.has(i,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(i,a)},getPrototypeOf(){return Reflect.getPrototypeOf(i)},has(o,a){return Reflect.has(i,a)},ownKeys(){return Reflect.ownKeys(i)},set(o,a,r){return i[a]=r,delete o[a],!0}})}function zn(i,t={scriptable:!0,indexable:!0}){const{_scriptable:e=t.scriptable,_indexable:s=t.indexable,_allKeys:n=t.allKeys}=i;return{allKeys:n,scriptable:e,indexable:s,isScriptable:wt(e)?e:()=>e,isIndexable:wt(s)?s:()=>s}}const Pa=(i,t)=>i?i+zi(t):t,$i=(i,t)=>A(t)&&i!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Bn(i,t,e){if(Object.prototype.hasOwnProperty.call(i,t)||t==="constructor")return i[t];const s=e();return i[t]=s,s}function Da(i,t,e){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=i;let r=s[t];return wt(r)&&a.isScriptable(t)&&(r=Oa(t,r,i,e)),V(r)&&r.length&&(r=Ca(t,r,i,a.isIndexable)),$i(t,r)&&(r=Xt(r,n,o&&o[t],a)),r}function Oa(i,t,e,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=e;if(r.has(i))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+i);r.add(i);let l=t(o,a||s);return r.delete(i),$i(i,l)&&(l=Yi(n._scopes,n,i,l)),l}function Ca(i,t,e,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=e;if(typeof o.index<"u"&&s(i))return t[o.index%t.length];if(A(t[0])){const l=t,c=n._scopes.filter(h=>h!==l);t=[];for(const h of l){const d=Yi(c,n,i,h);t.push(Xt(d,o,a&&a[i],r))}}return t}function Vn(i,t,e){return wt(i)?i(t,e):i}const Aa=(i,t)=>i===!0?t:typeof i=="string"?kt(t,i):void 0;function Ta(i,t,e,s,n){for(const o of t){const a=Aa(e,o);if(a){i.add(a);const r=Vn(a._fallback,e,n);if(typeof r<"u"&&r!==e&&r!==s)return r}else if(a===!1&&typeof s<"u"&&e!==s)return null}return!1}function Yi(i,t,e,s){const n=t._rootScopes,o=Vn(t._fallback,e,s),a=[...i,...n],r=new Set;r.add(s);let l=us(r,a,e,o||e,s);return l===null||typeof o<"u"&&o!==e&&(l=us(r,a,o,l,s),l===null)?!1:ji(Array.from(r),[""],n,o,()=>La(t,e,s))}function us(i,t,e,s,n){for(;e;)e=Ta(i,t,e,s,n);return e}function La(i,t,e){const s=i._getTarget();t in s||(s[t]={});const n=s[t];return V(n)&&A(e)?e:n||{}}function Ra(i,t,e,s){let n;for(const o of t)if(n=Wn(Pa(o,i),e),typeof n<"u")return $i(i,n)?Yi(e,s,i,n):n}function Wn(i,t){for(const e of t){if(!e)continue;const s=e[i];if(typeof s<"u")return s}}function fs(i){let t=i._keys;return t||(t=i._keys=Ea(i._scopes)),t}function Ea(i){const t=new Set;for(const e of i)for(const s of Object.keys(e).filter(n=>!n.startsWith("_")))t.add(s);return Array.from(t)}function Nn(i,t,e,s){const{iScale:n}=i,{key:o="r"}=this._parsing,a=new Array(s);let r,l,c,h;for(r=0,l=s;rti==="x"?"y":"x";function Ia(i,t,e,s){const n=i.skip?t:i,o=t,a=e.skip?t:e,r=_i(o,n),l=_i(a,o);let c=r/(r+l),h=l/(r+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;const d=s*c,u=s*h;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function za(i,t,e){const s=i.length;let n,o,a,r,l,c=Ut(i,0);for(let h=0;h!c.skip)),t.cubicInterpolationMode==="monotone")Va(i,n);else{let c=s?i[i.length-1]:i[0];for(o=0,a=i.length;oi.ownerDocument.defaultView.getComputedStyle(i,null);function Ha(i,t){return ni(i).getPropertyValue(t)}const ja=["top","right","bottom","left"];function It(i,t,e){const s={};e=e?"-"+e:"";for(let n=0;n<4;n++){const o=ja[n];s[o]=parseFloat(i[t+"-"+o+e])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const $a=(i,t,e)=>(i>0||t>0)&&(!e||!e.shadowRoot);function Ya(i,t){const e=i.touches,s=e&&e.length?e[0]:i,{offsetX:n,offsetY:o}=s;let a=!1,r,l;if($a(n,o,i.target))r=n,l=o;else{const c=t.getBoundingClientRect();r=s.clientX-c.left,l=s.clientY-c.top,a=!0}return{x:r,y:l,box:a}}function Lt(i,t){if("native"in i)return i;const{canvas:e,currentDevicePixelRatio:s}=t,n=ni(e),o=n.boxSizing==="border-box",a=It(n,"padding"),r=It(n,"border","width"),{x:l,y:c,box:h}=Ya(i,e),d=a.left+(h&&r.left),u=a.top+(h&&r.top);let{width:f,height:g}=t;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*e.width/s),y:Math.round((c-u)/g*e.height/s)}}function Xa(i,t,e){let s,n;if(t===void 0||e===void 0){const o=i&&Ui(i);if(!o)t=i.clientWidth,e=i.clientHeight;else{const a=o.getBoundingClientRect(),r=ni(o),l=It(r,"border","width"),c=It(r,"padding");t=a.width-c.width-l.width,e=a.height-c.height-l.height,s=Ze(r.maxWidth,o,"clientWidth"),n=Ze(r.maxHeight,o,"clientHeight")}}return{width:t,height:e,maxWidth:s||qe,maxHeight:n||qe}}const Ce=i=>Math.round(i*10)/10;function Ua(i,t,e,s){const n=ni(i),o=It(n,"margin"),a=Ze(n.maxWidth,i,"clientWidth")||qe,r=Ze(n.maxHeight,i,"clientHeight")||qe,l=Xa(i,t,e);let{width:c,height:h}=l;if(n.boxSizing==="content-box"){const u=It(n,"border","width"),f=It(n,"padding");c-=f.width+u.width,h-=f.height+u.height}return c=Math.max(0,c-o.width),h=Math.max(0,s?c/s:h-o.height),c=Ce(Math.min(c,a,l.maxWidth)),h=Ce(Math.min(h,r,l.maxHeight)),c&&!h&&(h=Ce(c/2)),(t!==void 0||e!==void 0)&&s&&l.height&&h>l.height&&(h=l.height,c=Ce(Math.floor(h*s))),{width:c,height:h}}function gs(i,t,e){const s=t||1,n=Math.floor(i.height*s),o=Math.floor(i.width*s);i.height=Math.floor(i.height),i.width=Math.floor(i.width);const a=i.canvas;return a.style&&(e||!a.style.height&&!a.style.width)&&(a.style.height=`${i.height}px`,a.style.width=`${i.width}px`),i.currentDevicePixelRatio!==s||a.height!==n||a.width!==o?(i.currentDevicePixelRatio=s,a.height=n,a.width=o,i.ctx.setTransform(s,0,0,s,0,0),!0):!1}const Ka=function(){let i=!1;try{const t={get passive(){return i=!0,!1}};Xi()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return i}();function ps(i,t){const e=Ha(i,t),s=e&&e.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function Rt(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:i.y+e*(t.y-i.y)}}function qa(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:s==="middle"?e<.5?i.y:t.y:s==="after"?e<1?i.y:t.y:e>0?t.y:i.y}}function Ga(i,t,e,s){const n={x:i.cp2x,y:i.cp2y},o={x:t.cp1x,y:t.cp1y},a=Rt(i,n,e),r=Rt(n,o,e),l=Rt(o,t,e),c=Rt(a,r,e),h=Rt(r,l,e);return Rt(c,h,e)}const Za=function(i,t){return{x(e){return i+i+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,s){return e-s},leftForLtr(e,s){return e-s}}},Ja=function(){return{x(i){return i},setWidth(i){},textAlign(i){return i},xPlus(i,t){return i+t},leftForLtr(i,t){return i}}};function $t(i,t,e){return i?Za(t,e):Ja()}function jn(i,t){let e,s;(t==="ltr"||t==="rtl")&&(e=i.canvas.style,s=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),i.prevTextDirection=s)}function $n(i,t){t!==void 0&&(delete i.prevTextDirection,i.canvas.style.setProperty("direction",t[0],t[1]))}function Yn(i){return i==="angle"?{between:pe,compare:Qo,normalize:et}:{between:gt,compare:(t,e)=>t-e,normalize:t=>t}}function ms({start:i,end:t,count:e,loop:s,style:n}){return{start:i%e,end:t%e,loop:s&&(t-i+1)%e===0,style:n}}function Qa(i,t,e){const{property:s,start:n,end:o}=e,{between:a,normalize:r}=Yn(s),l=t.length;let{start:c,end:h,loop:d}=i,u,f;if(d){for(c+=l,h+=l,u=0,f=l;ul(n,v,b)&&r(n,v)!==0,_=()=>r(o,b)===0||l(o,v,b),k=()=>p||y(),w=()=>!p||_();for(let S=h,P=h;S<=d;++S)x=t[S%a],!x.skip&&(b=c(x[s]),b!==v&&(p=l(b,n,o),m===null&&k()&&(m=r(b,n)===0?S:P),m!==null&&w()&&(g.push(ms({start:m,end:S,loop:u,count:a,style:f})),m=null),P=S,v=b));return m!==null&&g.push(ms({start:m,end:d,loop:u,count:a,style:f})),g}function Un(i,t){const e=[],s=i.segments;for(let n=0;nn&&i[o%t].skip;)o--;return o%=t,{start:n,end:o}}function er(i,t,e,s){const n=i.length,o=[];let a=t,r=i[t],l;for(l=t+1;l<=e;++l){const c=i[l%n];c.skip||c.stop?r.skip||(s=!1,o.push({start:t%n,end:(l-1)%n,loop:s}),t=a=c.stop?l:null):(a=l,r.skip&&(t=l)),r=c}return a!==null&&o.push({start:t%n,end:a%n,loop:s}),o}function ir(i,t){const e=i.points,s=i.options.spanGaps,n=e.length;if(!n)return[];const o=!!i._loop,{start:a,end:r}=tr(e,n,o,s);if(s===!0)return bs(i,[{start:a,end:r,loop:o}],e,t);const l=rr({chart:t,initial:e.initial,numSteps:a,currentStep:Math.min(s-e.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=An.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((s,n)=>{if(!s.running||!s.items.length)return;const o=s.items;let a=o.length-1,r=!1,l;for(;a>=0;--a)l=o[a],l._active?(l._total>s.duration&&(s.duration=l._total),l.tick(t),r=!0):(o[a]=o[o.length-1],o.pop());r&&(n.draw(),this._notify(n,s,t,"progress")),o.length||(s.running=!1,this._notify(n,s,t,"complete"),s.initial=!1),e+=o.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){const e=this._charts;let s=e.get(t);return s||(s={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,s)),s}listen(t,e,s){this._getAnims(t).listeners[e].push(s)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((s,n)=>Math.max(s,n._duration),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const s=e.items;let n=s.length-1;for(;n>=0;--n)s[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var dt=new or;const _s="transparent",ar={boolean(i,t,e){return e>.5?t:i},color(i,t,e){const s=cs(i||_s),n=s.valid&&cs(t||_s);return n&&n.valid?n.mix(s,e).hexString():t},number(i,t,e){return i+(t-i)*e}};class rr{constructor(t,e,s,n){const o=e[s];n=ie([t.to,n,o,t.from]);const a=ie([t.from,o,n]);this._active=!0,this._fn=t.fn||ar[t.type||typeof a],this._easing=ce[t.easing]||ce.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=s,this._from=a,this._to=n,this._promises=void 0}active(){return this._active}update(t,e,s){if(this._active){this._notify(!1);const n=this._target[this._prop],o=s-this._start,a=this._duration-o;this._start=s,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=ie([t.to,e,n,t.from]),this._from=ie([t.from,n,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,s=this._duration,n=this._prop,o=this._from,a=this._loop,r=this._to;let l;if(this._active=o!==r&&(a||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[n]=this._fn(o,r,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((e,s)=>{t.push({res:e,rej:s})})}_notify(t){const e=t?"res":"rej",s=this._promises||[];for(let n=0;n{const o=t[n];if(!A(o))return;const a={};for(const r of e)a[r]=o[r];(V(o.properties)&&o.properties||[n]).forEach(r=>{(r===n||!s.has(r))&&s.set(r,a)})})}_animateOptions(t,e){const s=e.options,n=cr(t,s);if(!n)return[];const o=this._createAnimations(n,s);return s.$shared&&lr(t.options.$animations,s).then(()=>{t.options=s},()=>{}),o}_createAnimations(t,e){const s=this._properties,n=[],o=t.$animations||(t.$animations={}),a=Object.keys(e),r=Date.now();let l;for(l=a.length-1;l>=0;--l){const c=a[l];if(c.charAt(0)==="$")continue;if(c==="options"){n.push(...this._animateOptions(t,e));continue}const h=e[c];let d=o[c];const u=s.get(c);if(d)if(u&&d.active()){d.update(u,h,r);continue}else d.cancel();if(!u||!u.duration){t[c]=h;continue}o[c]=d=new rr(u,t,c,h),n.push(d)}return n}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}const s=this._createAnimations(t,e);if(s.length)return dt.add(this._chart,s),!0}}function lr(i,t){const e=[],s=Object.keys(t);for(let n=0;n0||!e&&o<0)return n.index}return null}function ws(i,t){const{chart:e,_cachedMeta:s}=i,n=e._stacks||(e._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,c=a.axis,h=fr(o,a,s),d=t.length;let u;for(let f=0;fe[s].axis===t).shift()}function mr(i,t){return St(i,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function br(i,t,e){return St(i,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function Gt(i,t){const e=i.controller.index,s=i.vScale&&i.vScale.axis;if(s){t=t||i._parsed;for(const n of t){const o=n._stacks;if(!o||o[s]===void 0||o[s][e]===void 0)return;delete o[s][e],o[s]._visualValues!==void 0&&o[s]._visualValues[e]!==void 0&&delete o[s]._visualValues[e]}}}const hi=i=>i==="reset"||i==="none",Ss=(i,t)=>t?i:Object.assign({},i),xr=(i,t,e)=>i&&!t.hidden&&t._stacked&&{keys:qn(e,!0),values:null};class ot{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Ms(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Gt(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,s=this.getDataset(),n=(d,u,f,g)=>d==="x"?u:d==="r"?g:f,o=e.xAxisID=D(s.xAxisID,ci(t,"x")),a=e.yAxisID=D(s.yAxisID,ci(t,"y")),r=e.rAxisID=D(s.rAxisID,ci(t,"r")),l=e.indexAxis,c=e.iAxisID=n(l,o,a,r),h=e.vAxisID=n(l,a,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&as(this._data,this),t._stacked&&Gt(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),s=this._data;if(A(e)){const n=this._cachedMeta;this._data=ur(e,n)}else if(s!==e){if(s){as(s,this);const n=this._cachedMeta;Gt(n),n._parsed=[]}e&&Object.isExtensible(e)&&sa(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,s=this.getDataset();let n=!1;this._dataCheck();const o=e._stacked;e._stacked=Ms(e.vScale,e),e.stack!==s.stack&&(n=!0,Gt(e),e.stack=s.stack),this._resyncElements(t),(n||o!==e._stacked)&&ws(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),s=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(s,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:s,_data:n}=this,{iScale:o,_stacked:a}=s,r=o.axis;let l=t===0&&e===n.length?!0:s._sorted,c=t>0&&s._parsed[t-1],h,d,u;if(this._parsing===!1)s._parsed=n,s._sorted=!0,u=n;else{V(n[t])?u=this.parseArrayData(s,n,t,e):A(n[t])?u=this.parseObjectData(s,n,t,e):u=this.parsePrimitiveData(s,n,t,e);const f=()=>d[r]===null||c&&d[r]p||d=0;--u)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){const e=this._cachedMeta._parsed,s=[];let n,o,a;for(n=0,o=e.length;n=0&&tthis.getContext(s,n,e),p=c.resolveNamedOptions(u,f,g,d);return p.$shared&&(p.$shared=l,o[a]=Object.freeze(Ss(p,l))),p}_resolveAnimations(t,e,s){const n=this.chart,o=this._cachedDataOpts,a=`animation-${e}`,r=o[a];if(r)return r;let l;if(n.options.animation!==!1){const h=this.chart.config,d=h.datasetAnimationScopeKeys(this._type,e),u=h.getOptionScopes(this.getDataset(),d);l=h.createResolver(u,this.getContext(t,s,e))}const c=new Kn(n,l&&l.animations);return l&&l._cacheable&&(o[a]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||hi(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const s=this.resolveDataElementOptions(t,e),n=this._sharedOptions,o=this.getSharedOptions(s),a=this.includeOptions(e,o)||o!==n;return this.updateSharedOptions(o,e,s),{sharedOptions:o,includeOptions:a}}updateElement(t,e,s,n){hi(n)?Object.assign(t,s):this._resolveAnimations(e,n).update(t,s)}updateSharedOptions(t,e,s){t&&!hi(e)&&this._resolveAnimations(void 0,e).update(t,s)}_setStyle(t,e,s,n){t.active=n;const o=this.getStyle(e,n);this._resolveAnimations(e,s,n).update(t,{options:!n&&this.getSharedOptions(o)||o})}removeHoverStyle(t,e,s){this._setStyle(t,s,"active",!1)}setHoverStyle(t,e,s){this._setStyle(t,s,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,s=this._cachedMeta.data;for(const[r,l,c]of this._syncList)this[r](l,c);this._syncList=[];const n=s.length,o=e.length,a=Math.min(o,n);a&&this.parse(0,a),o>n?this._insertElements(n,o-n,t):o{for(c.length+=e,r=c.length-1;r>=a;r--)c[r]=c[r-e]};for(l(o),r=t;rn-o))}return i._cache.$bar}function yr(i){const t=i.iScale,e=_r(t,i.type);let s=t._length,n,o,a,r;const l=()=>{a===32767||a===-32768||(ge(r)&&(s=Math.min(s,Math.abs(a-r)||s)),r=a)};for(n=0,o=e.length;n0?n[i-1]:null,r=iMath.abs(r)&&(l=r,c=a),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:n,end:o,min:a,max:r}}function Gn(i,t,e,s){return V(i)?kr(i,t,e,s):t[e.axis]=e.parse(i,s),t}function Ps(i,t,e,s){const n=i.iScale,o=i.vScale,a=n.getLabels(),r=n===o,l=[];let c,h,d,u;for(c=e,h=e+s;c=e?1:-1)}function Sr(i){let t,e,s,n,o;return i.horizontal?(t=i.base>i.x,e="left",s="right"):(t=i.baseh.controller.options.grouped),o=s.options.stacked,a=[],r=this._cachedMeta.controller.getParsed(e),l=r&&r[s.axis],c=h=>{const d=h._parsed.find(f=>f[s.axis]===l),u=d&&d[h.vScale.axis];if(L(u)||isNaN(u))return!0};for(const h of n)if(!(e!==void 0&&c(h))&&((o===!1||a.indexOf(h.stack)===-1||o===void 0&&h.stack===void 0)&&a.push(h.stack),h.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,s){const n=this._getStacks(t,s),o=e!==void 0?n.indexOf(e):-1;return o===-1?n.length-1:o}_getRuler(){const t=this.options,e=this._cachedMeta,s=e.iScale,n=[];let o,a;for(o=0,a=e.data.length;o=0;--s)e=Math.max(e,t[s].size(this.resolveDataElementOptions(s))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart.data.labels||[],{xScale:n,yScale:o}=e,a=this.getParsed(t),r=n.getLabelForValue(a.x),l=o.getLabelForValue(a.y),c=a._custom;return{label:s[t]||"",value:"("+r+", "+l+(c?", "+c:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,s,n){const o=n==="reset",{iScale:a,vScale:r}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(e,n),h=a.axis,d=r.axis;for(let u=e;upe(v,r,l,!0)?1:Math.max(y,y*e,_,_*e),g=(v,y,_)=>pe(v,r,l,!0)?-1:Math.min(y,y*e,_,_*e),p=f(0,c,d),m=f(j,h,u),b=g(z,c,d),x=g(z+j,h,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}class Et extends ot{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const s=this.getDataset().data,n=this._cachedMeta;if(this._parsing===!1)n._parsed=s;else{let o=l=>+s[l];if(A(s[t])){const{key:l="value"}=this._parsing;o=c=>+kt(s[c],l)}let a,r;for(a=t,r=t+e;a0&&!isNaN(t)?I*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=ve(e._parsed[t],s.options.locale);return{label:n[t]||"",value:o}}getMaxBorderWidth(t){let e=0;const s=this.chart;let n,o,a,r,l;if(!t){for(n=0,o=s.data.datasets.length;nt!=="spacing",_indexable:t=>t!=="spacing"&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")}),M(Et,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:s,color:n}}=t.legend.options;return e.labels.map((o,a)=>{const l=t.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:n,lineWidth:l.borderWidth,pointStyle:s,hidden:!t.getDataVisibility(a),index:a}})}return[]}},onClick(t,e,s){s.chart.toggleDataVisibility(e.index),s.chart.update()}}}});class We extends ot{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:s,data:n=[],_dataset:o}=e,a=this.chart._animationsDisabled;let{start:r,count:l}=Ln(e,n,a);this._drawStart=r,this._drawCount=l,Rn(e)&&(r=0,l=n.length),s._chart=this.chart,s._datasetIndex=this.index,s._decimated=!!o._decimated,s.points=n;const c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(s,void 0,{animated:!a,options:c},t),this.updateElements(n,r,l,t)}updateElements(t,e,s,n){const o=n==="reset",{iScale:a,vScale:r,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=Yt(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||n==="none",x=e+s,v=t.length;let y=e>0&&this.getParsed(e-1);for(let _=0;_=x){w.skip=!0;continue}const S=this.getParsed(_),P=L(S[f]),O=w[u]=a.getPixelForValue(S[u],_),C=w[f]=o||P?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,S,l):S[f],_);w.skip=isNaN(O)||isNaN(C)||P,w.stop=_>0&&Math.abs(S[u]-y[u])>m,p&&(w.parsed=S,w.raw=c.data[_]),d&&(w.options=h||this.resolveDataElementOptions(_,k.active?"active":n)),b||this.updateElement(k,_,w,n),y=S}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,s=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return s;const o=n[0].size(this.resolveDataElementOptions(0)),a=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(s,o,a)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}M(We,"id","line"),M(We,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),M(We,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class de extends ot{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=ve(e._parsed[t].r,s.options.locale);return{label:n[t]||"",value:o}}parseObjectData(t,e,s,n){return Nn.bind(this)(t,e,s,n)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((s,n)=>{const o=this.getParsed(n).r;!isNaN(o)&&this.chart.getDataVisibility(n)&&(oe.max&&(e.max=o))}),e}_updateRadius(){const t=this.chart,e=t.chartArea,s=t.options,n=Math.min(e.right-e.left,e.bottom-e.top),o=Math.max(n/2,0),a=Math.max(s.cutoutPercentage?o/100*s.cutoutPercentage:1,0),r=(o-a)/t.getVisibleDatasetCount();this.outerRadius=o-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(t,e,s,n){const o=n==="reset",a=this.chart,l=a.options.animation,c=this._cachedMeta.rScale,h=c.xCenter,d=c.yCenter,u=c.getIndexAngle(0)-.5*z;let f=u,g;const p=360/this.countVisibleElements();for(g=0;g{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++}),e}_computeAngle(t,e,s){return this.chart.getDataVisibility(t)?nt(this.resolveDataElementOptions(t,e).angle||s):0}}M(de,"id","polarArea"),M(de,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),M(de,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:s,color:n}}=t.legend.options;return e.labels.map((o,a)=>{const l=t.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:n,lineWidth:l.borderWidth,pointStyle:s,hidden:!t.getDataVisibility(a),index:a}})}return[]}},onClick(t,e,s){s.chart.toggleDataVisibility(e.index),s.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class Mi extends Et{}M(Mi,"id","pie"),M(Mi,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class Ne extends ot{getLabelAndValue(t){const e=this._cachedMeta.vScale,s=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(s[e.axis])}}parseObjectData(t,e,s,n){return Nn.bind(this)(t,e,s,n)}update(t){const e=this._cachedMeta,s=e.dataset,n=e.data||[],o=e.iScale.getLabels();if(s.points=n,t!=="resize"){const a=this.resolveDatasetElementOptions(t);this.options.showLine||(a.borderWidth=0);const r={_loop:!0,_fullLoop:o.length===n.length,options:a};this.updateElement(s,void 0,r,t)}this.updateElements(n,0,n.length,t)}updateElements(t,e,s,n){const o=this._cachedMeta.rScale,a=n==="reset";for(let r=e;r0&&this.getParsed(e-1);for(let y=e;y0&&Math.abs(k[f]-v[f])>b,m&&(w.parsed=k,w.raw=c.data[y]),u&&(w.options=d||this.resolveDataElementOptions(y,_.active?"active":n)),x||this.updateElement(_,y,w,n),v=k}this.updateSharedOptions(d,n,h)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let r=0;for(let l=e.length-1;l>=0;--l)r=Math.max(r,e[l].size(this.resolveDataElementOptions(l))/2);return r>0&&r}const s=t.dataset,n=s.options&&s.options.borderWidth||0;if(!e.length)return n;const o=e[0].size(this.resolveDataElementOptions(0)),a=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(n,o,a)/2}}M(He,"id","scatter"),M(He,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),M(He,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var Ar=Object.freeze({__proto__:null,BarController:Be,BubbleController:Ve,DoughnutController:Et,LineController:We,PieController:Mi,PolarAreaController:de,RadarController:Ne,ScatterController:He});function At(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Ki{constructor(t){M(this,"options");this.options=t||{}}static override(t){Object.assign(Ki.prototype,t)}init(){}formats(){return At()}parse(){return At()}format(){return At()}add(){return At()}diff(){return At()}startOf(){return At()}endOf(){return At()}}var Tr={_date:Ki};function Lr(i,t,e,s){const{controller:n,data:o,_sorted:a}=i,r=n._cachedMeta.iScale;if(r&&t===r.axis&&t!=="r"&&a&&o.length){const l=r._reversePixels?ea:pt;if(s){if(n._sharedOptions){const c=o[0],h=typeof c.getRange=="function"&&c.getRange(t);if(h){const d=l(o,t,e-h),u=l(o,t,e+h);return{lo:d.lo,hi:u.hi}}}}else return l(o,t,e)}return{lo:0,hi:o.length-1}}function Me(i,t,e,s,n){const o=i.getSortedVisibleDatasetMetas(),a=e[t];for(let r=0,l=o.length;r{l[a]&&l[a](t[e],n)&&(o.push({element:l,datasetIndex:c,index:h}),r=r||l.inRange(t.x,t.y,n))}),s&&!r?[]:o}var Ir={evaluateInteractionItems:Me,modes:{index(i,t,e,s){const n=Lt(t,i),o=e.axis||"x",a=e.includeInvisible||!1,r=e.intersect?ui(i,n,o,s,a):fi(i,n,o,!1,s,a),l=[];return r.length?(i.getSortedVisibleDatasetMetas().forEach(c=>{const h=r[0].index,d=c.data[h];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:h})}),l):[]},dataset(i,t,e,s){const n=Lt(t,i),o=e.axis||"xy",a=e.includeInvisible||!1;let r=e.intersect?ui(i,n,o,s,a):fi(i,n,o,!1,s,a);if(r.length>0){const l=r[0].datasetIndex,c=i.getDatasetMeta(l).data;r=[];for(let h=0;he.pos===t)}function As(i,t){return i.filter(e=>Zn.indexOf(e.pos)===-1&&e.box.axis===t)}function Jt(i,t){return i.sort((e,s)=>{const n=t?s:e,o=t?e:s;return n.weight===o.weight?n.index-o.index:n.weight-o.weight})}function zr(i){const t=[];let e,s,n,o,a,r;for(e=0,s=(i||[]).length;ec.box.fullSize),!0),s=Jt(Zt(t,"left"),!0),n=Jt(Zt(t,"right")),o=Jt(Zt(t,"top"),!0),a=Jt(Zt(t,"bottom")),r=As(t,"x"),l=As(t,"y");return{fullSize:e,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Zt(t,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}function Ts(i,t,e,s){return Math.max(i[e],t[e])+Math.max(i[s],t[s])}function Jn(i,t){i.top=Math.max(i.top,t.top),i.left=Math.max(i.left,t.left),i.bottom=Math.max(i.bottom,t.bottom),i.right=Math.max(i.right,t.right)}function Nr(i,t,e,s){const{pos:n,box:o}=e,a=i.maxPadding;if(!A(n)){e.size&&(i[n]-=e.size);const d=s[e.stack]||{size:0,count:1};d.size=Math.max(d.size,e.horizontal?o.height:o.width),e.size=d.size/d.count,i[n]+=e.size}o.getPadding&&Jn(a,o.getPadding());const r=Math.max(0,t.outerWidth-Ts(a,i,"left","right")),l=Math.max(0,t.outerHeight-Ts(a,i,"top","bottom")),c=r!==i.w,h=l!==i.h;return i.w=r,i.h=l,e.horizontal?{same:c,other:h}:{same:h,other:c}}function Hr(i){const t=i.maxPadding;function e(s){const n=Math.max(t[s]-i[s],0);return i[s]+=n,n}i.y+=e("top"),i.x+=e("left"),e("right"),e("bottom")}function jr(i,t){const e=t.maxPadding;function s(n){const o={left:0,top:0,right:0,bottom:0};return n.forEach(a=>{o[a]=Math.max(t[a],e[a])}),o}return s(i?["left","right"]:["top","bottom"])}function se(i,t,e,s){const n=[];let o,a,r,l,c,h;for(o=0,a=i.length,c=0;o{typeof p.beforeLayout=="function"&&p.beforeLayout()});const h=l.reduce((p,m)=>m.box.options&&m.box.options.display===!1?p:p+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:e,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/h,hBoxMaxHeight:a/2}),u=Object.assign({},n);Jn(u,G(s));const f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=Vr(l.concat(c),d);se(r.fullSize,f,d,g),se(l,f,d,g),se(c,f,d,g)&&se(l,f,d,g),Hr(f),Ls(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,Ls(r.rightAndBottom,f,d,g),i.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},R(r.chartArea,p=>{const m=p.box;Object.assign(m,i.chartArea),m.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class Qn{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,s){}removeEventListener(t,e,s){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,s,n){return e=Math.max(0,e||t.width),s=s||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):s)}}isAttached(t){return!0}updateConfig(t){}}class $r extends Qn{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const je="$chartjs",Yr={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Rs=i=>i===null||i==="";function Xr(i,t){const e=i.style,s=i.getAttribute("height"),n=i.getAttribute("width");if(i[je]={initial:{height:s,width:n,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",Rs(n)){const o=ps(i,"width");o!==void 0&&(i.width=o)}if(Rs(s))if(i.style.height==="")i.height=i.width/(t||2);else{const o=ps(i,"height");o!==void 0&&(i.height=o)}return i}const to=Ka?{passive:!0}:!1;function Ur(i,t,e){i&&i.addEventListener(t,e,to)}function Kr(i,t,e){i&&i.canvas&&i.canvas.removeEventListener(t,e,to)}function qr(i,t){const e=Yr[i.type]||i.type,{x:s,y:n}=Lt(i,t);return{type:e,chart:t,native:i,x:s!==void 0?s:null,y:n!==void 0?n:null}}function Je(i,t){for(const e of i)if(e===t||e.contains(t))return!0}function Gr(i,t,e){const s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Je(r.addedNodes,s),a=a&&!Je(r.removedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}function Zr(i,t,e){const s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Je(r.removedNodes,s),a=a&&!Je(r.addedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}const be=new Map;let Es=0;function eo(){const i=window.devicePixelRatio;i!==Es&&(Es=i,be.forEach((t,e)=>{e.currentDevicePixelRatio!==i&&t()}))}function Jr(i,t){be.size||window.addEventListener("resize",eo),be.set(i,t)}function Qr(i){be.delete(i),be.size||window.removeEventListener("resize",eo)}function tl(i,t,e){const s=i.canvas,n=s&&Ui(s);if(!n)return;const o=Tn((r,l)=>{const c=n.clientWidth;e(r,l),c{const l=r[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||o(c,h)});return a.observe(n),Jr(i,o),a}function gi(i,t,e){e&&e.disconnect(),t==="resize"&&Qr(i)}function el(i,t,e){const s=i.canvas,n=Tn(o=>{i.ctx!==null&&e(qr(o,i))},i);return Ur(s,t,n),n}class il extends Qn{acquireContext(t,e){const s=t&&t.getContext&&t.getContext("2d");return s&&s.canvas===t?(Xr(t,e),s):null}releaseContext(t){const e=t.canvas;if(!e[je])return!1;const s=e[je].initial;["height","width"].forEach(o=>{const a=s[o];L(a)?e.removeAttribute(o):e.setAttribute(o,a)});const n=s.style||{};return Object.keys(n).forEach(o=>{e.style[o]=n[o]}),e.width=e.width,delete e[je],!0}addEventListener(t,e,s){this.removeEventListener(t,e);const n=t.$proxies||(t.$proxies={}),a={attach:Gr,detach:Zr,resize:tl}[e]||el;n[e]=a(t,e,s)}removeEventListener(t,e){const s=t.$proxies||(t.$proxies={}),n=s[e];if(!n)return;({attach:gi,detach:gi,resize:gi}[e]||Kr)(t,e,n),s[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,s,n){return Ua(t,e,s,n)}isAttached(t){const e=t&&Ui(t);return!!(e&&e.isConnected)}}function sl(i){return!Xi()||typeof OffscreenCanvas<"u"&&i instanceof OffscreenCanvas?$r:il}class at{constructor(){M(this,"x");M(this,"y");M(this,"active",!1);M(this,"options");M(this,"$animations")}tooltipPosition(t){const{x:e,y:s}=this.getProps(["x","y"],t);return{x:e,y:s}}hasValue(){return Yt(this.x)&&Yt(this.y)}getProps(t,e){const s=this.$animations;if(!e||!s)return this;const n={};return t.forEach(o=>{n[o]=s[o]&&s[o].active()?s[o]._to:this[o]}),n}}M(at,"defaults",{}),M(at,"defaultRoutes");function nl(i,t){const e=i.options.ticks,s=ol(i),n=Math.min(e.maxTicksLimit||s,s),o=e.major.enabled?rl(t):[],a=o.length,r=o[0],l=o[a-1],c=[];if(a>n)return ll(t,c,o,a/n),c;const h=al(o,t,n);if(a>0){let d,u;const f=a>1?Math.round((l-r)/(a-1)):null;for(Te(t,c,h,L(f)?0:r-f,r),d=0,u=a-1;dn)return l}return Math.max(n,1)}function rl(i){const t=[];let e,s;for(e=0,s=i.length;ei==="left"?"right":i==="right"?"left":i,Fs=(i,t,e)=>t==="top"||t==="left"?i[t]+e:i[t]-e,Is=(i,t)=>Math.min(t||i,i);function zs(i,t){const e=[],s=i.length/t,n=i.length;let o=0;for(;oa+r)))return l}function ul(i,t){R(i,e=>{const s=e.gc,n=s.length/2;let o;if(n>t){for(o=0;os?s:e,s=n&&e>s?e:s,{min:tt(e,tt(s,e)),max:tt(s,tt(e,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){F(this.options.beforeUpdate,[this])}update(t,e,s){const{beginAtZero:n,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=s=Object.assign({left:0,right:0,top:0,bottom:0},s),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+s.left+s.right:this.height+s.top+s.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Sa(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||s<=1||!this.isHorizontal()){this.labelRotation=n;return}const h=this._getLabelSizes(),d=h.widest.width,u=h.highest.height,f=Y(this.chart.width-d,0,this.maxWidth);r=t.offset?this.maxWidth/s:f/(s-1),d+6>r&&(r=f/(s-(t.offset?.5:1)),l=this.maxHeight-Qt(t.grid)-e.padding-Bs(t.title,this.chart.options.font),c=Math.sqrt(d*d+u*u),a=Bi(Math.min(Math.asin(Y((h.highest.height+6)/r,-1,1)),Math.asin(Y(l/c,-1,1))-Math.asin(Y(u/c,-1,1)))),a=Math.max(n,Math.min(o,a))),this.labelRotation=a}afterCalculateLabelRotation(){F(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){F(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:s,title:n,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){const l=Bs(n,e.options.font);if(r?(t.width=this.maxWidth,t.height=Qt(o)+l):(t.height=this.maxHeight,t.width=Qt(o)+l),s.display&&this.ticks.length){const{first:c,last:h,widest:d,highest:u}=this._getLabelSizes(),f=s.padding*2,g=nt(this.labelRotation),p=Math.cos(g),m=Math.sin(g);if(r){const b=s.mirror?0:m*d.width+p*u.height;t.height=Math.min(this.maxHeight,t.height+b+f)}else{const b=s.mirror?0:p*d.width+m*u.height;t.width=Math.min(this.maxWidth,t.width+b+f)}this._calculatePadding(c,h,m,p)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,s,n){const{ticks:{align:o,padding:a},position:r}=this.options,l=this.labelRotation!==0,c=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const h=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let u=0,f=0;l?c?(u=n*t.width,f=s*e.height):(u=s*t.height,f=n*e.width):o==="start"?f=e.width:o==="end"?u=t.width:o!=="inner"&&(u=t.width/2,f=e.width/2),this.paddingLeft=Math.max((u-h+a)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-d+a)*this.width/(this.width-d),0)}else{let h=e.height/2,d=t.height/2;o==="start"?(h=0,d=t.height):o==="end"&&(h=e.height,d=0),this.paddingTop=h+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){F(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,s;for(e=0,s=t.length;e({width:a[P]||0,height:r[P]||0});return{first:S(0),last:S(e-1),widest:S(k),highest:S(w),widths:a,heights:r}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return ta(this._alignToPixels?Ct(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&tr*n?r/s:l/n:l*n0}_computeGridLineItems(t){const e=this.axis,s=this.chart,n=this.options,{grid:o,position:a,border:r}=n,l=o.offset,c=this.isHorizontal(),d=this.ticks.length+(l?1:0),u=Qt(o),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,b=function(B){return Ct(s,B,p)};let x,v,y,_,k,w,S,P,O,C,T,X;if(a==="top")x=b(this.bottom),w=this.bottom-u,P=x-m,C=b(t.top)+m,X=t.bottom;else if(a==="bottom")x=b(this.top),C=t.top,X=b(t.bottom)-m,w=x+m,P=this.top+u;else if(a==="left")x=b(this.right),k=this.right-u,S=x-m,O=b(t.left)+m,T=t.right;else if(a==="right")x=b(this.left),O=t.left,T=b(t.right)-m,k=x+m,S=this.left+u;else if(e==="x"){if(a==="center")x=b((t.top+t.bottom)/2+.5);else if(A(a)){const B=Object.keys(a)[0],H=a[B];x=b(this.chart.scales[B].getPixelForValue(H))}C=t.top,X=t.bottom,w=x+m,P=w+u}else if(e==="y"){if(a==="center")x=b((t.left+t.right)/2);else if(A(a)){const B=Object.keys(a)[0],H=a[B];x=b(this.chart.scales[B].getPixelForValue(H))}k=x-m,S=k-u,O=t.left,T=t.right}const Q=D(n.ticks.maxTicksLimit,d),E=Math.max(1,Math.ceil(d/Q));for(v=0;v0&&(Dt-=Pt/2);break}ke={left:Dt,top:qt,width:Pt+Nt.width,height:Kt+Nt.height,color:E.backdropColor}}m.push({label:y,font:P,textOffset:T,options:{rotation:p,color:H,strokeColor:st,strokeWidth:U,textAlign:Wt,textBaseline:X,translation:[_,k],backdrop:ke}})}return m}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-nt(this.labelRotation))return t==="top"?"left":"right";let n="center";return e.align==="start"?n="left":e.align==="end"?n="right":e.align==="inner"&&(n="inner"),n}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:s,mirror:n,padding:o}}=this.options,a=this._getLabelSizes(),r=t+o,l=a.widest.width;let c,h;return e==="left"?n?(h=this.right+o,s==="near"?c="left":s==="center"?(c="center",h+=l/2):(c="right",h+=l)):(h=this.right-r,s==="near"?c="right":s==="center"?(c="center",h-=l/2):(c="left",h=this.left)):e==="right"?n?(h=this.left+o,s==="near"?c="right":s==="center"?(c="center",h-=l/2):(c="left",h-=l)):(h=this.left+r,s==="near"?c="left":s==="center"?(c="center",h+=l/2):(c="right",h=this.right)):c="right",{textAlign:c,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;if(e==="left"||e==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(e==="top"||e==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:s,top:n,width:o,height:a}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(s,n,o,a),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const n=this.ticks.findIndex(o=>o.value===t);return n>=0?e.setContext(this.getContext(n)).lineWidth:0}drawGrid(t){const e=this.options.grid,s=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,a;const r=(l,c,h)=>{!h.width||!h.color||(s.save(),s.lineWidth=h.width,s.strokeStyle=h.color,s.setLineDash(h.borderDash||[]),s.lineDashOffset=h.borderDashOffset,s.beginPath(),s.moveTo(l.x,l.y),s.lineTo(c.x,c.y),s.stroke(),s.restore())};if(e.display)for(o=0,a=n.length;o{this.draw(o)}}]:[{z:s,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:n,draw:()=>{this.drawBorder()}},{z:e,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),s=this.axis+"AxisID",n=[];let o,a;for(o=0,a=e.length;o{const s=e.split("."),n=s.pop(),o=[i].concat(s).join("."),a=t[e].split("."),r=a.pop(),l=a.join(".");N.route(o,n,l,r)})}function _l(i){return"id"in i&&"defaults"in i}class yl{constructor(){this.controllers=new Le(ot,"datasets",!0),this.elements=new Le(at,"elements"),this.plugins=new Le(Object,"plugins"),this.scales=new Le(Vt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,s){[...e].forEach(n=>{const o=s||this._getRegistryForType(n);s||o.isForType(n)||o===this.plugins&&n.id?this._exec(t,o,n):R(n,a=>{const r=s||this._getRegistryForType(a);this._exec(t,r,a)})})}_exec(t,e,s){const n=zi(t);F(s["before"+n],[],s),e[t](s),F(s["after"+n],[],s)}_getRegistryForType(t){for(let e=0;eo.filter(r=>!a.some(l=>r.plugin.id===l.plugin.id));this._notify(n(e,s),t,"stop"),this._notify(n(s,e),t,"start")}}function Ml(i){const t={},e=[],s=Object.keys(lt.plugins.items);for(let o=0;o1&&Vs(i[0].toLowerCase());if(s)return s}throw new Error(`Cannot determine type of '${i}' axis. Please provide 'axis' or 'position' option.`)}function Ws(i,t,e){if(e[t+"AxisID"]===i)return{axis:t}}function Cl(i,t){if(t.data&&t.data.datasets){const e=t.data.datasets.filter(s=>s.xAxisID===i||s.yAxisID===i);if(e.length)return Ws(i,"x",e[0])||Ws(i,"y",e[0])}return{}}function Al(i,t){const e=zt[i.type]||{scales:{}},s=t.scales||{},n=ki(i.type,t),o=Object.create(null);return Object.keys(s).forEach(a=>{const r=s[a];if(!A(r))return console.error(`Invalid scale configuration for scale: ${a}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);const l=wi(a,r,Cl(a,i),N.scales[r.type]),c=Dl(l,n),h=e.scales||{};o[a]=re(Object.create(null),[{axis:l},r,h[l],h[c]])}),i.data.datasets.forEach(a=>{const r=a.type||i.type,l=a.indexAxis||ki(r,t),h=(zt[r]||{}).scales||{};Object.keys(h).forEach(d=>{const u=Pl(d,l),f=a[u+"AxisID"]||u;o[f]=o[f]||Object.create(null),re(o[f],[{axis:u},s[f],h[d]])})}),Object.keys(o).forEach(a=>{const r=o[a];re(r,[N.scales[r.type],N.scale])}),o}function io(i){const t=i.options||(i.options={});t.plugins=D(t.plugins,{}),t.scales=Al(i,t)}function so(i){return i=i||{},i.datasets=i.datasets||[],i.labels=i.labels||[],i}function Tl(i){return i=i||{},i.data=so(i.data),io(i),i}const Ns=new Map,no=new Set;function Re(i,t){let e=Ns.get(i);return e||(e=t(),Ns.set(i,e),no.add(e)),e}const te=(i,t,e)=>{const s=kt(t,e);s!==void 0&&i.add(s)};class Ll{constructor(t){this._config=Tl(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=so(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),io(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Re(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return Re(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return Re(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){const e=t.id,s=this.type;return Re(`${s}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){const s=this._scopeCache;let n=s.get(t);return(!n||e)&&(n=new Map,s.set(t,n)),n}getOptionScopes(t,e,s){const{options:n,type:o}=this,a=this._cachedScopes(t,s),r=a.get(e);if(r)return r;const l=new Set;e.forEach(h=>{t&&(l.add(t),h.forEach(d=>te(l,t,d))),h.forEach(d=>te(l,n,d)),h.forEach(d=>te(l,zt[o]||{},d)),h.forEach(d=>te(l,N,d)),h.forEach(d=>te(l,yi,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),no.has(e)&&a.set(e,c),c}chartOptionScopes(){const{options:t,type:e}=this;return[t,zt[e]||{},N.datasets[e]||{},{type:e},N,yi]}resolveNamedOptions(t,e,s,n=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=Hs(this._resolverCache,t,n);let l=a;if(El(a,e)){o.$shared=!1,s=wt(s)?s():s;const c=this.createResolver(t,s,r);l=Xt(a,s,c)}for(const c of e)o[c]=l[c];return o}createResolver(t,e,s=[""],n){const{resolver:o}=Hs(this._resolverCache,t,s);return A(e)?Xt(o,e,void 0,n):o}}function Hs(i,t,e){let s=i.get(t);s||(s=new Map,i.set(t,s));const n=e.join();let o=s.get(n);return o||(o={resolver:ji(t,e),subPrefixes:e.filter(r=>!r.toLowerCase().includes("hover"))},s.set(n,o)),o}const Rl=i=>A(i)&&Object.getOwnPropertyNames(i).some(t=>wt(i[t]));function El(i,t){const{isScriptable:e,isIndexable:s}=zn(i);for(const n of t){const o=e(n),a=s(n),r=(a||o)&&i[n];if(o&&(wt(r)||Rl(r))||a&&V(r))return!0}return!1}var Fl="4.4.4";const Il=["top","bottom","left","right","chartArea"];function js(i,t){return i==="top"||i==="bottom"||Il.indexOf(i)===-1&&t==="x"}function $s(i,t){return function(e,s){return e[i]===s[i]?e[t]-s[t]:e[i]-s[i]}}function Ys(i){const t=i.chart,e=t.options.animation;t.notifyPlugins("afterRender"),F(e&&e.onComplete,[i],t)}function zl(i){const t=i.chart,e=t.options.animation;F(e&&e.onProgress,[i],t)}function oo(i){return Xi()&&typeof i=="string"?i=document.getElementById(i):i&&i.length&&(i=i[0]),i&&i.canvas&&(i=i.canvas),i}const $e={},Xs=i=>{const t=oo(i);return Object.values($e).filter(e=>e.canvas===t).pop()};function Bl(i,t,e){const s=Object.keys(i);for(const n of s){const o=+n;if(o>=t){const a=i[n];delete i[n],(e>0||o>t)&&(i[o+e]=a)}}}function Vl(i,t,e,s){return!e||i.type==="mouseout"?null:s?t:i}function Ee(i,t,e){return i.options.clip?i[e]:t[e]}function Wl(i,t){const{xScale:e,yScale:s}=i;return e&&s?{left:Ee(e,t,"left"),right:Ee(e,t,"right"),top:Ee(s,t,"top"),bottom:Ee(s,t,"bottom")}:t}class bt{static register(...t){lt.add(...t),Us()}static unregister(...t){lt.remove(...t),Us()}constructor(t,e){const s=this.config=new Ll(e),n=oo(t),o=Xs(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||sl(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,c=l&&l.height,h=l&&l.width;if(this.id=Ho(),this.ctx=r,this.canvas=l,this.width=h,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new vl,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=na(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],$e[this.id]=this,!r||!l){console.error("Failed to create chart: can't acquire context from the given item");return}dt.listen(this,"complete",Ys),dt.listen(this,"progress",zl),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:s,height:n,_aspectRatio:o}=this;return L(t)?e&&o?o:n?s/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return lt}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():gs(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return ds(this.canvas,this.ctx),this}stop(){return dt.stop(this),this}resize(t,e){dt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const s=this.options,n=this.canvas,o=s.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(n,t,e,o),r=s.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,gs(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),F(s.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const e=this.options.scales||{};R(e,(s,n)=>{s.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,s=this.scales,n=Object.keys(s).reduce((a,r)=>(a[r]=!1,a),{});let o=[];e&&(o=o.concat(Object.keys(e).map(a=>{const r=e[a],l=wi(a,r),c=l==="r",h=l==="x";return{options:r,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),R(o,a=>{const r=a.options,l=r.id,c=wi(l,r),h=D(r.type,a.dtype);(r.position===void 0||js(r.position,c)!==js(a.dposition))&&(r.position=a.dposition),n[l]=!0;let d=null;if(l in s&&s[l].type===h)d=s[l];else{const u=lt.getScale(h);d=new u({id:l,type:h,ctx:this.ctx,chart:this}),s[d.id]=d}d.init(r,t)}),R(n,(a,r)=>{a||delete s[r]}),R(s,a=>{q.configure(this,a,a.options),q.addBox(this,a)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,s=t.length;if(t.sort((n,o)=>n.index-o.index),s>e){for(let n=e;ne.length&&delete this._stacks,t.forEach((s,n)=>{e.filter(o=>o===s._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let s,n;for(this._removeUnreferencedMetasets(),s=0,n=e.length;s{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const s=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!s.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let c=0,h=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort($s("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){R(this.scales,t=>{q.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),s=new Set(t.events);(!is(e,s)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:s,start:n,count:o}of e){const a=s==="_removeElements"?-o:o;Bl(t,n,a)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,s=o=>new Set(t.filter(a=>a[0]===o).map((a,r)=>r+","+a.splice(1).join(","))),n=s(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;q.update(this,this.width,this.height,t);const e=this.chartArea,s=e.width<=0||e.height<=0;this._layers=[],R(this.boxes,n=>{s&&n.position==="chartArea"||(n.configure&&n.configure(),this._layers.push(...n._layers()))},this),this._layers.forEach((n,o)=>{n._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,s=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,s=t._clip,n=!s.disabled,o=Wl(t,this.chartArea),a={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",a)!==!1&&(n&&ii(e,{left:s.left===!1?0:o.left-s.left,right:s.right===!1?this.width:o.right+s.right,top:s.top===!1?0:o.top-s.top,bottom:s.bottom===!1?this.height:o.bottom+s.bottom}),t.controller.draw(),n&&si(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return mt(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,s,n){const o=Ir.modes[e];return typeof o=="function"?o(this,t,s,n):[]}getDatasetMeta(t){const e=this.data.datasets[t],s=this._metasets;let n=s.filter(o=>o&&o._dataset===e).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},s.push(n)),n}getContext(){return this.$context||(this.$context=St(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const s=this.getDatasetMeta(t);return typeof s.hidden=="boolean"?!s.hidden:!e.hidden}setDatasetVisibility(t,e){const s=this.getDatasetMeta(t);s.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,s){const n=s?"show":"hide",o=this.getDatasetMeta(t),a=o.controller._resolveAnimations(void 0,n);ge(e)?(o.data[e].hidden=!s,this.update()):(this.setDatasetVisibility(t,s),a.update(o,{visible:s}),this.update(r=>r.datasetIndex===t?n:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),dt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,a),t[o]=a},n=(o,a,r)=>{o.offsetX=a,o.offsetY=r,this._eventHandler(o)};R(this.options.events,o=>s(o,n))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,s=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},n=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},o=(l,c)=>{this.canvas&&this.resize(l,c)};let a;const r=()=>{n("attach",r),this.attached=!0,this.resize(),s("resize",o),s("detach",a)};a=()=>{this.attached=!1,n("resize",o),this._stop(),this._resize(0,0),s("attach",r)},e.isAttached(this.canvas)?r():a()}unbindEvents(){R(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},R(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,s){const n=s?"set":"remove";let o,a,r,l;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+n+"DatasetHoverStyle"]()),r=0,l=t.length;r{const r=this.getDatasetMeta(o);if(!r)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:r.data[a],index:a}});!Ue(s,e)&&(this._active=s,this._lastEvent=null,this._updateHoverStyles(s,e))}notifyPlugins(t,e,s){return this._plugins.notify(this,t,e,s)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,s){const n=this.options.hover,o=(l,c)=>l.filter(h=>!c.some(d=>h.datasetIndex===d.datasetIndex&&h.index===d.index)),a=o(e,t),r=s?t:o(t,e);a.length&&this.updateHoverStyle(a,n.mode,!1),r.length&&n.mode&&this.updateHoverStyle(r,n.mode,!0)}_eventHandler(t,e){const s={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",s,n)===!1)return;const o=this._handleEvent(t,e,s.inChartArea);return s.cancelable=!1,this.notifyPlugins("afterEvent",s,n),(o||s.changed)&&this.render(),this}_handleEvent(t,e,s){const{_active:n=[],options:o}=this,a=e,r=this._getActiveElements(t,n,s,a),l=Ko(t),c=Vl(t,this._lastEvent,s,l);s&&(this._lastEvent=null,F(o.onHover,[t,r,this],this),l&&F(o.onClick,[t,r,this],this));const h=!Ue(r,n);return(h||e)&&(this._active=r,this._updateHoverStyles(r,n,e)),this._lastEvent=c,h}_getActiveElements(t,e,s,n){if(t.type==="mouseout")return[];if(!s)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,n)}}M(bt,"defaults",N),M(bt,"instances",$e),M(bt,"overrides",zt),M(bt,"registry",lt),M(bt,"version",Fl),M(bt,"getChart",Xs);function Us(){return R(bt.instances,i=>i._plugins.invalidate())}function Nl(i,t,e){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=t;let c=n/r;i.beginPath(),i.arc(o,a,r,s-c,e+c),l>n?(c=n/l,i.arc(o,a,l,e+c,s-c,!0)):i.arc(o,a,n,e+j,s-j),i.closePath(),i.clip()}function Hl(i){return Hi(i,["outerStart","outerEnd","innerStart","innerEnd"])}function jl(i,t,e,s){const n=Hl(i.options.borderRadius),o=(e-t)/2,a=Math.min(o,s*t/2),r=l=>{const c=(e-Math.min(o,l))*s/2;return Y(l,0,Math.min(o,c))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Y(n.innerStart,0,a),innerEnd:Y(n.innerEnd,0,a)}}function jt(i,t,e,s){return{x:e+i*Math.cos(t),y:s+i*Math.sin(t)}}function Qe(i,t,e,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:c,innerRadius:h}=t,d=Math.max(t.outerRadius+s+e-c,0),u=h>0?h+s+e+c:0;let f=0;const g=n-l;if(s){const E=h>0?h-s:0,B=d>0?d-s:0,H=(E+B)/2,st=H!==0?g*H/(H+s):g;f=(g-st)/2}const p=Math.max(.001,g*d-e/z)/d,m=(g-p)/2,b=l+m+f,x=n-m-f,{outerStart:v,outerEnd:y,innerStart:_,innerEnd:k}=jl(t,u,d,x-b),w=d-v,S=d-y,P=b+v/w,O=x-y/S,C=u+_,T=u+k,X=b+_/C,Q=x-k/T;if(i.beginPath(),o){const E=(P+O)/2;if(i.arc(a,r,d,P,E),i.arc(a,r,d,E,O),y>0){const U=jt(S,O,a,r);i.arc(U.x,U.y,y,O,x+j)}const B=jt(T,x,a,r);if(i.lineTo(B.x,B.y),k>0){const U=jt(T,Q,a,r);i.arc(U.x,U.y,k,x+j,Q+Math.PI)}const H=(x-k/u+(b+_/u))/2;if(i.arc(a,r,u,x-k/u,H,!0),i.arc(a,r,u,H,b+_/u,!0),_>0){const U=jt(C,X,a,r);i.arc(U.x,U.y,_,X+Math.PI,b-j)}const st=jt(w,b,a,r);if(i.lineTo(st.x,st.y),v>0){const U=jt(w,P,a,r);i.arc(U.x,U.y,v,b-j,P)}}else{i.moveTo(a,r);const E=Math.cos(P)*d+a,B=Math.sin(P)*d+r;i.lineTo(E,B);const H=Math.cos(O)*d+a,st=Math.sin(O)*d+r;i.lineTo(H,st)}i.closePath()}function $l(i,t,e,s,n){const{fullCircles:o,startAngle:a,circumference:r}=t;let l=t.endAngle;if(o){Qe(i,t,e,s,l,n);for(let c=0;c=I||p,b=gt(r,h+f,d+f);return m&&b}getCenterPoint(e){const{x:s,y:n,startAngle:o,endAngle:a,innerRadius:r,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:c,spacing:h}=this.options,d=(o+a)/2,u=(r+l+h+c)/2;return{x:s+Math.cos(d)*u,y:n+Math.sin(d)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:s,circumference:n}=this,o=(s.offset||0)/4,a=(s.spacing||0)/2,r=s.circular;if(this.pixelMargin=s.borderAlign==="inner"?.33:0,this.fullCircles=n>I?Math.floor(n/I):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const l=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(l)*o,Math.sin(l)*o);const c=1-Math.sin(Math.min(z,n||0)),h=o*c;e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,$l(e,this,h,a,r),Yl(e,this,h,a,r),e.restore()}}M(ne,"id","arc"),M(ne,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),M(ne,"defaultRoutes",{backgroundColor:"backgroundColor"}),M(ne,"descriptors",{_scriptable:!0,_indexable:e=>e!=="borderDash"});function ao(i,t,e=t){i.lineCap=D(e.borderCapStyle,t.borderCapStyle),i.setLineDash(D(e.borderDash,t.borderDash)),i.lineDashOffset=D(e.borderDashOffset,t.borderDashOffset),i.lineJoin=D(e.borderJoinStyle,t.borderJoinStyle),i.lineWidth=D(e.borderWidth,t.borderWidth),i.strokeStyle=D(e.borderColor,t.borderColor)}function Xl(i,t,e){i.lineTo(e.x,e.y)}function Ul(i){return i.stepped?ma:i.tension||i.cubicInterpolationMode==="monotone"?ba:Xl}function ro(i,t,e={}){const s=i.length,{start:n=0,end:o=s-1}=e,{start:a,end:r}=t,l=Math.max(n,a),c=Math.min(o,r),h=nr&&o>r;return{count:s,start:l,loop:t.loop,ilen:c(a+(c?r-y:y))%o,v=()=>{p!==m&&(i.lineTo(h,m),i.lineTo(h,p),i.lineTo(h,b))};for(l&&(f=n[x(0)],i.moveTo(f.x,f.y)),u=0;u<=r;++u){if(f=n[x(u)],f.skip)continue;const y=f.x,_=f.y,k=y|0;k===g?(_m&&(m=_),h=(d*h+y)/++d):(v(),i.lineTo(y,_),g=k,d=0,p=m=_),b=_}v()}function Si(i){const t=i.options,e=t.borderDash&&t.borderDash.length;return!i._decimated&&!i._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?ql:Kl}function Gl(i){return i.stepped?qa:i.tension||i.cubicInterpolationMode==="monotone"?Ga:Rt}function Zl(i,t,e,s){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,s)&&n.closePath()),ao(i,t.options),i.stroke(n)}function Jl(i,t,e,s){const{segments:n,options:o}=t,a=Si(t);for(const r of n)ao(i,o,r.style),i.beginPath(),a(i,t,r,{start:e,end:e+s-1})&&i.closePath(),i.stroke()}const Ql=typeof Path2D=="function";function tc(i,t,e,s){Ql&&!t.options.segment?Zl(i,t,e,s):Jl(i,t,e,s)}class yt extends at{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const s=this.options;if((s.tension||s.cubicInterpolationMode==="monotone")&&!s.stepped&&!this._pointsUpdated){const n=s.spanGaps?this._loop:this._fullLoop;Na(this._points,s,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=ir(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,s=t.length;return s&&e[t[s-1].end]}interpolate(t,e){const s=this.options,n=t[e],o=this.points,a=Un(this,{property:e,start:n,end:n});if(!a.length)return;const r=[],l=Gl(s);let c,h;for(c=0,h=a.length;ct!=="borderDash"&&t!=="fill"});function Ks(i,t,e,s){const n=i.options,{[e]:o}=i.getProps([e],s);return Math.abs(t-o)i.replace("rgb(","rgba(").replace(")",", 0.5)"));function co(i){return Pi[i%Pi.length]}function ho(i){return qs[i%qs.length]}function rc(i,t){return i.borderColor=co(t),i.backgroundColor=ho(t),++t}function lc(i,t){return i.backgroundColor=i.data.map(()=>co(t++)),t}function cc(i,t){return i.backgroundColor=i.data.map(()=>ho(t++)),t}function hc(i){let t=0;return(e,s)=>{const n=i.getDatasetMeta(s).controller;n instanceof Et?t=lc(e,t):n instanceof de?t=cc(e,t):n&&(t=rc(e,t))}}function Gs(i){let t;for(t in i)if(i[t].borderColor||i[t].backgroundColor)return!0;return!1}function dc(i){return i&&(i.borderColor||i.backgroundColor)}var uc={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(i,t,e){if(!e.enabled)return;const{data:{datasets:s},options:n}=i.config,{elements:o}=n;if(!e.forceOverride&&(Gs(s)||dc(n)||o&&Gs(o)))return;const a=hc(i);s.forEach(a)}};function fc(i,t,e,s,n){const o=n.samples||s;if(o>=e)return i.slice(t,t+e);const a=[],r=(e-2)/(o-2);let l=0;const c=t+e-1;let h=t,d,u,f,g,p;for(a[l++]=i[h],d=0;df&&(f=g,u=i[x],p=x);a[l++]=u,h=p}return a[l++]=i[c],a}function gc(i,t,e,s){let n=0,o=0,a,r,l,c,h,d,u,f,g,p;const m=[],b=t+e-1,x=i[t].x,y=i[b].x-x;for(a=t;ap&&(p=c,u=a),n=(o*n+r.x)/++o;else{const k=a-1;if(!L(d)&&!L(u)){const w=Math.min(d,u),S=Math.max(d,u);w!==f&&w!==k&&m.push({...i[w],x:n}),S!==f&&S!==k&&m.push({...i[S],x:n})}a>0&&k!==f&&m.push(i[k]),m.push(r),h=_,o=0,g=p=c,d=u=f=a}}return m}function uo(i){if(i._decimated){const t=i._data;delete i._decimated,delete i._data,Object.defineProperty(i,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function Zs(i){i.data.datasets.forEach(t=>{uo(t)})}function pc(i,t){const e=t.length;let s=0,n;const{iScale:o}=i,{min:a,max:r,minDefined:l,maxDefined:c}=o.getUserBounds();return l&&(s=Y(pt(t,o.axis,a).lo,0,e-1)),c?n=Y(pt(t,o.axis,r).hi+1,s,e)-s:n=e-s,{start:s,count:n}}var mc={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(i,t,e)=>{if(!e.enabled){Zs(i);return}const s=i.width;i.data.datasets.forEach((n,o)=>{const{_data:a,indexAxis:r}=n,l=i.getDatasetMeta(o),c=a||n.data;if(ie([r,i.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;const h=i.scales[l.xAxisID];if(h.type!=="linear"&&h.type!=="time"||i.options.parsing)return;let{start:d,count:u}=pc(l,c);const f=e.threshold||4*s;if(u<=f){uo(n);return}L(a)&&(n._data=c,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(p){this._data=p}}));let g;switch(e.algorithm){case"lttb":g=fc(c,d,u,s,e);break;case"min-max":g=gc(c,d,u,s);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}n._decimated=g})},destroy(i){Zs(i)}};function bc(i,t,e){const s=i.segments,n=i.points,o=t.points,a=[];for(const r of s){let{start:l,end:c}=r;c=qi(l,c,n);const h=Di(e,n[l],n[c],r.loop);if(!t.segments){a.push({source:r,target:h,start:n[l],end:n[c]});continue}const d=Un(t,h);for(const u of d){const f=Di(e,o[u.start],o[u.end],u.loop),g=Xn(r,n,f);for(const p of g)a.push({source:p,target:u,start:{[e]:Js(h,f,"start",Math.max)},end:{[e]:Js(h,f,"end",Math.min)}})}}return a}function Di(i,t,e,s){if(s)return;let n=t[i],o=e[i];return i==="angle"&&(n=et(n),o=et(o)),{property:i,start:n,end:o}}function xc(i,t){const{x:e=null,y:s=null}=i||{},n=t.points,o=[];return t.segments.forEach(({start:a,end:r})=>{r=qi(a,r,n);const l=n[a],c=n[r];s!==null?(o.push({x:l.x,y:s}),o.push({x:c.x,y:s})):e!==null&&(o.push({x:e,y:l.y}),o.push({x:e,y:c.y}))}),o}function qi(i,t,e){for(;t>i;t--){const s=e[t];if(!isNaN(s.x)&&!isNaN(s.y))break}return t}function Js(i,t,e,s){return i&&t?s(i[e],t[e]):i?i[e]:t?t[e]:0}function fo(i,t){let e=[],s=!1;return V(i)?(s=!0,e=i):e=xc(i,t),e.length?new yt({points:e,options:{tension:0},_loop:s,_fullLoop:s}):null}function Qs(i){return i&&i.fill!==!1}function _c(i,t,e){let n=i[t].fill;const o=[t];let a;if(!e)return n;for(;n!==!1&&o.indexOf(n)===-1;){if(!W(n))return n;if(a=i[n],!a)return!1;if(a.visible)return n;o.push(n),n=a.fill}return!1}function yc(i,t,e){const s=wc(i);if(A(s))return isNaN(s.value)?!1:s;let n=parseFloat(s);return W(n)&&Math.floor(n)===n?vc(s[0],t,n,e):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function vc(i,t,e,s){return(i==="-"||i==="+")&&(e=t+e),e===t||e<0||e>=s?!1:e}function Mc(i,t){let e=null;return i==="start"?e=t.bottom:i==="end"?e=t.top:A(i)?e=t.getPixelForValue(i.value):t.getBasePixel&&(e=t.getBasePixel()),e}function kc(i,t,e){let s;return i==="start"?s=e:i==="end"?s=t.options.reverse?t.min:t.max:A(i)?s=i.value:s=t.getBaseValue(),s}function wc(i){const t=i.options,e=t.fill;let s=D(e&&e.target,e);return s===void 0&&(s=!!t.backgroundColor),s===!1||s===null?!1:s===!0?"origin":s}function Sc(i){const{scale:t,index:e,line:s}=i,n=[],o=s.segments,a=s.points,r=Pc(t,e);r.push(fo({x:null,y:t.bottom},s));for(let l=0;l=0;--a){const r=n[a].$filler;r&&(r.line.updateControlPoints(o,r.axis),s&&r.fill&&bi(i.ctx,r,o))}},beforeDatasetsDraw(i,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;const s=i.getSortedVisibleDatasetMetas();for(let n=s.length-1;n>=0;--n){const o=s[n].$filler;Qs(o)&&bi(i.ctx,o,i.chartArea)}},beforeDatasetDraw(i,t,e){const s=t.meta.$filler;!Qs(s)||e.drawTime!=="beforeDatasetDraw"||bi(i.ctx,s,i.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const nn=(i,t)=>{let{boxHeight:e=t,boxWidth:s=t}=i;return i.usePointStyle&&(e=Math.min(e,t),s=i.pointStyleWidth||Math.min(s,t)),{boxWidth:s,boxHeight:e,itemHeight:Math.max(t,e)}},zc=(i,t)=>i!==null&&t!==null&&i.datasetIndex===t.datasetIndex&&i.index===t.index;class on extends at{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,s){this.maxWidth=t,this.maxHeight=e,this._margins=s,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=F(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(s=>t.filter(s,this.chart.data))),t.sort&&(e=e.sort((s,n)=>t.sort(s,n,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}const s=t.labels,n=$(s.font),o=n.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=nn(s,o);let c,h;e.font=n.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(a,o,r,l)+10):(h=this.maxHeight,c=this._fitCols(a,n,r,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,s,n){const{ctx:o,maxWidth:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=n+r;let d=t;o.textAlign="left",o.textBaseline="middle";let u=-1,f=-h;return this.legendItems.forEach((g,p)=>{const m=s+e/2+o.measureText(g.text).width;(p===0||c[c.length-1]+m+2*r>a)&&(d+=h,c[c.length-(p>0?0:1)]=0,f+=h,u++),l[p]={left:0,top:f,row:u,width:m,height:n},c[c.length-1]+=m+r}),d}_fitCols(t,e,s,n){const{ctx:o,maxHeight:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=a-t;let d=r,u=0,f=0,g=0,p=0;return this.legendItems.forEach((m,b)=>{const{itemWidth:x,itemHeight:v}=Bc(s,e,o,m,n);b>0&&f+v+2*r>h&&(d+=u+r,c.push({width:u,height:f}),g+=u+r,p++,u=f=0),l[b]={left:g,top:f,col:p,width:x,height:v},u=Math.max(u,x),f+=v+r}),d+=u,c.push({width:u,height:f}),d}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:s,labels:{padding:n},rtl:o}}=this,a=$t(o,this.left,this.width);if(this.isHorizontal()){let r=0,l=K(s,this.left+n,this.right-this.lineWidths[r]);for(const c of e)r!==c.row&&(r=c.row,l=K(s,this.left+n,this.right-this.lineWidths[r])),c.top+=this.top+t+n,c.left=a.leftForLtr(a.x(l),c.width),l+=c.width+n}else{let r=0,l=K(s,this.top+t+n,this.bottom-this.columnSizes[r].height);for(const c of e)c.col!==r&&(r=c.col,l=K(s,this.top+t+n,this.bottom-this.columnSizes[r].height)),c.top=l,c.left+=this.left+n,c.left=a.leftForLtr(a.x(c.left),c.width),l+=c.height+n}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;ii(t,this),this._draw(),si(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:s,ctx:n}=this,{align:o,labels:a}=t,r=N.color,l=$t(t.rtl,this.left,this.width),c=$(a.font),{padding:h}=a,d=c.size,u=d/2;let f;this.drawTitle(),n.textAlign=l.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=c.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=nn(a,d),b=function(k,w,S){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;n.save();const P=D(S.lineWidth,1);if(n.fillStyle=D(S.fillStyle,r),n.lineCap=D(S.lineCap,"butt"),n.lineDashOffset=D(S.lineDashOffset,0),n.lineJoin=D(S.lineJoin,"miter"),n.lineWidth=P,n.strokeStyle=D(S.strokeStyle,r),n.setLineDash(D(S.lineDash,[])),a.usePointStyle){const O={radius:p*Math.SQRT2/2,pointStyle:S.pointStyle,rotation:S.rotation,borderWidth:P},C=l.xPlus(k,g/2),T=w+u;Fn(n,O,C,T,a.pointStyleWidth&&g)}else{const O=w+Math.max((d-p)/2,0),C=l.leftForLtr(k,g),T=Ft(S.borderRadius);n.beginPath(),Object.values(T).some(X=>X!==0)?me(n,{x:C,y:O,w:g,h:p,radius:T}):n.rect(C,O,g,p),n.fill(),P!==0&&n.stroke()}n.restore()},x=function(k,w,S){Bt(n,S.text,k,w+m/2,c,{strikethrough:S.hidden,textAlign:l.textAlign(S.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();v?f={x:K(o,this.left+h,this.right-s[0]),y:this.top+h+y,line:0}:f={x:this.left+h,y:K(o,this.top+y+h,this.bottom-e[0].height),line:0},jn(this.ctx,t.textDirection);const _=m+h;this.legendItems.forEach((k,w)=>{n.strokeStyle=k.fontColor,n.fillStyle=k.fontColor;const S=n.measureText(k.text).width,P=l.textAlign(k.textAlign||(k.textAlign=a.textAlign)),O=g+u+S;let C=f.x,T=f.y;l.setWidth(this.width),v?w>0&&C+O+h>this.right&&(T=f.y+=_,f.line++,C=f.x=K(o,this.left+h,this.right-s[f.line])):w>0&&T+_>this.bottom&&(C=f.x=C+e[f.line].width+h,f.line++,T=f.y=K(o,this.top+y+h,this.bottom-e[f.line].height));const X=l.x(C);if(b(X,T,k),C=oa(P,C+g+u,v?C+O:this.right,t.rtl),x(l.x(C),T,k),v)f.x+=O+h;else if(typeof k.text!="string"){const Q=c.lineHeight;f.y+=po(k,Q)+h}else f.y+=_}),$n(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,s=$(e.font),n=G(e.padding);if(!e.display)return;const o=$t(t.rtl,this.left,this.width),a=this.ctx,r=e.position,l=s.size/2,c=n.top+l;let h,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),h=this.top+c,d=K(t.align,d,this.right-u);else{const g=this.columnSizes.reduce((p,m)=>Math.max(p,m.height),0);h=c+K(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const f=K(r,d,d+u);a.textAlign=o.textAlign(Wi(r)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=s.string,Bt(a,e.text,f,h,s)}_computeTitleHeight(){const t=this.options.title,e=$(t.font),s=G(t.padding);return t.display?e.lineHeight+s.height:0}_getLegendItemAt(t,e){let s,n,o;if(gt(t,this.left,this.right)&>(e,this.top,this.bottom)){for(o=this.legendHitBoxes,s=0;so.length>a.length?o:a)),t+e.size/2+s.measureText(n).width}function Wc(i,t,e){let s=i;return typeof t.text!="string"&&(s=po(t,e)),s}function po(i,t){const e=i.text?i.text.length:0;return t*e}function Nc(i,t){return!!((i==="mousemove"||i==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(i==="click"||i==="mouseup"))}var Hc={id:"legend",_element:on,start(i,t,e){const s=i.legend=new on({ctx:i.ctx,options:e,chart:i});q.configure(i,s,e),q.addBox(i,s)},stop(i){q.removeBox(i,i.legend),delete i.legend},beforeUpdate(i,t,e){const s=i.legend;q.configure(i,s,e),s.options=e},afterUpdate(i){const t=i.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(i,t){t.replay||i.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(i,t,e){const s=t.datasetIndex,n=e.chart;n.isDatasetVisible(s)?(n.hide(s),t.hidden=!0):(n.show(s),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:i=>i.chart.options.color,boxWidth:40,padding:10,generateLabels(i){const t=i.data.datasets,{labels:{usePointStyle:e,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=i.legend.options;return i._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(e?0:void 0),h=G(c.borderWidth);return{text:t[l.index].label,fillStyle:c.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:c.borderColor,pointStyle:s||c.pointStyle,rotation:c.rotation,textAlign:n||c.textAlign,borderRadius:a&&(r||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:i=>i.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:i=>!i.startsWith("on"),labels:{_scriptable:i=>!["generateLabels","filter","sort"].includes(i)}}};class Gi extends at{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const s=this.options;if(this.left=0,this.top=0,!s.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;const n=V(s.text)?s.text.length:1;this._padding=G(s.padding);const o=n*$(s.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:e,left:s,bottom:n,right:o,options:a}=this,r=a.align;let l=0,c,h,d;return this.isHorizontal()?(h=K(r,s,o),d=e+t,c=o-s):(a.position==="left"?(h=s+t,d=K(r,n,e),l=z*-.5):(h=o-t,d=K(r,e,n),l=z*.5),c=n-e),{titleX:h,titleY:d,maxWidth:c,rotation:l}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const s=$(e.font),o=s.lineHeight/2+this._padding.top,{titleX:a,titleY:r,maxWidth:l,rotation:c}=this._drawArgs(o);Bt(t,e.text,0,0,s,{color:e.color,maxWidth:l,rotation:c,textAlign:Wi(e.align),textBaseline:"middle",translation:[a,r]})}}function jc(i,t){const e=new Gi({ctx:i.ctx,options:t,chart:i});q.configure(i,e,t),q.addBox(i,e),i.titleBlock=e}var $c={id:"title",_element:Gi,start(i,t,e){jc(i,e)},stop(i){const t=i.titleBlock;q.removeBox(i,t),delete i.titleBlock},beforeUpdate(i,t,e){const s=i.titleBlock;q.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Fe=new WeakMap;var Yc={id:"subtitle",start(i,t,e){const s=new Gi({ctx:i.ctx,options:e,chart:i});q.configure(i,s,e),q.addBox(i,s),Fe.set(i,s)},stop(i){q.removeBox(i,Fe.get(i)),Fe.delete(i)},beforeUpdate(i,t,e){const s=Fe.get(i);q.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const oe={average(i){if(!i.length)return!1;let t,e,s=new Set,n=0,o=0;for(t=0,e=i.length;tr+l)/s.size,y:n/o}},nearest(i,t){if(!i.length)return!1;let e=t.x,s=t.y,n=Number.POSITIVE_INFINITY,o,a,r;for(o=0,a=i.length;o-1?i.split(` +`):i}function Xc(i,t){const{element:e,datasetIndex:s,index:n}=t,o=i.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:i,label:a,parsed:o.getParsed(n),raw:i.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:e}}function an(i,t){const e=i.chart.ctx,{body:s,footer:n,title:o}=i,{boxWidth:a,boxHeight:r}=t,l=$(t.bodyFont),c=$(t.titleFont),h=$(t.footerFont),d=o.length,u=n.length,f=s.length,g=G(t.padding);let p=g.height,m=0,b=s.reduce((y,_)=>y+_.before.length+_.lines.length+_.after.length,0);if(b+=i.beforeBody.length+i.afterBody.length,d&&(p+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),b){const y=t.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=f*y+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}u&&(p+=t.footerMarginTop+u*h.lineHeight+(u-1)*t.footerSpacing);let x=0;const v=function(y){m=Math.max(m,e.measureText(y).width+x)};return e.save(),e.font=c.string,R(i.title,v),e.font=l.string,R(i.beforeBody.concat(i.afterBody),v),x=t.displayColors?a+2+t.boxPadding:0,R(s,y=>{R(y.before,v),R(y.lines,v),R(y.after,v)}),x=0,e.font=h.string,R(i.footer,v),e.restore(),m+=g.width,{width:m,height:p}}function Uc(i,t){const{y:e,height:s}=t;return ei.height-s/2?"bottom":"center"}function Kc(i,t,e,s){const{x:n,width:o}=s,a=e.caretSize+e.caretPadding;if(i==="left"&&n+o+a>t.width||i==="right"&&n-o-a<0)return!0}function qc(i,t,e,s){const{x:n,width:o}=e,{width:a,chartArea:{left:r,right:l}}=i;let c="center";return s==="center"?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),Kc(c,i,t,e)&&(c="center"),c}function rn(i,t,e){const s=e.yAlign||t.yAlign||Uc(i,e);return{xAlign:e.xAlign||t.xAlign||qc(i,t,e,s),yAlign:s}}function Gc(i,t){let{x:e,width:s}=i;return t==="right"?e-=s:t==="center"&&(e-=s/2),e}function Zc(i,t,e){let{y:s,height:n}=i;return t==="top"?s+=e:t==="bottom"?s-=n+e:s-=n/2,s}function ln(i,t,e,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=i,{xAlign:r,yAlign:l}=e,c=n+o,{topLeft:h,topRight:d,bottomLeft:u,bottomRight:f}=Ft(a);let g=Gc(t,r);const p=Zc(t,l,c);return l==="center"?r==="left"?g+=c:r==="right"&&(g-=c):r==="left"?g-=Math.max(h,u)+n:r==="right"&&(g+=Math.max(d,f)+n),{x:Y(g,0,s.width-t.width),y:Y(p,0,s.height-t.height)}}function Ie(i,t,e){const s=G(e.padding);return t==="center"?i.x+i.width/2:t==="right"?i.x+i.width-s.right:i.x+s.left}function cn(i){return rt([],ut(i))}function Jc(i,t,e){return St(i,{tooltip:t,tooltipItems:e,type:"tooltip"})}function hn(i,t){const e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?i.override(e):i}const mo={beforeTitle:ht,title(i){if(i.length>0){const t=i[0],e=t.chart.data.labels,s=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(s>0&&t.dataIndex"u"?mo[t].call(e,s):n}class Oi extends at{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,s=this.options.setContext(this.getContext()),n=s.enabled&&e.options.animation&&s.animations,o=new Kn(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=Jc(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){const{callbacks:s}=e,n=Z(s,"beforeTitle",this,t),o=Z(s,"title",this,t),a=Z(s,"afterTitle",this,t);let r=[];return r=rt(r,ut(n)),r=rt(r,ut(o)),r=rt(r,ut(a)),r}getBeforeBody(t,e){return cn(Z(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:s}=e,n=[];return R(t,o=>{const a={before:[],lines:[],after:[]},r=hn(s,o);rt(a.before,ut(Z(r,"beforeLabel",this,o))),rt(a.lines,Z(r,"label",this,o)),rt(a.after,ut(Z(r,"afterLabel",this,o))),n.push(a)}),n}getAfterBody(t,e){return cn(Z(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:s}=e,n=Z(s,"beforeFooter",this,t),o=Z(s,"footer",this,t),a=Z(s,"afterFooter",this,t);let r=[];return r=rt(r,ut(n)),r=rt(r,ut(o)),r=rt(r,ut(a)),r}_createItems(t){const e=this._active,s=this.chart.data,n=[],o=[],a=[];let r=[],l,c;for(l=0,c=e.length;lt.filter(h,d,u,s))),t.itemSort&&(r=r.sort((h,d)=>t.itemSort(h,d,s))),R(r,h=>{const d=hn(t.callbacks,h);n.push(Z(d,"labelColor",this,h)),o.push(Z(d,"labelPointStyle",this,h)),a.push(Z(d,"labelTextColor",this,h))}),this.labelColors=n,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=r,r}update(t,e){const s=this.options.setContext(this.getContext()),n=this._active;let o,a=[];if(!n.length)this.opacity!==0&&(o={opacity:0});else{const r=oe[s.position].call(this,n,this._eventPosition);a=this._createItems(s),this.title=this.getTitle(a,s),this.beforeBody=this.getBeforeBody(a,s),this.body=this.getBody(a,s),this.afterBody=this.getAfterBody(a,s),this.footer=this.getFooter(a,s);const l=this._size=an(this,s),c=Object.assign({},r,l),h=rn(this.chart,s,c),d=ln(s,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,o={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:r.x,caretY:r.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&s.external&&s.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,s,n){const o=this.getCaretPosition(t,s,n);e.lineTo(o.x1,o.y1),e.lineTo(o.x2,o.y2),e.lineTo(o.x3,o.y3)}getCaretPosition(t,e,s){const{xAlign:n,yAlign:o}=this,{caretSize:a,cornerRadius:r}=s,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:d}=Ft(r),{x:u,y:f}=t,{width:g,height:p}=e;let m,b,x,v,y,_;return o==="center"?(y=f+p/2,n==="left"?(m=u,b=m-a,v=y+a,_=y-a):(m=u+g,b=m+a,v=y-a,_=y+a),x=m):(n==="left"?b=u+Math.max(l,h)+a:n==="right"?b=u+g-Math.max(c,d)-a:b=this.caretX,o==="top"?(v=f,y=v-a,m=b-a,x=b+a):(v=f+p,y=v+a,m=b+a,x=b-a),_=v),{x1:m,x2:b,x3:x,y1:v,y2:y,y3:_}}drawTitle(t,e,s){const n=this.title,o=n.length;let a,r,l;if(o){const c=$t(s.rtl,this.x,this.width);for(t.x=Ie(this,s.titleAlign,s),e.textAlign=c.textAlign(s.titleAlign),e.textBaseline="middle",a=$(s.titleFont),r=s.titleSpacing,e.fillStyle=s.titleColor,e.font=a.string,l=0;lx!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,me(t,{x:p,y:g,w:c,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),me(t,{x:m,y:g+1,w:c-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(p,g,c,l),t.strokeRect(p,g,c,l),t.fillStyle=a.backgroundColor,t.fillRect(m,g+1,c-2,l-2))}t.fillStyle=this.labelTextColors[s]}drawBody(t,e,s){const{body:n}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:l,boxWidth:c,boxPadding:h}=s,d=$(s.bodyFont);let u=d.lineHeight,f=0;const g=$t(s.rtl,this.x,this.width),p=function(S){e.fillText(S,g.x(t.x+f),t.y+u/2),t.y+=u+o},m=g.textAlign(a);let b,x,v,y,_,k,w;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=Ie(this,m,s),e.fillStyle=s.bodyColor,R(this.beforeBody,p),f=r&&m!=="right"?a==="center"?c/2+h:c+2+h:0,y=0,k=n.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,s=this.$animations,n=s&&s.x,o=s&&s.y;if(n||o){const a=oe[t.position].call(this,this._active,this._eventPosition);if(!a)return;const r=this._size=an(this,t),l=Object.assign({},a,this._size),c=rn(e,t,l),h=ln(t,l,c,e);(n._to!==h.x||o._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=r.width,this.height=r.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let s=this.opacity;if(!s)return;this._updateAnimationTarget(e);const n={width:this.width,height:this.height},o={x:this.x,y:this.y};s=Math.abs(s)<.001?0:s;const a=G(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=s,this.drawBackground(o,t,n,e),jn(t,e.textDirection),o.y+=a.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),$n(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const s=this._active,n=t.map(({datasetIndex:r,index:l})=>{const c=this.chart.getDatasetMeta(r);if(!c)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:c.data[l],index:l}}),o=!Ue(s,n),a=this._positionChanged(n,e);(o||a)&&(this._active=n,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,s=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const n=this.options,o=this._active||[],a=this._getActiveElements(t,o,e,s),r=this._positionChanged(a,t),l=e||!Ue(a,o)||r;return l&&(this._active=a,(n.enabled||n.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,s,n){const o=this.options;if(t.type==="mouseout")return[];if(!n)return e.filter(r=>this.chart.data.datasets[r.datasetIndex]&&this.chart.getDatasetMeta(r.datasetIndex).controller.getParsed(r.index)!==void 0);const a=this.chart.getElementsAtEventForMode(t,o.mode,o,s);return o.reverse&&a.reverse(),a}_positionChanged(t,e){const{caretX:s,caretY:n,options:o}=this,a=oe[o.position].call(this,t,e);return a!==!1&&(s!==a.x||n!==a.y)}}M(Oi,"positioners",oe);var Qc={id:"tooltip",_element:Oi,positioners:oe,afterInit(i,t,e){e&&(i.tooltip=new Oi({chart:i,options:e}))},beforeUpdate(i,t,e){i.tooltip&&i.tooltip.initialize(e)},reset(i,t,e){i.tooltip&&i.tooltip.initialize(e)},afterDraw(i){const t=i.tooltip;if(t&&t._willRender()){const e={tooltip:t};if(i.notifyPlugins("beforeTooltipDraw",{...e,cancelable:!0})===!1)return;t.draw(i.ctx),i.notifyPlugins("afterTooltipDraw",e)}},afterEvent(i,t){if(i.tooltip){const e=t.replay;i.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(i,t)=>t.bodyFont.size,boxWidth:(i,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:mo},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:i=>i!=="filter"&&i!=="itemSort"&&i!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},th=Object.freeze({__proto__:null,Colors:uc,Decimation:mc,Filler:Ic,Legend:Hc,SubTitle:Yc,Title:$c,Tooltip:Qc});const eh=(i,t,e,s)=>(typeof t=="string"?(e=i.push(t)-1,s.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function ih(i,t,e,s){const n=i.indexOf(t);if(n===-1)return eh(i,t,e,s);const o=i.lastIndexOf(t);return n!==o?e:n}const sh=(i,t)=>i===null?null:Y(Math.round(i),0,t);function dn(i){const t=this.getLabels();return i>=0&&ie.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}M(Ci,"id","category"),M(Ci,"defaults",{ticks:{callback:dn}});function nh(i,t){const e=[],{bounds:n,step:o,min:a,max:r,precision:l,count:c,maxTicks:h,maxDigits:d,includeBounds:u}=i,f=o||1,g=h-1,{min:p,max:m}=t,b=!L(a),x=!L(r),v=!L(c),y=(m-p)/(d+1);let _=ns((m-p)/g/f)*f,k,w,S,P;if(_<1e-14&&!b&&!x)return[{value:p},{value:m}];P=Math.ceil(m/_)-Math.floor(p/_),P>g&&(_=ns(P*_/g/f)*f),L(l)||(k=Math.pow(10,l),_=Math.ceil(_*k)/k),n==="ticks"?(w=Math.floor(p/_)*_,S=Math.ceil(m/_)*_):(w=p,S=m),b&&x&&o&&Jo((r-a)/o,_/1e3)?(P=Math.round(Math.min((r-a)/_,h)),_=(r-a)/P,w=a,S=r):v?(w=b?a:w,S=x?r:S,P=c-1,_=(S-w)/P):(P=(S-w)/_,le(P,Math.round(P),_/1e3)?P=Math.round(P):P=Math.ceil(P));const O=Math.max(os(_),os(w));k=Math.pow(10,L(l)?O:l),w=Math.round(w*k)/k,S=Math.round(S*k)/k;let C=0;for(b&&(u&&w!==a?(e.push({value:a}),wr)break;e.push({value:T})}return x&&u&&S!==r?e.length&&le(e[e.length-1].value,r,un(r,y,i))?e[e.length-1].value=r:e.push({value:r}):(!x||S===r)&&e.push({value:S}),e}function un(i,t,{horizontal:e,minRotation:s}){const n=nt(s),o=(e?Math.sin(n):Math.cos(n))||.001,a=.75*t*(""+i).length;return Math.min(t/o,a)}class ti extends Vt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return L(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:s}=this.getUserBounds();let{min:n,max:o}=this;const a=l=>n=e?n:l,r=l=>o=s?o:l;if(t){const l=ct(n),c=ct(o);l<0&&c<0?r(0):l>0&&c>0&&a(0)}if(n===o){let l=o===0?1:Math.abs(o*.05);r(o+l),t||a(n-l)}this.min=n,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:e,stepSize:s}=t,n;return s?(n=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e=e||11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let s=this.getTickLimit();s=Math.max(2,s);const n={maxTicks:s,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},o=this._range||this,a=nh(n,o);return t.bounds==="ticks"&&Pn(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let e=this.min,s=this.max;if(super.configure(),this.options.offset&&t.length){const n=(s-e)/Math.max(t.length-1,1)/2;e-=n,s+=n}this._startValue=e,this._endValue=s,this._valueRange=s-e}getLabelForValue(t){return ve(t,this.chart.options.locale,this.options.ticks.format)}}class Ai extends ti{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?t:0,this.max=W(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,s=nt(this.options.ticks.minRotation),n=(t?Math.sin(s):Math.cos(s))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/n))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}M(Ai,"id","linear"),M(Ai,"defaults",{ticks:{callback:ei.formatters.numeric}});const xe=i=>Math.floor(_t(i)),Tt=(i,t)=>Math.pow(10,xe(i)+t);function fn(i){return i/Math.pow(10,xe(i))===1}function gn(i,t,e){const s=Math.pow(10,e),n=Math.floor(i/s);return Math.ceil(t/s)-n}function oh(i,t){const e=t-i;let s=xe(e);for(;gn(i,t,s)>10;)s++;for(;gn(i,t,s)<10;)s--;return Math.min(s,xe(i))}function ah(i,{min:t,max:e}){t=tt(i.min,t);const s=[],n=xe(t);let o=oh(t,e),a=o<0?Math.pow(10,Math.abs(o)):1;const r=Math.pow(10,o),l=n>o?Math.pow(10,n):0,c=Math.round((t-l)*a)/a,h=Math.floor((t-l)/r/10)*r*10;let d=Math.floor((c-h)/Math.pow(10,o)),u=tt(i.min,Math.round((l+h+d*Math.pow(10,o))*a)/a);for(;u=10?d=d<15?15:20:d++,d>=20&&(o++,d=2,a=o>=0?1:a),u=Math.round((l+h+d*Math.pow(10,o))*a)/a;const f=tt(i.max,u);return s.push({value:f,major:fn(f),significand:d}),s}class Ti extends Vt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const s=ti.prototype.parse.apply(this,[t,e]);if(s===0){this._zero=!0;return}return W(s)&&s>0?s:null}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?Math.max(0,t):null,this.max=W(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!W(this._userMin)&&(this.min=t===Tt(this.min,0)?Tt(this.min,-1):Tt(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let s=this.min,n=this.max;const o=r=>s=t?s:r,a=r=>n=e?n:r;s===n&&(s<=0?(o(1),a(10)):(o(Tt(s,-1)),a(Tt(n,1)))),s<=0&&o(Tt(n,-1)),n<=0&&a(Tt(s,1)),this.min=s,this.max=n}buildTicks(){const t=this.options,e={min:this._userMin,max:this._userMax},s=ah(e,this);return t.bounds==="ticks"&&Pn(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}getLabelForValue(t){return t===void 0?"0":ve(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=_t(t),this._valueRange=_t(this.max)-_t(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(_t(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}M(Ti,"id","logarithmic"),M(Ti,"defaults",{ticks:{callback:ei.formatters.logarithmic,major:{enabled:!0}}});function Li(i){const t=i.ticks;if(t.display&&i.display){const e=G(t.backdropPadding);return D(t.font&&t.font.size,N.font.size)+e.height}return 0}function rh(i,t,e){return e=V(e)?e:[e],{w:pa(i,t.string,e),h:e.length*t.lineHeight}}function pn(i,t,e,s,n){return i===s||i===n?{start:t-e/2,end:t+e/2}:in?{start:t-e,end:t}:{start:t,end:t+e}}function lh(i){const t={l:i.left+i._padding.left,r:i.right-i._padding.right,t:i.top+i._padding.top,b:i.bottom-i._padding.bottom},e=Object.assign({},t),s=[],n=[],o=i._pointLabels.length,a=i.options.pointLabels,r=a.centerPointLabels?z/o:0;for(let l=0;lt.r&&(r=(s.end-t.r)/o,i.r=Math.max(i.r,t.r+r)),n.startt.b&&(l=(n.end-t.b)/a,i.b=Math.max(i.b,t.b+l))}function hh(i,t,e){const s=i.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=e,l=i.getPointPosition(t,s+n+a,o),c=Math.round(Bi(et(l.angle+j))),h=ph(l.y,r.h,c),d=fh(c),u=gh(l.x,r.w,d);return{visible:!0,x:l.x,y:h,textAlign:d,left:u,top:h,right:u+r.w,bottom:h+r.h}}function dh(i,t){if(!t)return!0;const{left:e,top:s,right:n,bottom:o}=i;return!(mt({x:e,y:s},t)||mt({x:e,y:o},t)||mt({x:n,y:s},t)||mt({x:n,y:o},t))}function uh(i,t,e){const s=[],n=i._pointLabels.length,o=i.options,{centerPointLabels:a,display:r}=o.pointLabels,l={extra:Li(o)/2,additionalAngle:a?z/n:0};let c;for(let h=0;h270||e<90)&&(i-=t),i}function mh(i,t,e){const{left:s,top:n,right:o,bottom:a}=e,{backdropColor:r}=t;if(!L(r)){const l=Ft(t.borderRadius),c=G(t.backdropPadding);i.fillStyle=r;const h=s-c.left,d=n-c.top,u=o-s+c.width,f=a-n+c.height;Object.values(l).some(g=>g!==0)?(i.beginPath(),me(i,{x:h,y:d,w:u,h:f,radius:l}),i.fill()):i.fillRect(h,d,u,f)}}function bh(i,t){const{ctx:e,options:{pointLabels:s}}=i;for(let n=t-1;n>=0;n--){const o=i._pointLabelItems[n];if(!o.visible)continue;const a=s.setContext(i.getPointLabelContext(n));mh(e,a,o);const r=$(a.font),{x:l,y:c,textAlign:h}=o;Bt(e,i._pointLabels[n],l,c+r.lineHeight/2,r,{color:a.color,textAlign:h,textBaseline:"middle"})}}function bo(i,t,e,s){const{ctx:n}=i;if(e)n.arc(i.xCenter,i.yCenter,t,0,I);else{let o=i.getPointPosition(0,t);n.moveTo(o.x,o.y);for(let a=1;a{const n=F(this.options.pointLabels.callback,[e,s],this);return n||n===0?n:""}).filter((e,s)=>this.chart.getDataVisibility(s))}fit(){const t=this.options;t.display&&t.pointLabels.display?lh(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,s,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((s-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,s,n))}getIndexAngle(t){const e=I/(this._pointLabels.length||1),s=this.options.startAngle||0;return et(t*e+nt(s))}getDistanceFromCenterForValue(t){if(L(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(L(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t{if(d!==0||d===0&&this.min<0){l=this.getDistanceFromCenterForValue(h.value);const u=this.getContext(d),f=n.setContext(u),g=o.setContext(u);xh(this,f,l,a,g)}}),s.display){for(t.save(),r=a-1;r>=0;r--){const h=s.setContext(this.getPointLabelContext(r)),{color:d,lineWidth:u}=h;!u||!d||(t.lineWidth=u,t.strokeStyle=d,t.setLineDash(h.borderDash),t.lineDashOffset=h.borderDashOffset,l=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),c=this.getPointPosition(r,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(c.x,c.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,s=e.ticks;if(!s.display)return;const n=this.getIndexAngle(0);let o,a;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(n),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((r,l)=>{if(l===0&&this.min>=0&&!e.reverse)return;const c=s.setContext(this.getContext(l)),h=$(c.font);if(o=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=h.string,a=t.measureText(r.label).width,t.fillStyle=c.backdropColor;const d=G(c.backdropPadding);t.fillRect(-a/2-d.left,-o-h.size/2-d.top,a+d.width,h.size+d.height)}Bt(t,r.label,0,-o,h,{color:c.color,strokeColor:c.textStrokeColor,strokeWidth:c.textStrokeWidth})}),t.restore()}drawTitle(){}}M(ae,"id","radialLinear"),M(ae,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ei.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),M(ae,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),M(ae,"descriptors",{angleLines:{_fallback:"grid"}});const oi={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},J=Object.keys(oi);function mn(i,t){return i-t}function bn(i,t){if(L(t))return null;const e=i._adapter,{parser:s,round:n,isoWeekday:o}=i._parseOpts;let a=t;return typeof s=="function"&&(a=s(a)),W(a)||(a=typeof s=="string"?e.parse(a,s):e.parse(a)),a===null?null:(n&&(a=n==="week"&&(Yt(o)||o===!0)?e.startOf(a,"isoWeek",o):e.startOf(a,n)),+a)}function xn(i,t,e,s){const n=J.length;for(let o=J.indexOf(i);o=J.indexOf(e);o--){const a=J[o];if(oi[a].common&&i._adapter.diff(n,s,a)>=t-1)return a}return J[e?J.indexOf(e):0]}function vh(i){for(let t=J.indexOf(i)+1,e=J.length;t=t?e[s]:e[n];i[o]=!0}}function Mh(i,t,e,s){const n=i._adapter,o=+n.startOf(t[0].value,s),a=t[t.length-1].value;let r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=e[r],l>=0&&(t[l].major=!0);return t}function yn(i,t,e){const s=[],n={},o=t.length;let a,r;for(a=0;a+t.value))}initOffsets(t=[]){let e=0,s=0,n,o;this.options.offset&&t.length&&(n=this.getDecimalForValue(t[0]),t.length===1?e=1-n:e=(this.getDecimalForValue(t[1])-n)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?s=o:s=(o-this.getDecimalForValue(t[t.length-2]))/2);const a=t.length<3?.5:.25;e=Y(e,0,a),s=Y(s,0,a),this._offsets={start:e,end:s,factor:1/(e+1+s)}}_generate(){const t=this._adapter,e=this.min,s=this.max,n=this.options,o=n.time,a=o.unit||xn(o.minUnit,e,s,this._getLabelCapacity(e)),r=D(n.ticks.stepSize,1),l=a==="week"?o.isoWeekday:!1,c=Yt(l)||l===!0,h={};let d=e,u,f;if(c&&(d=+t.startOf(d,"isoWeek",l)),d=+t.startOf(d,c?"day":a),t.diff(s,e,a)>1e5*r)throw new Error(e+" and "+s+" are too far apart with stepSize of "+r+" "+a);const g=n.ticks.source==="data"&&this.getDataTimestamps();for(u=d,f=0;u+p)}getLabelForValue(t){const e=this._adapter,s=this.options.time;return s.tooltipFormat?e.format(t,s.tooltipFormat):e.format(t,s.displayFormats.datetime)}format(t,e){const n=this.options.time.displayFormats,o=this._unit,a=e||n[o];return this._adapter.format(t,a)}_tickFormatFunction(t,e,s,n){const o=this.options,a=o.ticks.callback;if(a)return F(a,[t,e,s],this);const r=o.time.displayFormats,l=this._unit,c=this._majorUnit,h=l&&r[l],d=c&&r[c],u=s[e],f=c&&d&&u&&u.major;return this._adapter.format(t,n||(f?d:h))}generateTickLabels(t){let e,s,n;for(e=0,s=t.length;e0?r:1}getDataTimestamps(){let t=this._cache.data||[],e,s;if(t.length)return t;const n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(e=0,s=n.length;e=i[s].pos&&t<=i[n].pos&&({lo:s,hi:n}=pt(i,"pos",t)),{pos:o,time:r}=i[s],{pos:a,time:l}=i[n]):(t>=i[s].time&&t<=i[n].time&&({lo:s,hi:n}=pt(i,"time",t)),{time:o,pos:r}=i[s],{time:a,pos:l}=i[n]);const c=a-o;return c?r+(l-r)*(t-o)/c:r}class Ri extends _e{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=ze(e,this.min),this._tableRange=ze(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:s}=this,n=[],o=[];let a,r,l,c,h;for(a=0,r=t.length;a=e&&c<=s&&n.push(c);if(n.length<2)return[{time:e,pos:0},{time:s,pos:1}];for(a=0,r=n.length;an-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),s=this.getLabelTimestamps();return e.length&&s.length?t=this.normalize(e.concat(s)):t=e.length?e:s,t=this._cache.all=t,t}getDecimalForValue(t){return(ze(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,s=this.getDecimalForPixel(t)/e.factor-e.end;return ze(this._table,s*this._tableRange+this._minPos,!0)}}M(Ri,"id","timeseries"),M(Ri,"defaults",_e.defaults);var kh=Object.freeze({__proto__:null,CategoryScale:Ci,LinearScale:Ai,LogarithmicScale:Ti,RadialLinearScale:ae,TimeScale:_e,TimeSeriesScale:Ri});const wh=[Ar,ac,th,kh];bt.register(...wh);export{rr as Animation,Kn as Animations,ne as ArcElement,Be as BarController,Xe as BarElement,Qn as BasePlatform,$r as BasicPlatform,Ve as BubbleController,Ci as CategoryScale,bt as Chart,uc as Colors,ot as DatasetController,mc as Decimation,il as DomPlatform,Et as DoughnutController,at as Element,Ic as Filler,Ir as Interaction,Hc as Legend,We as LineController,yt as LineElement,Ai as LinearScale,Ti as LogarithmicScale,Mi as PieController,Ye as PointElement,de as PolarAreaController,Ne as RadarController,ae as RadialLinearScale,Vt as Scale,He as ScatterController,Yc as SubTitle,ei as Ticks,_e as TimeScale,Ri as TimeSeriesScale,$c as Title,Qc as Tooltip,Tr as _adapters,sl as _detectPlatform,dt as animator,Ar as controllers,bt as default,N as defaults,ac as elements,q as layouts,th as plugins,wh as registerables,lt as registry,kh as scales}; diff --git a/assets/blockDiagram-9f4a6865-CCynznDb.js b/assets/blockDiagram-9f4a6865-CCynznDb.js new file mode 100644 index 00000000..fb70700b --- /dev/null +++ b/assets/blockDiagram-9f4a6865-CCynznDb.js @@ -0,0 +1,118 @@ +import{c as he,a$ as se,h as H,i as Ee,l as S,E as ye,B as we,j as De,o as ve}from"./mermaid.core-Bc1j4tiv.js";import{c as Ne}from"./clone-CH2yQtrO.js";import{i as ke,c as Ie,b as Oe,d as Te,a as ge,p as ze}from"./edges-066a5561-CYMTSPpJ.js";import{G as Ce}from"./graph-DkiqFSuU.js";import{o as Ae}from"./ordinal-Cboi1Yqb.js";import{c as Re}from"./channel-BQsRZjn0.js";import{s as Be}from"./Tableau10-B-NsZVaP.js";import"./app-Ca-A-iaw.js";import"./createText-ca0c5216-bYdpW0Zp.js";import"./line-DS2p6aKt.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./init-Gi6I4Gst.js";var le,oe,ee=function(){var e=function(D,o,s,i){for(s=s||{},i=D.length;i--;s[D[i]]=o);return s},a=[1,7],d=[1,13],c=[1,14],n=[1,15],g=[1,19],l=[1,16],f=[1,17],b=[1,18],p=[8,30],x=[8,21,28,29,30,31,32,40,44,47],E=[1,23],T=[1,24],v=[8,15,16,21,28,29,30,31,32,40,44,47],N=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],L={trace:function(){},yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:function(o,s,i,u,h,t,m){var r=t.length-1;switch(h){case 4:u.getLogger().debug("Rule: separator (NL) ");break;case 5:u.getLogger().debug("Rule: separator (Space) ");break;case 6:u.getLogger().debug("Rule: separator (EOF) ");break;case 7:u.getLogger().debug("Rule: hierarchy: ",t[r-1]),u.setHierarchy(t[r-1]);break;case 8:u.getLogger().debug("Stop NL ");break;case 9:u.getLogger().debug("Stop EOF ");break;case 10:u.getLogger().debug("Stop NL2 ");break;case 11:u.getLogger().debug("Stop EOF2 ");break;case 12:u.getLogger().debug("Rule: statement: ",t[r]),typeof t[r].length=="number"?this.$=t[r]:this.$=[t[r]];break;case 13:u.getLogger().debug("Rule: statement #2: ",t[r-1]),this.$=[t[r-1]].concat(t[r]);break;case 14:u.getLogger().debug("Rule: link: ",t[r],o),this.$={edgeTypeStr:t[r],label:""};break;case 15:u.getLogger().debug("Rule: LABEL link: ",t[r-3],t[r-1],t[r]),this.$={edgeTypeStr:t[r],label:t[r-1]};break;case 18:const R=parseInt(t[r]),Y=u.generateId();this.$={id:Y,type:"space",label:"",width:R,children:[]};break;case 23:u.getLogger().debug("Rule: (nodeStatement link node) ",t[r-2],t[r-1],t[r]," typestr: ",t[r-1].edgeTypeStr);const F=u.edgeStrToEdgeData(t[r-1].edgeTypeStr);this.$=[{id:t[r-2].id,label:t[r-2].label,type:t[r-2].type,directions:t[r-2].directions},{id:t[r-2].id+"-"+t[r].id,start:t[r-2].id,end:t[r].id,label:t[r-1].label,type:"edge",directions:t[r].directions,arrowTypeEnd:F,arrowTypeStart:"arrow_open"},{id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions}];break;case 24:u.getLogger().debug("Rule: nodeStatement (abc88 node size) ",t[r-1],t[r]),this.$={id:t[r-1].id,label:t[r-1].label,type:u.typeStr2Type(t[r-1].typeStr),directions:t[r-1].directions,widthInColumns:parseInt(t[r],10)};break;case 25:u.getLogger().debug("Rule: nodeStatement (node) ",t[r]),this.$={id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions,widthInColumns:1};break;case 26:u.getLogger().debug("APA123",this?this:"na"),u.getLogger().debug("COLUMNS: ",t[r]),this.$={type:"column-setting",columns:t[r]==="auto"?-1:parseInt(t[r])};break;case 27:u.getLogger().debug("Rule: id-block statement : ",t[r-2],t[r-1]),u.generateId(),this.$={...t[r-2],type:"composite",children:t[r-1]};break;case 28:u.getLogger().debug("Rule: blockStatement : ",t[r-2],t[r-1],t[r]);const C=u.generateId();this.$={id:C,type:"composite",label:"",children:t[r-1]};break;case 29:u.getLogger().debug("Rule: node (NODE_ID separator): ",t[r]),this.$={id:t[r]};break;case 30:u.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",t[r-1],t[r]),this.$={id:t[r-1],label:t[r].label,typeStr:t[r].typeStr,directions:t[r].directions};break;case 31:u.getLogger().debug("Rule: dirList: ",t[r]),this.$=[t[r]];break;case 32:u.getLogger().debug("Rule: dirList: ",t[r-1],t[r]),this.$=[t[r-1]].concat(t[r]);break;case 33:u.getLogger().debug("Rule: nodeShapeNLabel: ",t[r-2],t[r-1],t[r]),this.$={typeStr:t[r-2]+t[r],label:t[r-1]};break;case 34:u.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",t[r-3],t[r-2]," #3:",t[r-1],t[r]),this.$={typeStr:t[r-3]+t[r],label:t[r-2],directions:t[r-1]};break;case 35:case 36:this.$={type:"classDef",id:t[r-1].trim(),css:t[r].trim()};break;case 37:this.$={type:"applyClass",id:t[r-1].trim(),styleClass:t[r].trim()};break;case 38:this.$={type:"applyStyles",id:t[r-1].trim(),stylesStr:t[r].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{8:[1,20]},e(p,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:a,28:d,29:c,31:n,32:g,40:l,44:f,47:b}),e(x,[2,16],{14:22,15:E,16:T}),e(x,[2,17]),e(x,[2,18]),e(x,[2,19]),e(x,[2,20]),e(x,[2,21]),e(x,[2,22]),e(v,[2,25],{27:[1,25]}),e(x,[2,26]),{19:26,26:12,32:g},{11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(N,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(p,[2,13]),{26:35,32:g},{32:[2,14]},{17:[1,36]},e(v,[2,24]),{11:37,13:4,14:22,15:E,16:T,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(N,[2,30]),{18:[1,43]},{18:[1,44]},e(v,[2,23]),{18:[1,45]},{30:[1,46]},e(x,[2,28]),e(x,[2,35]),e(x,[2,36]),e(x,[2,37]),e(x,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},e(x,[2,27]),e(N,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},e(N,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(o,s){if(s.recoverable)this.trace(o);else{var i=new Error(o);throw i.hash=s,i}},parse:function(o){var s=this,i=[0],u=[],h=[null],t=[],m=this.table,r="",R=0,Y=0,F=2,C=1,Le=t.slice.call(arguments,1),w=Object.create(this.lexer),K={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(K.yy[Z]=this.yy[Z]);w.setInput(o,K.yy),K.yy.lexer=w,K.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var J=w.yylloc;t.push(J);var me=w.options&&w.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(){var P;return P=u.pop()||w.lex()||C,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}for(var I,M,z,Q,W={},X,B,ae,G;;){if(M=i[i.length-1],this.defaultActions[M]?z=this.defaultActions[M]:((I===null||typeof I>"u")&&(I=_e()),z=m[M]&&m[M][I]),typeof z>"u"||!z.length||!z[0]){var $="";G=[];for(X in m[M])this.terminals_[X]&&X>F&&G.push("'"+this.terminals_[X]+"'");w.showPosition?$="Parse error on line "+(R+1)+`: +`+w.showPosition()+` +Expecting `+G.join(", ")+", got '"+(this.terminals_[I]||I)+"'":$="Parse error on line "+(R+1)+": Unexpected "+(I==C?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError($,{text:w.match,token:this.terminals_[I]||I,line:w.yylineno,loc:J,expected:G})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+I);switch(z[0]){case 1:i.push(I),h.push(w.yytext),t.push(w.yylloc),i.push(z[1]),I=null,Y=w.yyleng,r=w.yytext,R=w.yylineno,J=w.yylloc;break;case 2:if(B=this.productions_[z[1]][1],W.$=h[h.length-B],W._$={first_line:t[t.length-(B||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(B||1)].first_column,last_column:t[t.length-1].last_column},me&&(W._$.range=[t[t.length-(B||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(W,[r,Y,R,K.yy,z[1],h,t].concat(Le)),typeof Q<"u")return Q;B&&(i=i.slice(0,-1*B*2),h=h.slice(0,-1*B),t=t.slice(0,-1*B)),i.push(this.productions_[z[1]][0]),h.push(W.$),t.push(W._$),ae=m[i[i.length-2]][i[i.length-1]],i.push(ae);break;case 3:return!0}}return!0}},A=function(){var D={EOF:1,parseError:function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},setInput:function(o,s){return this.yy=s||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var s=o.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var s=o.length,i=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var h=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[h[0],h[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),s=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+s+"^"},test_match:function(o,s){var i,u,h;if(this.options.backtrack_lexer&&(h={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(h.yylloc.range=this.yylloc.range.slice(0))),u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],i=this.performAction.call(this,this.yy,this,s,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var t in h)this[t]=h[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,s,i,u;this._more||(this.yytext="",this.match="");for(var h=this._currentRules(),t=0;ts[0].length)){if(s=i,u=t,this.options.backtrack_lexer){if(o=this.test_match(i,h[t]),o!==!1)return o;if(this._backtrack){s=!1;continue}else return!1}else if(!this.options.flex)break}return s?(o=this.test_match(s,h[u]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var s=this.next();return s||this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){var s=this.conditionStack.length-1;return s>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(s){return s=this.conditionStack.length-1-Math.abs(s||0),s>=0?this.conditionStack[s]:"INITIAL"},pushState:function(s){this.begin(s)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(s,i,u,h){switch(u){case 0:return 10;case 1:return s.getLogger().debug("Found space-block"),31;case 2:return s.getLogger().debug("Found nl-block"),31;case 3:return s.getLogger().debug("Found space-block"),29;case 4:s.getLogger().debug(".",i.yytext);break;case 5:s.getLogger().debug("_",i.yytext);break;case 6:return 5;case 7:return i.yytext=-1,28;case 8:return i.yytext=i.yytext.replace(/columns\s+/,""),s.getLogger().debug("COLUMNS (LEX)",i.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:s.getLogger().debug("LEX: POPPING STR:",i.yytext),this.popState();break;case 14:return s.getLogger().debug("LEX: STR end:",i.yytext),"STR";case 15:return i.yytext=i.yytext.replace(/space\:/,""),s.getLogger().debug("SPACE NUM (LEX)",i.yytext),21;case 16:return i.yytext="1",s.getLogger().debug("COLUMNS (LEX)",i.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),s.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),s.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),s.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),s.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),s.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),s.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),s.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),s.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),s.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),s.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return s.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return s.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return s.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return s.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return s.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return s.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return s.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),s.getLogger().debug("LEX ARR START"),38;case 75:return s.getLogger().debug("Lex: NODE_ID",i.yytext),32;case 76:return s.getLogger().debug("Lex: EOF",i.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:s.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:s.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return s.getLogger().debug("LEX: NODE_DESCR:",i.yytext),"NODE_DESCR";case 84:s.getLogger().debug("LEX POPPING"),this.popState();break;case 85:s.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (right): dir:",i.yytext),"DIR";case 87:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (left):",i.yytext),"DIR";case 88:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (x):",i.yytext),"DIR";case 89:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (y):",i.yytext),"DIR";case 90:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (up):",i.yytext),"DIR";case 91:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (down):",i.yytext),"DIR";case 92:return i.yytext="]>",s.getLogger().debug("Lex (ARROW_DIR end):",i.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 94:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 95:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 96:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 97:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 98:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 99:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return s.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 103:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 104:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 105:return s.getLogger().debug("Lex: COLON",i.yytext),i.yytext=i.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return D}();L.lexer=A;function k(){this.yy={}}return k.prototype=L,L.Parser=k,new k}();ee.parser=ee;const Pe=ee;let O={},ie=[],j={};const ce="color",ue="fill",Fe="bgFill",pe=",",Ke=he();let V={};const Me=e=>De.sanitizeText(e,Ke),Ye=function(e,a=""){V[e]===void 0&&(V[e]={id:e,styles:[],textStyles:[]});const d=V[e];a!=null&&a.split(pe).forEach(c=>{const n=c.replace(/([^;]*);/,"$1").trim();if(c.match(ce)){const l=n.replace(ue,Fe).replace(ce,ue);d.textStyles.push(l)}d.styles.push(n)})},We=function(e,a=""){const d=O[e];a!=null&&(d.styles=a.split(pe))},je=function(e,a){e.split(",").forEach(function(d){let c=O[d];if(c===void 0){const n=d.trim();O[n]={id:n,type:"na",children:[]},c=O[n]}c.classes||(c.classes=[]),c.classes.push(a)})},fe=(e,a)=>{const d=e.flat(),c=[];for(const n of d){if(n.label&&(n.label=Me(n.label)),n.type==="classDef"){Ye(n.id,n.css);continue}if(n.type==="applyClass"){je(n.id,(n==null?void 0:n.styleClass)||"");continue}if(n.type==="applyStyles"){n!=null&&n.stylesStr&&We(n.id,n==null?void 0:n.stylesStr);continue}if(n.type==="column-setting")a.columns=n.columns||-1;else if(n.type==="edge")j[n.id]?j[n.id]++:j[n.id]=1,n.id=j[n.id]+"-"+n.id,ie.push(n);else{n.label||(n.type==="composite"?n.label="":n.label=n.id);const g=!O[n.id];if(g?O[n.id]=n:(n.type!=="na"&&(O[n.id].type=n.type),n.label!==n.id&&(O[n.id].label=n.label)),n.children&&fe(n.children,n),n.type==="space"){const l=n.width||1;for(let f=0;f{S.debug("Clear called"),ye(),U={id:"root",type:"composite",children:[],columns:-1},O={root:U},re=[],V={},ie=[],j={}};function Ue(e){switch(S.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return S.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Xe(e){switch(S.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}function Ge(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let de=0;const He=()=>(de++,"id-"+Math.random().toString(36).substr(2,12)+"-"+de),qe=e=>{U.children=e,fe(e,U),re=U.children},Ze=e=>{const a=O[e];return a?a.columns?a.columns:a.children?a.children.length:-1:-1},Je=()=>[...Object.values(O)],Qe=()=>re||[],$e=()=>ie,et=e=>O[e],tt=e=>{O[e.id]=e},st=()=>console,it=function(){return V},rt={getConfig:()=>se().block,typeStr2Type:Ue,edgeTypeStr2Type:Xe,edgeStrToEdgeData:Ge,getLogger:st,getBlocksFlat:Je,getBlocks:Qe,getEdges:$e,setHierarchy:qe,getBlock:et,setBlock:tt,getColumns:Ze,getClasses:it,clear:Ve,generateId:He},nt=rt,q=(e,a)=>{const d=Re,c=d(e,"r"),n=d(e,"g"),g=d(e,"b");return we(c,n,g,a)},at=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${q(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${q(e.mainBkg,.5)}; + fill: ${q(e.clusterBkg,.5)}; + stroke: ${q(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,lt=at;function be(e,a,d=!1){var c,n,g;const l=e;let f="default";(((c=l==null?void 0:l.classes)==null?void 0:c.length)||0)>0&&(f=((l==null?void 0:l.classes)||[]).join(" ")),f=f+" flowchart-label";let b=0,p="",x;switch(l.type){case"round":b=5,p="rect";break;case"composite":b=0,p="composite",x=0;break;case"square":p="rect";break;case"diamond":p="question";break;case"hexagon":p="hexagon";break;case"block_arrow":p="block_arrow";break;case"odd":p="rect_left_inv_arrow";break;case"lean_right":p="lean_right";break;case"lean_left":p="lean_left";break;case"trapezoid":p="trapezoid";break;case"inv_trapezoid":p="inv_trapezoid";break;case"rect_left_inv_arrow":p="rect_left_inv_arrow";break;case"circle":p="circle";break;case"ellipse":p="ellipse";break;case"stadium":p="stadium";break;case"subroutine":p="subroutine";break;case"cylinder":p="cylinder";break;case"group":p="rect";break;case"doublecircle":p="doublecircle";break;default:p="rect"}const E=ve((l==null?void 0:l.styles)||[]),T=l.label,v=l.size||{width:0,height:0,x:0,y:0};return{labelStyle:E.labelStyle,shape:p,labelText:T,rx:b,ry:b,class:f,style:E.style,id:l.id,directions:l.directions,width:v.width,height:v.height,x:v.x,y:v.y,positioned:d,intersect:void 0,type:l.type,padding:x??(((g=(n=se())==null?void 0:n.block)==null?void 0:g.padding)||0)}}async function ot(e,a,d){const c=be(a,d,!1);if(c.type==="group")return;const n=await ge(e,c),g=n.node().getBBox(),l=d.getBlock(c.id);l.size={width:g.width,height:g.height,x:0,y:0,node:n},d.setBlock(l),n.remove()}async function ct(e,a,d){const c=be(a,d,!0);d.getBlock(c.id).type!=="space"&&(await ge(e,c),a.intersect=c==null?void 0:c.intersect,ze(c))}async function ne(e,a,d,c){for(const n of a)await c(e,n,d),n.children&&await ne(e,n.children,d,c)}async function ut(e,a,d){await ne(e,a,d,ot)}async function dt(e,a,d){await ne(e,a,d,ct)}async function ht(e,a,d,c,n){const g=new Ce({multigraph:!0,compound:!0});g.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const l of d)l.size&&g.setNode(l.id,{width:l.size.width,height:l.size.height,intersect:l.intersect});for(const l of a)if(l.start&&l.end){const f=c.getBlock(l.start),b=c.getBlock(l.end);if(f!=null&&f.size&&(b!=null&&b.size)){const p=f.size,x=b.size,E=[{x:p.x,y:p.y},{x:p.x+(x.x-p.x)/2,y:p.y+(x.y-p.y)/2},{x:x.x,y:x.y}];await Ie(e,{v:l.start,w:l.end,name:l.id},{...l,arrowTypeEnd:l.arrowTypeEnd,arrowTypeStart:l.arrowTypeStart,points:E,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",g,n),l.label&&(await Oe(e,{...l,label:l.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:l.arrowTypeEnd,arrowTypeStart:l.arrowTypeStart,points:E,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await Te({...l,x:E[1].x,y:E[1].y},{originalPath:E}))}}}const _=((oe=(le=he())==null?void 0:le.block)==null?void 0:oe.padding)||8;function gt(e,a){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(a<0||!Number.isInteger(a))throw new Error("Position must be a non-negative integer."+a);if(e<0)return{px:a,py:0};if(e===1)return{px:0,py:a};const d=a%e,c=Math.floor(a/e);return{px:d,py:c}}const pt=e=>{let a=0,d=0;for(const c of e.children){const{width:n,height:g,x:l,y:f}=c.size||{width:0,height:0,x:0,y:0};S.debug("getMaxChildSize abc95 child:",c.id,"width:",n,"height:",g,"x:",l,"y:",f,c.type),c.type!=="space"&&(n>a&&(a=n/(e.widthInColumns||1)),g>d&&(d=g))}return{width:a,height:d}};function te(e,a,d=0,c=0){var n,g,l,f,b,p,x,E,T,v,N;S.debug("setBlockSizes abc95 (start)",e.id,(n=e==null?void 0:e.size)==null?void 0:n.x,"block width =",e==null?void 0:e.size,"sieblingWidth",d),(g=e==null?void 0:e.size)!=null&&g.width||(e.size={width:d,height:c,x:0,y:0});let y=0,L=0;if(((l=e.children)==null?void 0:l.length)>0){for(const h of e.children)te(h,a);const A=pt(e);y=A.width,L=A.height,S.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",y,L);for(const h of e.children)h.size&&(S.debug(`abc95 Setting size of children of ${e.id} id=${h.id} ${y} ${L} ${h.size}`),h.size.width=y*(h.widthInColumns||1)+_*((h.widthInColumns||1)-1),h.size.height=L,h.size.x=0,h.size.y=0,S.debug(`abc95 updating size of ${e.id} children child:${h.id} maxWidth:${y} maxHeight:${L}`));for(const h of e.children)te(h,a,y,L);const k=e.columns||-1;let D=0;for(const h of e.children)D+=h.widthInColumns||1;let o=e.children.length;k>0&&k0?Math.min(e.children.length,k):e.children.length;if(h>0){const t=(i-h*_-_)/h;S.debug("abc95 (growing to fit) width",e.id,i,(x=e.size)==null?void 0:x.width,t);for(const m of e.children)m.size&&(m.size.width=t)}}e.size={width:i,height:u,x:0,y:0}}S.debug("setBlockSizes abc94 (done)",e.id,(E=e==null?void 0:e.size)==null?void 0:E.x,(T=e==null?void 0:e.size)==null?void 0:T.width,(v=e==null?void 0:e.size)==null?void 0:v.y,(N=e==null?void 0:e.size)==null?void 0:N.height)}function xe(e,a){var d,c,n,g,l,f,b,p,x,E,T,v,N,y,L,A,k;S.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(d=e==null?void 0:e.size)==null?void 0:d.x} y: ${(c=e==null?void 0:e.size)==null?void 0:c.y} width: ${(n=e==null?void 0:e.size)==null?void 0:n.width}`);const D=e.columns||-1;if(S.debug("layoutBlocks columns abc95",e.id,"=>",D,e),e.children&&e.children.length>0){const o=((l=(g=e==null?void 0:e.children[0])==null?void 0:g.size)==null?void 0:l.width)||0,s=e.children.length*o+(e.children.length-1)*_;S.debug("widthOfChildren 88",s,"posX");let i=0;S.debug("abc91 block?.size?.x",e.id,(f=e==null?void 0:e.size)==null?void 0:f.x);let u=(b=e==null?void 0:e.size)!=null&&b.x?((p=e==null?void 0:e.size)==null?void 0:p.x)+(-((x=e==null?void 0:e.size)==null?void 0:x.width)/2||0):-_,h=0;for(const t of e.children){const m=e;if(!t.size)continue;const{width:r,height:R}=t.size,{px:Y,py:F}=gt(D,i);if(F!=h&&(h=F,u=(E=e==null?void 0:e.size)!=null&&E.x?((T=e==null?void 0:e.size)==null?void 0:T.x)+(-((v=e==null?void 0:e.size)==null?void 0:v.width)/2||0):-_,S.debug("New row in layout for block",e.id," and child ",t.id,h)),S.debug(`abc89 layout blocks (child) id: ${t.id} Pos: ${i} (px, py) ${Y},${F} (${(N=m==null?void 0:m.size)==null?void 0:N.x},${(y=m==null?void 0:m.size)==null?void 0:y.y}) parent: ${m.id} width: ${r}${_}`),m.size){const C=r/2;t.size.x=u+_+C,S.debug(`abc91 layout blocks (calc) px, pyid:${t.id} startingPos=X${u} new startingPosX${t.size.x} ${C} padding=${_} width=${r} halfWidth=${C} => x:${t.size.x} y:${t.size.y} ${t.widthInColumns} (width * (child?.w || 1)) / 2 ${r*((t==null?void 0:t.widthInColumns)||1)/2}`),u=t.size.x+C,t.size.y=m.size.y-m.size.height/2+F*(R+_)+R/2+_,S.debug(`abc88 layout blocks (calc) px, pyid:${t.id}startingPosX${u}${_}${C}=>x:${t.size.x}y:${t.size.y}${t.widthInColumns}(width * (child?.w || 1)) / 2${r*((t==null?void 0:t.widthInColumns)||1)/2}`)}t.children&&xe(t),i+=(t==null?void 0:t.widthInColumns)||1,S.debug("abc88 columnsPos",t,i)}}S.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(L=e==null?void 0:e.size)==null?void 0:L.x} y: ${(A=e==null?void 0:e.size)==null?void 0:A.y} width: ${(k=e==null?void 0:e.size)==null?void 0:k.width}`)}function Se(e,{minX:a,minY:d,maxX:c,maxY:n}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:g,y:l,width:f,height:b}=e.size;g-f/2c&&(c=g+f/2),l+b/2>n&&(n=l+b/2)}if(e.children)for(const g of e.children)({minX:a,minY:d,maxX:c,maxY:n}=Se(g,{minX:a,minY:d,maxX:c,maxY:n}));return{minX:a,minY:d,maxX:c,maxY:n}}function ft(e){const a=e.getBlock("root");if(!a)return;te(a,e,0,0),xe(a),S.debug("getBlocks",JSON.stringify(a,null,2));const{minX:d,minY:c,maxX:n,maxY:g}=Se(a),l=g-c,f=n-d;return{x:d,y:c,width:f,height:l}}const bt=function(e,a){return a.db.getClasses()},xt=async function(e,a,d,c){const{securityLevel:n,block:g}=se(),l=c.db;let f;n==="sandbox"&&(f=H("#i"+a));const b=n==="sandbox"?H(f.nodes()[0].contentDocument.body):H("body"),p=n==="sandbox"?b.select(`[id="${a}"]`):H(`[id="${a}"]`);ke(p,["point","circle","cross"],c.type,a);const E=l.getBlocks(),T=l.getBlocksFlat(),v=l.getEdges(),N=p.insert("g").attr("class","block");await ut(N,E,l);const y=ft(l);if(await dt(N,E,l),await ht(N,v,T,l,a),y){const L=y,A=Math.max(1,Math.round(.125*(L.width/L.height))),k=L.height+A+10,D=L.width+10,{useMaxWidth:o}=g;Ee(p,k,D,!!o),S.debug("Here Bounds",y,L),p.attr("viewBox",`${L.x-5} ${L.y-5} ${L.width+10} ${L.height+10}`)}Ae(Be)},St={draw:xt,getClasses:bt},zt={parser:Pe,db:nt,renderer:St,styles:lt};export{zt as diagram}; diff --git a/assets/c4Diagram-ae766693-Cwq3C8UU.js b/assets/c4Diagram-ae766693-Cwq3C8UU.js new file mode 100644 index 00000000..b86b0d6f --- /dev/null +++ b/assets/c4Diagram-ae766693-Cwq3C8UU.js @@ -0,0 +1,10 @@ +import{s as we,g as Oe,a as Te,b as Re,c as Dt,d as ue,e as De,f as wt,h as Nt,l as le,i as Se,w as Pe,j as Kt,k as oe,m as Me}from"./mermaid.core-Bc1j4tiv.js";import{d as Le,g as Ne}from"./svgDrawCommon-5e1cfd1d-B4aG73a4.js";import"./app-Ca-A-iaw.js";var Yt=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],L=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],At=[14,42],Vt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ot=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],ne=[12,14,33,42],Pt=[12,14,33,42,76,77,79,80],mt=[12,33],zt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Tt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(At,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(At,[2,14]),e(Vt,[2,16],{12:[1,76]}),e(At,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(At,[2,15]),e(Vt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(At,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ot,[2,21]),e(Ot,[2,22]),e(w,[2,39]),e(ne,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Pt,[2,73]),{78:[1,133]},e(Pt,[2,75]),e(Pt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Vt,[2,18]),e(At,[2,38]),e(ne,[2,72]),e(Pt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(zt,[2,25]),e(zt,[2,26],{12:[1,138]}),e(zt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Tt=this.table,y="",Et=0,se=0,ve=2,ae=1,ke=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var Qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qt)&&(vt.yy[Qt]=this.yy[Qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Ht=D.yylloc;u.push(Ht);var Ae=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ce(){var X;return X=g.pop()||D.lex()||ae,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,N,qt,Ct={},Mt,z,re,Lt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ce()),N=Tt[kt]&&Tt[kt][M]),typeof N>"u"||!N.length||!N[0]){var Gt="";Lt=[];for(Mt in Tt[kt])this.terminals_[Mt]&&Mt>ve&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Gt="Parse error on line "+(Et+1)+`: +`+D.showPosition()+` +Expecting `+Lt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Gt="Parse error on line "+(Et+1)+": Unexpected "+(M==ae?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(Gt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:Ht,expected:Lt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+M);switch(N[0]){case 1:m.push(M),T.push(D.yytext),u.push(D.yylloc),m.push(N[1]),M=null,se=D.yyleng,y=D.yytext,Et=D.yylineno,Ht=D.yylloc;break;case 2:if(z=this.productions_[N[1]][1],Ct.$=T[T.length-z],Ct._$={first_line:u[u.length-(z||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(z||1)].first_column,last_column:u[u.length-1].last_column},Ae&&(Ct._$.range=[u[u.length-(z||1)].range[0],u[u.length-1].range[1]]),qt=this.performAction.apply(Ct,[y,se,Et,vt.yy,N[1],T,u].concat(ke)),typeof qt<"u")return qt;z&&(m=m.slice(0,-1*z*2),T=T.slice(0,-1*z),u=u.slice(0,-1*z)),m.push(this.productions_[N[1]][0]),T.push(Ct.$),u.push(Ct._$),re=Tt[m[m.length-2]][m[m.length-1]],m.push(re);break;case 3:return!0}}return!0}},Ee=function(){var bt={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` +`+x+"^"},test_match:function(_,x){var m,g,T;if(this.options.backtrack_lexer&&(T={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(T.yylloc.range=this.yylloc.range.slice(0))),g=_[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],m=this.performAction.call(this,this.yy,this,x,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var u in T)this[u]=T[u];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,x,m,g;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),u=0;ux[0].length)){if(x=m,g=u,this.options.backtrack_lexer){if(_=this.test_match(m,T[u]),_!==!1)return _;if(this._backtrack){x=!1;continue}else return!1}else if(!this.options.flex)break}return x?(_=this.test_match(x,T[g]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var x=this.next();return x||this.lex()},begin:function(x){this.conditionStack.push(x)},popState:function(){var x=this.conditionStack.length-1;return x>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(x){return x=this.conditionStack.length-1-Math.abs(x||0),x>=0?this.conditionStack[x]:"INITIAL"},pushState:function(x){this.begin(x)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(x,m,g,T){switch(g){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return bt}();Xt.lexer=Ee;function Wt(){this.yy={}}return Wt.prototype=Xt,Xt.Parser=Wt,new Wt}();Yt.parser=Yt;const Be=Yt;let U=[],_t=[""],P="global",j="",V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],St=[],te="",ee=!1,It=4,jt=2;var de;const Ye=function(){return de},Ie=function(e){de=ue(e,Dt())},je=function(e,t,a,o,l,i,s,r,n){if(e==null||t===void 0||t===null||a===void 0||a===null||o===void 0||o===null)return;let h={};const f=St.find(d=>d.from===t&&d.to===a);if(f?h=f:St.push(h),h.type=e,h.from=t,h.to=a,h.label={text:o},l==null)h.techn={text:""};else if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]={text:p}}else h.techn={text:l};if(i==null)h.descr={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.descr={text:i};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof r=="object"){let[d,p]=Object.entries(r)[0];h[d]=p}else h.tags=r;if(typeof n=="object"){let[d,p]=Object.entries(n)[0];h[d]=p}else h.link=n;h.wrap=xt()},Ue=function(e,t,a,o,l,i,s){if(t===null||a===null)return;let r={};const n=U.find(h=>h.alias===t);if(n&&t===n.alias?r=n:(r.alias=t,U.push(r)),a==null?r.label={text:""}:r.label={text:a},o==null)r.descr={text:""};else if(typeof o=="object"){let[h,f]=Object.entries(o)[0];r[h]={text:f}}else r.descr={text:o};if(typeof l=="object"){let[h,f]=Object.entries(l)[0];r[h]=f}else r.sprite=l;if(typeof i=="object"){let[h,f]=Object.entries(i)[0];r[h]=f}else r.tags=i;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];r[h]=f}else r.link=s;r.typeC4Shape={text:e},r.parentBoundary=P,r.wrap=xt()},Fe=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},Ve=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},ze=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"system"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},Xe=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"container"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},We=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=V.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,V.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.type={text:"node"};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.type={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.nodeType=e,n.parentBoundary=P,n.wrap=xt(),j=P,P=t,_t.push(j)},Qe=function(){P=j,_t.pop(),j=_t.pop(),_t.push(j)},He=function(e,t,a,o,l,i,s,r,n,h,f){let d=U.find(p=>p.alias===t);if(!(d===void 0&&(d=V.find(p=>p.alias===t),d===void 0))){if(a!=null)if(typeof a=="object"){let[p,E]=Object.entries(a)[0];d[p]=E}else d.bgColor=a;if(o!=null)if(typeof o=="object"){let[p,E]=Object.entries(o)[0];d[p]=E}else d.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,E]=Object.entries(l)[0];d[p]=E}else d.borderColor=l;if(i!=null)if(typeof i=="object"){let[p,E]=Object.entries(i)[0];d[p]=E}else d.shadowing=i;if(s!=null)if(typeof s=="object"){let[p,E]=Object.entries(s)[0];d[p]=E}else d.shape=s;if(r!=null)if(typeof r=="object"){let[p,E]=Object.entries(r)[0];d[p]=E}else d.sprite=r;if(n!=null)if(typeof n=="object"){let[p,E]=Object.entries(n)[0];d[p]=E}else d.techn=n;if(h!=null)if(typeof h=="object"){let[p,E]=Object.entries(h)[0];d[p]=E}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,E]=Object.entries(f)[0];d[p]=E}else d.legendSprite=f}},qe=function(e,t,a,o,l,i,s){const r=St.find(n=>n.from===t&&n.to===a);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[n,h]=Object.entries(o)[0];r[n]=h}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[n,h]=Object.entries(l)[0];r[n]=h}else r.lineColor=l;if(i!=null)if(typeof i=="object"){let[n,h]=Object.entries(i)[0];r[n]=parseInt(h)}else r.offsetX=parseInt(i);if(s!=null)if(typeof s=="object"){let[n,h]=Object.entries(s)[0];r[n]=parseInt(h)}else r.offsetY=parseInt(s)}},Ge=function(e,t,a){let o=It,l=jt;if(typeof t=="object"){const i=Object.values(t)[0];o=parseInt(i)}else o=parseInt(t);if(typeof a=="object"){const i=Object.values(a)[0];l=parseInt(i)}else l=parseInt(a);o>=1&&(It=o),l>=1&&(jt=l)},Ke=function(){return It},Je=function(){return jt},Ze=function(){return P},$e=function(){return j},fe=function(e){return e==null?U:U.filter(t=>t.parentBoundary===e)},t0=function(e){return U.find(t=>t.alias===e)},e0=function(e){return Object.keys(fe(e))},pe=function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},i0=pe,n0=function(){return St},s0=function(){return te},a0=function(e){ee=e},xt=function(){return ee},r0=function(){U=[],V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],j="",P="global",_t=[""],St=[],_t=[""],te="",ee=!1,It=4,jt=2},l0={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},o0={FILLED:0,OPEN:1},c0={LEFTOF:0,RIGHTOF:1,OVER:2},h0=function(e){te=ue(e,Dt())},Jt={addPersonOrSystem:Ue,addPersonOrSystemBoundary:ze,addContainer:Fe,addContainerBoundary:Xe,addComponent:Ve,addDeploymentNode:We,popBoundaryParseStack:Qe,addRel:je,updateElStyle:He,updateRelStyle:qe,updateLayoutConfig:Ge,autoWrap:xt,setWrap:a0,getC4ShapeArray:fe,getC4Shape:t0,getC4ShapeKeys:e0,getBoundaries:pe,getBoundarys:i0,getCurrentBoundaryParse:Ze,getParentBoundaryParse:$e,getRels:n0,getTitle:s0,getC4Type:Ye,getC4ShapeInRow:Ke,getC4BoundaryInRow:Je,setAccTitle:we,getAccTitle:Oe,getAccDescription:Te,setAccDescription:Re,getConfig:()=>Dt().c4,clear:r0,LINETYPE:l0,ARROWTYPE:o0,PLACEMENT:c0,setTitle:h0,setC4Type:Ie},ie=function(e,t){return Le(e,t)},ye=function(e,t,a,o,l,i){const s=e.append("image");s.attr("width",t),s.attr("height",a),s.attr("x",o),s.attr("y",l);let r=i.startsWith("data:image/png;base64")?i:Me.sanitizeUrl(i);s.attr("xlink:href",r)},u0=(e,t,a)=>{const o=e.append("g");let l=0;for(let i of t){let s=i.textColor?i.textColor:"#444444",r=i.lineColor?i.lineColor:"#444444",n=i.offsetX?parseInt(i.offsetX):0,h=i.offsetY?parseInt(i.offsetY):0,f="";if(l===0){let p=o.append("line");p.attr("x1",i.startPoint.x),p.attr("y1",i.startPoint.y),p.attr("x2",i.endPoint.x),p.attr("y2",i.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",r),p.style("fill","none"),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",i.startPoint.x).replaceAll("starty",i.startPoint.y).replaceAll("controlx",i.startPoint.x+(i.endPoint.x-i.startPoint.x)/2-(i.endPoint.x-i.startPoint.x)/4).replaceAll("controly",i.startPoint.y+(i.endPoint.y-i.startPoint.y)/2).replaceAll("stopx",i.endPoint.x).replaceAll("stopy",i.endPoint.y)),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=a.messageFont();W(a)(i.label.text,o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+h,i.label.width,i.label.height,{fill:s},d),i.techn&&i.techn.text!==""&&(d=a.messageFont(),W(a)("["+i.techn.text+"]",o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+a.messageFontSize+5+h,Math.max(i.label.width,i.techn.width),i.techn.height,{fill:s,"font-style":"italic"},d))}},d0=function(e,t,a){const o=e.append("g");let l=t.bgColor?t.bgColor:"none",i=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let n={x:t.x,y:t.y,fill:l,stroke:i,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};ie(o,n);let h=a.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,W(a)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},h),t.type&&t.type.text!==""&&(h=a.boundaryFont(),h.fontColor=s,W(a)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},h)),t.descr&&t.descr.text!==""&&(h=a.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,W(a)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},h))},f0=function(e,t,a){var o;let l=t.bgColor?t.bgColor:a[t.typeC4Shape.text+"_bg_color"],i=t.borderColor?t.borderColor:a[t.typeC4Shape.text+"_border_color"],s=t.fontColor?t.fontColor:"#FFFFFF",r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const n=e.append("g");n.attr("class","person-man");const h=Ne();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=t.x,h.y=t.y,h.fill=l,h.width=t.width,h.height=t.height,h.stroke=i,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},ie(n,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let f=v0(a,t.typeC4Shape.text);switch(n.append("text").attr("fill",s).attr("font-family",f.fontFamily).attr("font-size",f.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":ye(n,48,48,t.x+t.width/2-24,t.y+t.image.Y,r);break}let d=a[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=s,W(a)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:s},d),d=a[t.typeC4Shape.text+"Font"](),d.fontColor=s,t.techn&&((o=t.techn)==null?void 0:o.text)!==""?W(a)(t.techn.text,n,t.x,t.y+t.techn.Y,t.width,t.height,{fill:s,"font-style":"italic"},d):t.type&&t.type.text!==""&&W(a)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:s,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=a.personFont(),d.fontColor=s,W(a)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:s},d)),t.height},p0=function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},y0=function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},g0=function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},b0=function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},_0=function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},x0=function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},m0=function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},E0=function(e){const a=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);a.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),a.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},v0=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),W=function(){function e(l,i,s,r,n,h,f){const d=i.append("text").attr("x",s+n/2).attr("y",r+h/2+5).style("text-anchor","middle").text(l);o(d,f)}function t(l,i,s,r,n,h,f,d){const{fontSize:p,fontFamily:E,fontWeight:O}=d,R=l.split(Kt.lineBreakRegex);for(let S=0;S=this.data.widthLimit||o>=this.data.widthLimit||this.nextData.cnt>ge)&&(a=this.nextData.startx+t.margin+b.nextLinePaddingX,l=this.nextData.stopy+t.margin*2,this.nextData.stopx=o=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=l+t.height,this.nextData.cnt=1),t.x=a,t.y=l,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",l,Math.min),this.updateVal(this.data,"stopx",o,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",l,Math.min),this.updateVal(this.nextData,"stopx",o,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},$t(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const $t=function(e){De(b,e),e.fontFamily&&(b.personFontFamily=b.systemFontFamily=b.messageFontFamily=e.fontFamily),e.fontSize&&(b.personFontSize=b.systemFontSize=b.messageFontSize=e.fontSize),e.fontWeight&&(b.personFontWeight=b.systemFontWeight=b.messageFontWeight=e.fontWeight)},Rt=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),Bt=e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),k0=e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight});function I(e,t,a,o,l){if(!t[e].width)if(a)t[e].text=Pe(t[e].text,l,o),t[e].textLines=t[e].text.split(Kt.lineBreakRegex).length,t[e].width=l,t[e].height=oe(t[e].text,o);else{let i=t[e].text.split(Kt.lineBreakRegex);t[e].textLines=i.length;let s=0;t[e].height=0,t[e].width=0;for(const r of i)t[e].width=Math.max(wt(r,o),t[e].width),s=oe(r,o),t[e].height=t[e].height+s}}const _e=function(e,t,a){t.x=a.data.startx,t.y=a.data.starty,t.width=a.data.stopx-a.data.startx,t.height=a.data.stopy-a.data.starty,t.label.y=b.c4ShapeMargin-35;let o=t.wrap&&b.wrap,l=Bt(b);l.fontSize=l.fontSize+2,l.fontWeight="bold";let i=wt(t.label.text,l);I("label",t,o,l,i),F.drawBoundary(e,t,b)},xe=function(e,t,a,o){let l=0;for(const i of o){l=0;const s=a[i];let r=Rt(b,s.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,s.typeC4Shape.width=wt("«"+s.typeC4Shape.text+"»",r),s.typeC4Shape.height=r.fontSize+2,s.typeC4Shape.Y=b.c4ShapePadding,l=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height);let n=s.wrap&&b.wrap,h=b.width-b.c4ShapePadding*2,f=Rt(b,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",s,n,f,h),s.label.Y=l+8,l=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let E=Rt(b,s.typeC4Shape.text);I("type",s,n,E,h),s.type.Y=l+5,l=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let E=Rt(b,s.techn.text);I("techn",s,n,E,h),s.techn.Y=l+5,l=s.techn.Y+s.techn.height}let d=l,p=s.label.width;if(s.descr&&s.descr.text!==""){let E=Rt(b,s.typeC4Shape.text);I("descr",s,n,E,h),s.descr.Y=l+20,l=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=l-s.descr.textLines*5}p=p+b.c4ShapePadding,s.width=Math.max(s.width||b.width,p,b.width),s.height=Math.max(s.height||b.height,d,b.height),s.margin=s.margin||b.c4ShapeMargin,e.insert(s),F.drawC4Shape(t,s,b)}e.bumpLastMargin(b.c4ShapeMargin)};class B{constructor(t,a){this.x=t,this.y=a}}let ce=function(e,t){let a=e.x,o=e.y,l=t.x,i=t.y,s=a+e.width/2,r=o+e.height/2,n=Math.abs(a-l),h=Math.abs(o-i),f=h/n,d=e.height/e.width,p=null;return o==i&&al?p=new B(a,r):a==l&&oi&&(p=new B(s,o)),a>l&&o=f?p=new B(a,r+f*e.width/2):p=new B(s-n/h*e.height/2,o+e.height):a=f?p=new B(a+e.width,r+f*e.width/2):p=new B(s+n/h*e.height/2,o+e.height):ai?d>=f?p=new B(a+e.width,r-f*e.width/2):p=new B(s+e.height/2*n/h,o):a>l&&o>i&&(d>=f?p=new B(a,r-e.width/2*f):p=new B(s-e.height/2*n/h,o)),p},A0=function(e,t){let a={x:0,y:0};a.x=t.x+t.width/2,a.y=t.y+t.height/2;let o=ce(e,a);a.x=e.x+e.width/2,a.y=e.y+e.height/2;let l=ce(t,a);return{startPoint:o,endPoint:l}};const C0=function(e,t,a,o){let l=0;for(let i of t){l=l+1;let s=i.wrap&&b.wrap,r=k0(b);o.db.getC4Type()==="C4Dynamic"&&(i.label.text=l+": "+i.label.text);let h=wt(i.label.text,r);I("label",i,s,r,h),i.techn&&i.techn.text!==""&&(h=wt(i.techn.text,r),I("techn",i,s,r,h)),i.descr&&i.descr.text!==""&&(h=wt(i.descr.text,r),I("descr",i,s,r,h));let f=a(i.from),d=a(i.to),p=A0(f,d);i.startPoint=p.startPoint,i.endPoint=p.endPoint}F.drawRels(e,t,b)};function me(e,t,a,o,l){let i=new be(l);i.data.widthLimit=a.data.widthLimit/Math.min(Zt,o.length);for(let[s,r]of o.entries()){let n=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=n,n=r.image.Y+r.image.height);let h=r.wrap&&b.wrap,f=Bt(b);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",r,h,f,i.data.widthLimit),r.label.Y=n+8,n=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let O=Bt(b);I("type",r,h,O,i.data.widthLimit),r.type.Y=n+5,n=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let O=Bt(b);O.fontSize=O.fontSize-2,I("descr",r,h,O,i.data.widthLimit),r.descr.Y=n+20,n=r.descr.Y+r.descr.height}if(s==0||s%Zt===0){let O=a.data.startx+b.diagramMarginX,R=a.data.stopy+b.diagramMarginY+n;i.setData(O,O,R,R)}else{let O=i.data.stopx!==i.data.startx?i.data.stopx+b.diagramMarginX:i.data.startx,R=i.data.starty;i.setData(O,O,R,R)}i.name=r.alias;let d=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&xe(i,e,d,p),t=r.alias;let E=l.db.getBoundarys(t);E.length>0&&me(e,t,i,E,l),r.alias!=="global"&&_e(e,r,i),a.data.stopy=Math.max(i.data.stopy+b.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(i.data.stopx+b.c4ShapeMargin,a.data.stopx),Ut=Math.max(Ut,a.data.stopx),Ft=Math.max(Ft,a.data.stopy)}}const w0=function(e,t,a,o){b=Dt().c4;const l=Dt().securityLevel;let i;l==="sandbox"&&(i=Nt("#i"+t));const s=l==="sandbox"?Nt(i.nodes()[0].contentDocument.body):Nt("body");let r=o.db;o.db.setWrap(b.wrap),ge=r.getC4ShapeInRow(),Zt=r.getC4BoundaryInRow(),le.debug(`C:${JSON.stringify(b,null,2)}`);const n=l==="sandbox"?s.select(`[id="${t}"]`):Nt(`[id="${t}"]`);F.insertComputerIcon(n),F.insertDatabaseIcon(n),F.insertClockIcon(n);let h=new be(o);h.setData(b.diagramMarginX,b.diagramMarginX,b.diagramMarginY,b.diagramMarginY),h.data.widthLimit=screen.availWidth,Ut=b.diagramMarginX,Ft=b.diagramMarginY;const f=o.db.getTitle();let d=o.db.getBoundarys("");me(n,"",h,d,o),F.insertArrowHead(n),F.insertArrowEnd(n),F.insertArrowCrossHead(n),F.insertArrowFilledHead(n),C0(n,o.db.getRels(),o.db.getC4Shape,o),h.data.stopx=Ut,h.data.stopy=Ft;const p=h.data;let O=p.stopy-p.starty+2*b.diagramMarginY;const S=p.stopx-p.startx+2*b.diagramMarginX;f&&n.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*b.diagramMarginX).attr("y",p.starty+b.diagramMarginY),Se(n,O,S,b.useMaxWidth);const L=f?60:0;n.attr("viewBox",p.startx-b.diagramMarginX+" -"+(b.diagramMarginY+L)+" "+S+" "+(O+L)),le.debug("models:",p)},he={drawPersonOrSystemArray:xe,drawBoundary:_e,setConf:$t,draw:w0},O0=e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,T0=O0,P0={parser:Be,db:Jt,renderer:he,styles:T0,init:({c4:e,wrap:t})=>{he.setConf(e),Jt.setWrap(t)}};export{P0 as diagram}; diff --git a/assets/channel-BQsRZjn0.js b/assets/channel-BQsRZjn0.js new file mode 100644 index 00000000..73bf2d1f --- /dev/null +++ b/assets/channel-BQsRZjn0.js @@ -0,0 +1 @@ +import{aA as o,aB as n}from"./mermaid.core-Bc1j4tiv.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c}; diff --git a/assets/classDiagram-fb54d2a0-B6KDNP-K.js b/assets/classDiagram-fb54d2a0-B6KDNP-K.js new file mode 100644 index 00000000..4ca4641d --- /dev/null +++ b/assets/classDiagram-fb54d2a0-B6KDNP-K.js @@ -0,0 +1,2 @@ +import{p as A,d as S,s as G}from"./styles-b83b31c9-AroU2Phi.js";import{c as v,l as y,h as B,i as W,F as $,A as M,G as I}from"./mermaid.core-Bc1j4tiv.js";import{G as O}from"./graph-DkiqFSuU.js";import{l as P}from"./layout-BZLwH4ql.js";import{l as X}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";let H=0;const Y=function(i,a,t,o,p){const g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(e=>!Number.isNaN(e.y));const s=a.points,c=X().x(function(e){return e.x}).y(function(e){return e.y}).curve($),n=i.append("path").attr("d",c(s)).attr("id","edge"+H).attr("class","relation");let r="";o.arrowMarkerAbsolute&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+r+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+r+"#"+g(t.relation.type2)+"End)");let f,h;const x=a.points.length;let b=M.calcLabelPosition(a.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=M.calcCardinalityPosition(t.relation.type1!=="none",a.points,a.points[0]),d=M.calcCardinalityPosition(t.relation.type2!=="none",a.points,a.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){const e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;const l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),H++},J=function(i,a,t,o){y.debug("Rendering class ",a,t);const p=a.id,g={id:p,label:a.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup");let c;a.link?c=s.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;a.annotations.forEach(function(d){const l=c.append("tspan").text("«"+d+"»");n||l.attr("dy",t.textHeight),n=!1});let r=C(a);const f=c.append("tspan").text(r).attr("class","title");n||f.attr("dy",t.textHeight);const h=c.node().getBBox().height;let x,b,u;if(a.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);const d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.members.forEach(function(l){_(d,l,n,t),n=!1}),b=d.node().getBBox()}if(a.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);const d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.methods.forEach(function(l){_(d,l,n,t),n=!1})}const m=s.node().getBBox();var w=" ";a.cssClasses.length>0&&(w=w+a.cssClasses.join(" "));const e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),a.tooltip&&c.insert("title").text(a.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},C=function(i){let a=i.id;return i.type&&(a+="<"+I(i.type)+">"),a},Z=function(i,a,t,o){y.debug("Rendering note ",a,t);const p=a.id,g={id:p,text:a.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup");let c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const n=JSON.parse(`"${a.text}"`).split(` +`);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});const r=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",r.width+2*t.padding).attr("height",r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},_=function(i,a,t,o){const{displayText:p,cssStyle:g}=a.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",a.cssStyle),t||s.attr("dy",o.textHeight)},N={getClassTitleString:C,drawClass:J,drawEdge:Y,drawNote:Z};let T={};const E=20,L=function(i){const a=Object.entries(T).find(t=>t[1].label===i);if(a)return a[0]},R=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},F=function(i,a,t,o){const p=v().class;T={},y.info("Rendering diagram "+i);const g=v().securityLevel;let s;g==="sandbox"&&(s=B("#i"+a));const c=g==="sandbox"?B(s.nodes()[0].contentDocument.body):B("body"),n=c.select(`[id='${a}']`);R(n);const r=new O({multigraph:!0});r.setGraph({isMultiGraph:!0}),r.setDefaultEdgeLabel(function(){return{}});const f=o.db.getClasses(),h=Object.keys(f);for(const e of h){const d=f[e],l=N.drawClass(n,d,p,o);T[l.id]=l,r.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),r.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);const d=N.drawNote(n,e,p,o);T[d.id]=d,r.setNode(d.id,d),e.class&&e.class in f&&r.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),P(r),r.nodes().forEach(function(e){e!==void 0&&r.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(r.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(r.node(e).x-r.node(e).width/2)+","+(r.node(e).y-r.node(e).height/2)+" )"))}),r.edges().forEach(function(e){e!==void 0&&r.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r.edge(e))),N.drawEdge(n,r.edge(e),r.edge(e).relation,p,o))});const u=n.node().getBBox(),m=u.width+E*2,w=u.height+E*2;W(n,w,m,p.useMaxWidth);const k=`${u.x-E} ${u.y-E} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},U={draw:F},et={parser:A,db:S,renderer:U,styles:G,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,S.clear()}};export{et as diagram}; diff --git a/assets/classDiagram-v2-a2b738ad-BzrN1-EV.js b/assets/classDiagram-v2-a2b738ad-BzrN1-EV.js new file mode 100644 index 00000000..c438af80 --- /dev/null +++ b/assets/classDiagram-v2-a2b738ad-BzrN1-EV.js @@ -0,0 +1,2 @@ +import{p as M,d as _,s as R}from"./styles-b83b31c9-AroU2Phi.js";import{l as d,c,h as w,A as B,t as G,o as D,q as E,n as A,j as C}from"./mermaid.core-Bc1j4tiv.js";import{G as q}from"./graph-DkiqFSuU.js";import{r as z}from"./index-01f381cb-wllKWk9M.js";import"./layout-BZLwH4ql.js";import"./app-Ca-A-iaw.js";import"./clone-CH2yQtrO.js";import"./edges-066a5561-CYMTSPpJ.js";import"./createText-ca0c5216-bYdpW0Zp.js";import"./line-DS2p6aKt.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const S=s=>C.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const P=function(s,t,y,a){const e=Object.keys(s);d.info("keys:",e),d.info(s),e.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};t.setNode(l.id,p),$(l.classes,t,y,a,l.id),d.info("setNode",p)})},$=function(s,t,y,a,e){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==e).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),h=n.label??n.id,u=0,b={labelStyle:f.labelStyle,shape:"class_box",labelText:S(h),classData:n,rx:u,ry:u,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,e)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};t.setNode(n.id,b),e&&t.setParent(n.id,e),d.info("setNode",b)})},F=function(s,t,y,a){d.info(s),s.forEach(function(e,i){var o,r;const l=e,n="",p={labelStyle:"",style:""},f=l.text,h=0,m={labelStyle:p.labelStyle,shape:"note",labelText:S(f),noteData:l,rx:h,ry:h,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(t.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in a))return;const b=y+i,x={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,A)};t.setEdge(l.id,l.class,x,b)})},H=function(s,t){const y=c().flowchart;let a=0;s.forEach(function(e){var i;a++;const o={classes:"relation",pattern:e.relation.lineType==1?"dashed":"solid",id:`id_${e.id1}_${e.id2}_${a}`,arrowhead:e.type==="arrow_open"?"none":"normal",startLabelRight:e.relationTitle1==="none"?"":e.relationTitle1,endLabelLeft:e.relationTitle2==="none"?"":e.relationTitle2,arrowTypeStart:N(e.relation.type1),arrowTypeEnd:N(e.relation.type2),style:"fill:none",labelStyle:"",curve:E(y==null?void 0:y.curve,A)};if(d.info(o,e),e.style!==void 0){const r=D(e.style);o.style=r.style,o.labelStyle=r.labelStyle}e.text=e.title,e.text===void 0?e.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label=''+e.text+""):(o.labelType="text",o.label=e.text.replace(C.lineBreakRegex,` +`),e.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,o,a)})},V=function(s){k={...k,...s}},W=async function(s,t,y,a){d.info("Drawing class - ",t);const e=c().flowchart??c().class,i=c().securityLevel;d.info("config:",e);const o=(e==null?void 0:e.nodeSpacing)??50,r=(e==null?void 0:e.rankSpacing)??50,l=new q({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:o,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),p=a.db.getClasses(),f=a.db.getRelations(),h=a.db.getNotes();d.info(f),P(n,l,t,a),$(p,l,t,a),H(f,l),F(h,l,f.length+1,p);let u;i==="sandbox"&&(u=w("#i"+t));const m=i==="sandbox"?w(u.nodes()[0].contentDocument.body):w("body"),b=m.select(`[id="${t}"]`),x=m.select("#"+t+" g");if(await z(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),B.insertTitle(b,"classTitleText",(e==null?void 0:e.titleTopMargin)??5,a.db.getDiagramTitle()),G(l,b,e==null?void 0:e.diagramPadding,e==null?void 0:e.useMaxWidth),!(e!=null&&e.htmlLabels)){const T=i==="sandbox"?u.nodes()[0].contentDocument:document,I=T.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const g of I){const L=g.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),g.insertBefore(v,g.firstChild)}}};function N(s){let t;switch(s){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const J={setConf:V,draw:W},se={parser:M,db:_,renderer:J,styles:R,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,_.clear()}};export{se as diagram}; diff --git a/assets/clone-CH2yQtrO.js b/assets/clone-CH2yQtrO.js new file mode 100644 index 00000000..b064a2b4 --- /dev/null +++ b/assets/clone-CH2yQtrO.js @@ -0,0 +1 @@ +import{a as r}from"./graph-DkiqFSuU.js";var a=4;function n(o){return r(o,a)}export{n as c}; diff --git a/assets/createText-ca0c5216-bYdpW0Zp.js b/assets/createText-ca0c5216-bYdpW0Zp.js new file mode 100644 index 00000000..c53e6642 --- /dev/null +++ b/assets/createText-ca0c5216-bYdpW0Zp.js @@ -0,0 +1,7 @@ +import{l as At,aC as zt,aD as It}from"./mermaid.core-Bc1j4tiv.js";const Tt={};function Bt(n,r){const t=Tt,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return et(n,e,u)}function et(n,r,t){if(Lt(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return Vn(n.children,r,t)}return Array.isArray(n)?Vn(n,r,t):""}function Vn(n,r,t){const e=[];let u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Wn={}.hasOwnProperty;function Ot(n){const r={};let t=-1;for(;++tl))return;const T=r.events.length;let H=T,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=T;kF;){const _=t[D];r.containerState=_[1],_[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Un(n){if(n===null||Z(n)||Ht(n))return 1;if(qt(n))return 2}function Ln(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);$n(f,-m),$n(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Ln(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&z(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||C(k)?n.check(Yn,I,D)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||C(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function D(k){return n.exit("codeFenced"),r(k)}function _(k,T,H){let N=0;return V;function V(w){return k.enter("lineEnding"),k.consume(w),k.exit("lineEnding"),y}function y(w){return k.enter("codeFencedFence"),z(w)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):S(w)}function S(w){return w===a?(k.enter("codeFencedFenceSequence"),P(w)):H(w)}function P(w){return w===a?(N++,k.consume(w),P):N>=l?(k.exit("codeFencedFenceSequence"),z(w)?O(k,R,"whitespace")(w):R(w)):H(w)}function R(w){return w===null||C(w)?(k.exit("codeFencedFence"),T(w)):H(w)}}}function re(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const Cn={name:"codeIndented",tokenize:ue},ie={tokenize:le,partial:!0};function ue(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):C(c)?n.attempt(ie,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||C(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function le(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):C(l)?u(l):t(l)}}const ae={name:"codeText",tokenize:ce,resolve:oe,previous:se};function oe(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function at(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),I(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||C(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function I(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):C(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||C(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!z(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function st(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):C(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||C(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return C(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):z(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ke={name:"definition",tokenize:be},de={tokenize:ye,partial:!0};function be(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return ot.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return at(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(de,f,f)(h)}function f(h){return z(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||C(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function ye(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return st(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return z(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||C(a)?r(a):t(a)}}const Se={name:"hardBreakEscape",tokenize:Fe};function Fe(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return C(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Ee={name:"headingAtx",tokenize:we,resolve:Ce};function Ce(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||C(p)?(n.exit("atxHeading"),r(p)):z(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ae=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jn=["pre","script","style","textarea"],ze={name:"htmlFlow",tokenize:Le,resolveTo:Be,concrete:!0},Ie={tokenize:De,partial:!0},Te={tokenize:Oe,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Le(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,I):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function I(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function M(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Jn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ae.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),M):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return z(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),D):z(s)?(n.consume(s),F):V(s)}function D(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),D):_(s)}function _(s){return s===61?(n.consume(s),k):z(s)?(n.consume(s),_):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,T):z(s)?(n.consume(s),k):H(s)}function T(s){return s===m?(n.consume(s),m=null,N):s===null||C(s)?t(s):(n.consume(s),T)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?_(s):(n.consume(s),H)}function N(s){return s===47||s===62||z(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||C(s)?S(s):z(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),U):s===60&&u===1?(n.consume(s),W):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):C(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(Ie,rn,P)(s)):s===null||C(s)?(n.exit("htmlFlowData"),P(s)):(n.consume(s),S)}function P(s){return n.check(Te,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),w}function w(s){return s===null||C(s)?P(s):(n.enter("htmlFlowData"),S(s))}function U(s){return s===45?(n.consume(s),o):S(s)}function W(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Jn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||C(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Oe(n,r,t){const e=this;return u;function u(l){return C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function De(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const Pe={name:"htmlText",tokenize:_e};function _e(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),_):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):C(o)?(l=f,W(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?U(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?I:A):t(o)}function I(o){return o===null?t(o):o===93?(n.consume(o),M):C(o)?(l=I,W(o)):(n.consume(o),I)}function M(o){return o===93?(n.consume(o),b):I(o)}function b(o){return o===62?U(o):o===93?(n.consume(o),b):I(o)}function j(o){return o===null||o===62?U(o):C(o)?(l=j,W(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),D):C(o)?(l=F,W(o)):(n.consume(o),F)}function D(o){return o===62?U(o):F(o)}function _(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):T(o)}function T(o){return C(o)?(l=T,W(o)):z(o)?(n.consume(o),T):U(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),U):o===58||o===95||nn(o)?(n.consume(o),V):C(o)?(l=N,W(o)):z(o)?(n.consume(o),N):U(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):C(o)?(l=y,W(o)):z(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,P):C(o)?(l=S,W(o)):z(o)?(n.consume(o),S):(n.consume(o),R)}function P(o){return o===u?(n.consume(o),u=void 0,w):o===null?t(o):C(o)?(l=P,W(o)):(n.consume(o),P)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function w(o){return o===47||o===62||Z(o)?N(o):t(o)}function U(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function W(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return z(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const Dn={name:"labelEnd",tokenize:Ne,resolveTo:He,resolveAll:qe},Me={tokenize:Ve},je={tokenize:We},Re={tokenize:Qe};function qe(n){let r=-1;for(;++r=3&&(c===null||C(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),z(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:ve,continuation:{tokenize:nr},exit:er},Ke={tokenize:rr,partial:!0},Xe={tokenize:tr,partial:!0};function ve(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Ke,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return z(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function nr(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!z(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Xe,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function tr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function er(n){n.exit(this.containerState.type)}function rr(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Kn={name:"setextUnderline",tokenize:ur,resolveTo:ir};function ir(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ur(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),z(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||C(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const lr={tokenize:ar};function ar(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(pe,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const or={resolveAll:ht()},sr=ct("string"),cr=ct("text");function ct(n){return{tokenize:r,resolveAll:ht(n==="text"?hr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function mr(n,r){let t=-1;const e=[];let u;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Ir=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Tr(n){return n.replace(Ir,Br)}function Br(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){const u=t.charCodeAt(1),i=u===120||u===88;return pt(t.slice(i?2:1),i?16:10)}return On(t)||n}function yn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?vn(n.position):"start"in n||"end"in n?vn(n):"line"in n||"column"in n?Tn(n):""}function Tn(n){return nt(n&&n.line)+":"+nt(n&&n.column)}function vn(n){return Tn(n&&n.start)+"-"+Tn(n&&n.end)}function nt(n){return n&&typeof n=="number"?n:1}const ft={}.hasOwnProperty,mt=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Lr(t)(zr(wr(t).document().write(Ar()(n,r,!0))))};function Lr(n){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Hn),autolinkProtocol:y,autolinkEmail:y,atxHeading:a(jn),blockQuote:a(Fn),characterEscape:y,characterReference:y,codeFenced:a(Mn),codeFencedFenceInfo:m,codeFencedFenceMeta:m,codeIndented:a(Mn,m),codeText:a(kt,m),codeTextData:y,data:y,codeFlowValue:y,definition:a(dt),definitionDestinationString:m,definitionLabelString:m,definitionTitleString:m,emphasis:a(bt),hardBreakEscape:a(Rn),hardBreakTrailing:a(Rn),htmlFlow:a(qn,m),htmlFlowData:y,htmlText:a(qn,m),htmlTextData:y,image:a(yt),label:m,link:a(Hn),listItem:a(St),listItemValue:A,listOrdered:a(Nn,h),listUnordered:a(Nn),paragraph:a(Ft),reference:hn,referenceString:m,resourceDestinationString:m,resourceTitleString:m,setextHeading:a(jn),strong:a(Et),thematicBreak:a(wt)},exit:{atxHeading:p(),atxHeadingSequence:T,autolink:p(),autolinkEmail:mn,autolinkProtocol:fn,blockQuote:p(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:pn,characterReferenceMarkerNumeric:pn,characterReferenceValue:an,codeFenced:p(j),codeFencedFence:b,codeFencedFenceInfo:I,codeFencedFenceMeta:M,codeFlowValue:S,codeIndented:p(F),codeText:p(W),codeTextData:S,data:S,definition:p(),definitionDestinationString:k,definitionLabelString:D,definitionTitleString:_,emphasis:p(),hardBreakEscape:p(R),hardBreakTrailing:p(R),htmlFlow:p(w),htmlFlowData:S,htmlText:p(U),htmlTextData:S,image:p(en),label:J,labelText:o,lineEnding:P,link:p(G),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:Q,resourceDestinationString:rn,resourceTitleString:s,resource:K,setextHeading:p(V),setextHeadingLineSequence:N,setextHeadingText:H,strong:p(),thematicBreak:p()}};xt(r,(n||{}).mdastExtensions||[]);const t={};return e;function e(g){let d={type:"root",children:[]};const E={stack:[d],tokenStack:[],config:r,enter:c,exit:f,buffer:m,resume:x,setData:i,getData:l},B=[];let L=-1;for(;++L0){const X=E.tokenStack[E.tokenStack.length-1];(X[1]||tt).call(E,void 0,X[0])}for(d.position={start:sn(g.length>0?g[0][1].start:{line:1,column:1,offset:0}),end:sn(g.length>0?g[g.length-2][1].end:{line:1,column:1,offset:0})},L=-1;++L{p!==0&&(u++,e.push([])),c.split(" ").forEach(f=>{f&&e[u].push({content:f,type:a})})}):(l.type==="strong"||l.type==="emphasis")&&l.children.forEach(m=>{i(m,l.type)})}return t.forEach(l=>{l.type==="paragraph"&&l.children.forEach(a=>{i(a)})}),e}function _r(n){const{children:r}=mt(n);function t(e){return e.type==="text"?e.value.replace(/\n/g,"
    "):e.type==="strong"?`${e.children.map(t).join("")}`:e.type==="emphasis"?`${e.children.map(t).join("")}`:e.type==="paragraph"?`

    ${e.children.map(t).join("")}

    `:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function Mr(n){return Intl.Segmenter?[...new Intl.Segmenter().segment(n)].map(r=>r.segment):[...n]}function jr(n,r){const t=Mr(r.content);return gt(n,[],t,r.type)}function gt(n,r,t,e){if(t.length===0)return[{content:r.join(""),type:e},{content:"",type:e}];const[u,...i]=t,l=[...r,u];return n([{content:l.join(""),type:e}])?gt(n,l,i,e):(r.length===0&&u&&(r.push(u),t.shift()),[{content:r.join(""),type:e},{content:t.join(""),type:e}])}function Rr(n,r){if(n.some(({content:t})=>t.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return Bn(n,r)}function Bn(n,r,t=[],e=[]){if(n.length===0)return e.length>0&&t.push(e),t.length>0?t:[];let u="";n[0].content===" "&&(u=" ",n.shift());const i=n.shift()??{content:" ",type:"normal"},l=[...e];if(u!==""&&l.push({content:u,type:"normal"}),l.push(i),r(l))return Bn(n,r,t,l);if(e.length>0)t.push(e),n.unshift(i);else if(i.content){const[a,m]=jr(r,i);t.push([a]),m.content&&n.unshift(m)}return Bn(n,r,t)}function qr(n,r){r&&n.attr("style",r)}function Hr(n,r,t,e,u=!1){const i=n.append("foreignObject"),l=i.append("xhtml:div"),a=r.label,m=r.isNode?"nodeLabel":"edgeLabel";l.html(` + "+a+""),qr(l,r.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("max-width",t+"px"),l.attr("xmlns","http://www.w3.org/1999/xhtml"),u&&l.attr("class","labelBkg");let c=l.node().getBoundingClientRect();return c.width===t&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",t+"px"),c=l.node().getBoundingClientRect()),i.style("width",c.width),i.style("height",c.height),i.node()}function Pn(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function Nr(n,r,t){const e=n.append("text"),u=Pn(e,1,r);_n(u,t);const i=u.node().getComputedTextLength();return e.remove(),i}function Qr(n,r,t){var e;const u=n.append("text"),i=Pn(u,1,r);_n(i,[{content:t,type:"normal"}]);const l=(e=i.node())==null?void 0:e.getBoundingClientRect();return l&&u.remove(),l}function Vr(n,r,t,e=!1){const i=r.append("g"),l=i.insert("rect").attr("class","background"),a=i.append("text").attr("y","-10.1");let m=0;for(const c of t){const p=x=>Nr(i,1.1,x)<=n,f=p(c)?[c]:Rr(c,p);for(const x of f){const h=Pn(a,m,1.1);_n(h,x),m++}}if(e){const c=a.node().getBBox(),p=2;return l.attr("x",-p).attr("y",-p).attr("width",c.width+2*p).attr("height",c.height+2*p),i.node()}else return a.node()}function _n(n,r){n.text(""),r.forEach((t,e)=>{const u=n.append("tspan").attr("font-style",t.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?u.text(t.content):u.text(" "+t.content)})}const Ur=(n,r="",{style:t="",isTitle:e=!1,classes:u="",useHtmlLabels:i=!0,isNode:l=!0,width:a=200,addSvgBackground:m=!1}={})=>{if(At.info("createText",r,t,e,u,i,l,m),i){const c=_r(r),p={isNode:l,label:zt(c).replace(/fa[blrs]?:fa-[\w-]+/g,x=>``),labelStyle:t.replace("fill:","color:")};return Hr(n,p,a,u,m)}else{const c=Pr(r);return Vr(a,n,c,m)}};export{Qr as a,Ur as c}; diff --git a/assets/edges-066a5561-CYMTSPpJ.js b/assets/edges-066a5561-CYMTSPpJ.js new file mode 100644 index 00000000..93280b49 --- /dev/null +++ b/assets/edges-066a5561-CYMTSPpJ.js @@ -0,0 +1,4 @@ +import{p as H,c as b,d as q,aC as Q,h as E,l as g,A as j,F as lt}from"./mermaid.core-Bc1j4tiv.js";import{c as st}from"./createText-ca0c5216-bYdpW0Zp.js";import{l as ct}from"./line-DS2p6aKt.js";const ht=(e,t,a,i)=>{t.forEach(l=>{wt[l](e,a,i)})},ot=(e,t,a)=>{g.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},yt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},pt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},ft=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},xt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},gt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},ut=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},bt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},wt={extension:ot,composition:yt,aggregation:pt,dependency:ft,lollipop:xt,point:dt,circle:gt,cross:ut,barb:bt},hr=ht;function mt(e,t){t&&e.attr("style",t)}function kt(e){const t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=t.append("xhtml:div"),i=e.label,l=e.isNode?"nodeLabel":"edgeLabel";return a.html('"+i+""),mt(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const vt=(e,t,a,i)=>{let l=e||"";if(typeof l=="object"&&(l=l[0]),H(b().flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
    "),g.debug("vertexText"+l);const r={isNode:i,label:Q(l).replace(/fa[blrs]?:fa-[\w-]+/g,n=>``),labelStyle:t.replace("fill:","color:")};return kt(r)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof l=="string"?s=l.split(/\\n|\n|/gi):Array.isArray(l)?s=l:s=[];for(const n of s){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),a?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=n.trim(),r.appendChild(c)}return r}},R=vt,M=async(e,t,a,i)=>{let l;const r=t.useHtmlLabels||H(b().flowchart.htmlLabels);a?l=a:l="node default";const s=e.insert("g").attr("class",l).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=n.node();let h;t.labelType==="markdown"?h=st(n,q(Q(c),b()),{useHtmlLabels:r,width:t.width||b().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(R(q(Q(c),b()),t.labelStyle,!1,i));let y=h.getBBox();const f=t.padding/2;if(H(b().flowchart.htmlLabels)){const p=h.children[0],d=E(h),k=p.getElementsByTagName("img");if(k){const x=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(u=>new Promise(S=>{function B(){if(u.style.display="flex",u.style.flexDirection="column",x){const C=b().fontSize?b().fontSize:window.getComputedStyle(document.body).fontSize,A=parseInt(C,10)*5+"px";u.style.minWidth=A,u.style.maxWidth=A}else u.style.width="100%";S(u)}setTimeout(()=>{u.complete&&B()}),u.addEventListener("error",B),u.addEventListener("load",B)})))}y=p.getBoundingClientRect(),d.attr("width",y.width),d.attr("height",y.height)}return r?n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"):n.attr("transform","translate(0, "+-y.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:y,halfPadding:f,label:n}},m=(e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height};function I(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}function Lt(e,t){return e.intersect(t)}function it(e,t,a,i){var l=e.x,r=e.y,s=l-i.x,n=r-i.y,c=Math.sqrt(t*t*n*n+a*a*s*s),o=Math.abs(t*a*s/c);i.x0}function Tt(e,t,a){var i=e.x,l=e.y,r=[],s=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),n=Math.min(n,d.y)}):(s=Math.min(s,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-s,o=l-e.height/2-n,h=0;h1&&r.sort(function(d,k){var x=d.x-a.x,u=d.y-a.y,S=Math.sqrt(x*x+u*u),B=k.x-a.x,C=k.y-a.y,X=Math.sqrt(B*B+C*C);return S{var a=e.x,i=e.y,l=t.x-a,r=t.y-i,s=e.width/2,n=e.height/2,c,o;return Math.abs(r)*s>Math.abs(l)*n?(r<0&&(n=-n),c=r===0?0:n*l/r,o=n):(l<0&&(s=-s),c=s,o=l===0?0:s*r/l),{x:a+c,y:i+o}},Et=Bt,w={node:Lt,circle:St,ellipse:it,polygon:Tt,rect:Et},Ct=async(e,t)=>{t.useHtmlLabels||b().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:r}=await M(e,t,"node "+t.classes,!0);g.info("Classes = ",t.classes);const s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-r).attr("y",-l.height/2-r).attr("width",l.width+t.padding).attr("height",l.height+t.padding),m(t,s),t.intersect=function(n){return w.rect(t,n)},i},$t=Ct,_t=e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},Rt=(e,t,a)=>{const i=_t(e),l=2,r=t.height+2*a.padding,s=r/l,n=t.width+2*s+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*c},{x:n-s,y:0},{x:n,y:0},{x:n,y:-r/3},{x:n+2*c,y:-r/2},{x:n,y:-2*r/3},{x:n,y:-r},{x:n-s,y:-r},{x:n/2,y:-r-2*c},{x:s,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:s,y:-r},{x:n-s,y:-r},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-r+s},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-r+s},{x:n,y:-r}]:i.has("right")&&i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-r}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-r}]:i.has("right")?[{x:s,y:-c},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r+c}]:i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},K=e=>e?" "+e:"",_=(e,t)=>`node default${K(e.classes)} ${K(e.class)}`,P=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=l+r,n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];g.info("Question main (Circle)");const c=I(a,s,s,n);return c.attr("style",t.style),m(t,c),t.intersect=function(o){return g.warn("Intersect called"),w.polygon(t,n,o)},a},Ht=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return w.circle(t,14,s)},a},It=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=4,r=i.height+t.padding,s=r/l,n=i.width+2*s+t.padding,c=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}],o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Nt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,void 0,!0),l=2,r=i.height+2*t.padding,s=r/l,n=i.width+2*s+t.padding,c=Rt(t.directions,i,t),o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Ot=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-r/2,y:0},{x:l,y:0},{x:l,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return I(a,l,r,s).attr("style",t.style),t.width=l+r,t.height=r,t.intersect=function(c){return w.polygon(t,s,c)},a},Wt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Xt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:2*r/6,y:0},{x:l+r/6,y:0},{x:l-2*r/6,y:-r},{x:-r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Yt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l+2*r/6,y:0},{x:l-r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},At=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:-2*r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Dt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l+r/2,y:0},{x:l,y:-r/2},{x:l+r/2,y:-r},{x:0,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},jt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=l/2,s=r/(2.5+l/50),n=i.height+s+t.padding,c="M 0,"+s+" a "+r+","+s+" 0,0,0 "+l+" 0 a "+r+","+s+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+r+","+s+" 0,0,0 "+l+" 0 l 0,"+-n,o=a.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+s)+")");return m(t,o),t.intersect=function(h){const y=w.rect(t,h),f=y.x-t.x;if(r!=0&&(Math.abs(f)t.height/2-s)){let p=s*s*(1-f*f/(r*r));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),y.y+=p}return y},a},Ut=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes+" "+t.class,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(V(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},zt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(V(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},Zt=async(e,t)=>{const{shapeSvg:a}=await M(e,t,"label",!0);g.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,r=0;if(i.attr("width",l).attr("height",r),a.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(V(i,t.props.borders,l,r),s.delete("borders")),s.forEach(n=>{g.warn(`Unknown node property ${n}`)})}return m(t,i),t.intersect=function(s){return w.rect(t,s)},a};function V(e,t,a,i){const l=[],r=n=>{l.push(n,0)},s=n=>{l.push(0,n)};t.includes("t")?(g.debug("add top border"),r(a)):s(a),t.includes("r")?(g.debug("add right border"),r(i)):s(i),t.includes("b")?(g.debug("add bottom border"),r(a)):s(a),t.includes("l")?(g.debug("add left border"),r(i)):s(i),e.attr("stroke-dasharray",l.join(" "))}const Ft=(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),r=i.insert("line"),s=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof n=="object"?c=n[0]:c=n,g.info("Label text abc79",c,n,typeof n=="object");const o=s.node().appendChild(R(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(b().flowchart.htmlLabels)){const k=o.children[0],x=E(o);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}g.info("Text 2",n);const y=n.slice(1,n.length);let f=o.getBBox();const p=s.node().appendChild(R(y.join?y.join("
    "):y,t.labelStyle,!0,!0));if(H(b().flowchart.htmlLabels)){const k=p.children[0],x=E(p);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}const d=t.padding/2;return E(p).attr("transform","translate( "+(h.width>f.width?0:(f.width-h.width)/2)+", "+(f.height+d+5)+")"),E(o).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.height+t.padding,r=i.width+l/4+t.padding,s=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-r/2).attr("y",-l/2).attr("width",r).attr("height",l);return m(t,s),t.intersect=function(n){return w.rect(t,n)},a},Qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=a.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("Circle main"),m(t,r),t.intersect=function(s){return g.info("Circle intersect",t,i.width/2+l,s),w.circle(t,i.width/2+l,s)},a},Vt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=5,s=a.insert("g",":first-child"),n=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+r).attr("width",i.width+t.padding+r*2).attr("height",i.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("DoubleCircle main"),m(t,n),t.intersect=function(o){return g.info("DoubleCircle intersect",t,i.width/2+l+r,o),w.circle(t,i.width/2+l+r,o)},a},qt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l,y:0},{x:l,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Jt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),m(t,i),t.intersect=function(l){return w.circle(t,7,l)},a},tt=(e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,r=10;a==="LR"&&(l=10,r=70);const s=i.append("rect").attr("x",-1*l/2).attr("y",-1*r/2).attr("width",l).attr("height",r).attr("class","fork-join");return m(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return w.rect(t,n)},i},Kt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),m(t,l),t.intersect=function(r){return w.circle(t,7,r)},a},Pt=(e,t)=>{const a=t.padding/2,i=4,l=8;let r;t.classes?r="node "+t.classes:r="node default";const s=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line");let h=0,y=i;const f=s.insert("g").attr("class","label");let p=0;const d=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",x=f.node().appendChild(R(k,t.labelStyle,!0,!0));let u=x.getBBox();if(H(b().flowchart.htmlLabels)){const v=x.children[0],L=E(x);u=v.getBoundingClientRect(),L.attr("width",u.width),L.attr("height",u.height)}t.classData.annotations[0]&&(y+=u.height+i,h+=u.width);let S=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(b().flowchart.htmlLabels?S+="<"+t.classData.type+">":S+="<"+t.classData.type+">");const B=f.node().appendChild(R(S,t.labelStyle,!0,!0));E(B).attr("class","classTitle");let C=B.getBBox();if(H(b().flowchart.htmlLabels)){const v=B.children[0],L=E(B);C=v.getBoundingClientRect(),L.attr("width",C.width),L.attr("height",C.height)}y+=C.height+i,C.width>h&&(h=C.width);const X=[];t.classData.members.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const G=N.children[0],D=E(N);$=G.getBoundingClientRect(),D.attr("width",$.width),D.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,X.push(N)}),y+=l;const A=[];if(t.classData.methods.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const G=N.children[0],D=E(N);$=G.getBoundingClientRect(),D.attr("width",$.width),D.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,A.push(N)}),y+=l,d){let v=(h-u.width)/2;E(x).attr("transform","translate( "+(-1*h/2+v)+", "+-1*y/2+")"),p=u.height+i}let nt=(h-C.width)/2;return E(B).attr("transform","translate( "+(-1*h/2+nt)+", "+(-1*y/2+p)+")"),p+=C.height+i,c.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,X.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p+l/2)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),p+=l,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,A.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),m(t,n),t.intersect=function(v){return w.rect(t,v)},s},rt={rhombus:P,composite:zt,question:P,rect:Ut,labelRect:Zt,rectWithTitle:Ft,choice:Ht,circle:Qt,doublecircle:Vt,stadium:Gt,hexagon:It,block_arrow:Nt,rect_left_inv_arrow:Ot,lean_right:Wt,lean_left:Xt,trapezoid:Yt,inv_trapezoid:At,rect_right_inv_arrow:Dt,cylinder:jt,start:Jt,end:Kt,note:$t,subroutine:qt,fork:tt,join:tt,class_box:Pt};let Y={};const or=async(e,t,a)=>{let i,l;if(t.link){let r;b().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),l=await rt[t.shape](i,t,a)}else l=await rt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),i.attr("data-node","true"),i.attr("data-id",t.id),Y[t.id]=i,t.haveCallback&&Y[t.id].attr("class",Y[t.id].attr("class")+" clickable"),i},yr=(e,t)=>{Y[t.id]=e},pr=()=>{Y={}},fr=e=>{const t=Y[e.id];g.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},tr=({flowchart:e})=>{var t,a;const i=((t=e==null?void 0:e.subGraphTitleMargin)==null?void 0:t.top)??0,l=((a=e==null?void 0:e.subGraphTitleMargin)==null?void 0:a.bottom)??0,r=i+l;return{subGraphTitleTopMargin:i,subGraphTitleBottomMargin:l,subGraphTitleTotalMargin:r}},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Z(e),t=Z(t);const[a,i]=[e.x,e.y],[l,r]=[t.x,t.y],s=l-a,n=r-i;return{angle:Math.atan(n/s),deltaX:s,deltaY:n}}const Z=e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,rr=e=>({x:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaX:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.cos(r)*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaX:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.cos(r)*(s>=0?1:-1)}return Z(t).x+l},y:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaY:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.abs(Math.sin(r))*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaY:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.abs(Math.sin(r))*(s>=0?1:-1)}return Z(t).y+l}}),ar=(e,t,a,i,l)=>{t.arrowTypeStart&&at(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&at(e,"end",t.arrowTypeEnd,a,i,l)},er={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},at=(e,t,a,i,l,r)=>{const s=er[a];if(!s){g.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${r}-${s}${n})`)};let F={},T={};const xr=()=>{F={},T={}},dr=(e,t)=>{const a=H(b().flowchart.htmlLabels),i=t.labelType==="markdown"?st(e,t.label,{style:t.labelStyle,useHtmlLabels:a,addSvgBackground:!0}):R(t.label,t.labelStyle),l=e.insert("g").attr("class","edgeLabel"),r=l.insert("g").attr("class","label");r.node().appendChild(i);let s=i.getBBox();if(a){const c=i.children[0],o=E(i);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),F[t.id]=l,t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){const c=R(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startLeft=o,z(n,t.startLabelLeft)}if(t.startLabelRight){const c=R(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=o.node().appendChild(c),h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startRight=o,z(n,t.startLabelRight)}if(t.endLabelLeft){const c=R(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endLeft=o,z(n,t.endLabelLeft)}if(t.endLabelRight){const c=R(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endRight=o,z(n,t.endLabelRight)}return i};function z(e,t){b().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}const gr=(e,t)=>{g.debug("Moving label abc88 ",e.id,e.label,F[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=b(),{subGraphTitleTotalMargin:l}=tr(i);if(e.label){const r=F[e.id];let s=e.x,n=e.y;if(a){const c=j.calcLabelPosition(a);g.debug("Moving label "+e.label+" from (",s,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(s=c.x,n=c.y)}r.attr("transform",`translate(${s}, ${n+l/2})`)}if(e.startLabelLeft){const r=T[e.id].startLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.startLabelRight){const r=T[e.id].startRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelLeft){const r=T[e.id].endLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelRight){const r=T[e.id].endRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}},sr=(e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),r=Math.abs(t.y-i),s=e.width/2,n=e.height/2;return l>=s||r>=n},ir=(e,t,a)=>{g.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,r=Math.abs(i-a.x),s=e.width/2;let n=a.xMath.abs(i-t.x)*c){let y=a.y{g.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(r=>{if(!sr(t,r)&&!l){const s=ir(t,i,r);let n=!1;a.forEach(c=>{n=n||c.x===s.x&&c.y===s.y}),a.some(c=>c.x===s.x&&c.y===s.y)||a.push(s),l=!0}else i=r,l||a.push(r)}),a},ur=function(e,t,a,i,l,r,s){let n=a.points;g.debug("abc88 InsertEdge: edge=",a,"e=",t);let c=!1;const o=r.node(t.v);var h=r.node(t.w);h!=null&&h.intersect&&(o!=null&&o.intersect)&&(n=n.slice(1,a.points.length-1),n.unshift(o.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(g.debug("to cluster abc88",i[a.toCluster]),n=et(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(g.debug("from cluster abc88",i[a.fromCluster]),n=et(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);const y=n.filter(C=>!Number.isNaN(C.y));let f=lt;a.curve&&(l==="graph"||l==="flowchart")&&(f=a.curve);const{x:p,y:d}=rr(a),k=ct().x(p).y(d).curve(f);let x;switch(a.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-thick";break;default:x=""}switch(a.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break}const u=e.append("path").attr("d",k(y)).attr("id",a.id).attr("class"," "+x+(a.classes?" "+a.classes:"")).attr("style",a.style);let S="";(b().flowchart.arrowMarkerAbsolute||b().state.arrowMarkerAbsolute)&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\("),S=S.replace(/\)/g,"\\)")),ar(u,a,S,s,l);let B={};return c&&(B.updatedPath=n),B.originalPath=a.points,B};export{or as a,dr as b,ur as c,gr as d,pr as e,xr as f,tr as g,R as h,hr as i,Et as j,rr as k,M as l,ar as m,fr as p,yr as s,m as u}; diff --git a/assets/erDiagram-09d1c15f-kySp2mgy.js b/assets/erDiagram-09d1c15f-kySp2mgy.js new file mode 100644 index 00000000..a375a5b6 --- /dev/null +++ b/assets/erDiagram-09d1c15f-kySp2mgy.js @@ -0,0 +1,51 @@ +import{c as Z,s as Et,g as mt,b as gt,a as kt,C as xt,D as Rt,l as V,E as Ot,h as rt,A as bt,i as Nt,F as Tt,G as At}from"./mermaid.core-Bc1j4tiv.js";import{G as Mt}from"./graph-DkiqFSuU.js";import{l as St}from"./layout-BZLwH4ql.js";import{l as wt}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const It=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Dt(t){return typeof t=="string"&&It.test(t)}const A=[];for(let t=0;t<256;++t)A.push((t+256).toString(16).slice(1));function vt(t,e=0){return A[t[e+0]]+A[t[e+1]]+A[t[e+2]]+A[t[e+3]]+"-"+A[t[e+4]]+A[t[e+5]]+"-"+A[t[e+6]]+A[t[e+7]]+"-"+A[t[e+8]]+A[t[e+9]]+"-"+A[t[e+10]]+A[t[e+11]]+A[t[e+12]]+A[t[e+13]]+A[t[e+14]]+A[t[e+15]]}function Lt(t){if(!Dt(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}function Bt(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r>>32-e}function Ft(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;x=g,g=m,m=it(_,30)>>>0,_=h,h=I}r[0]=r[0]+h>>>0,r[1]=r[1]+_>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+x>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}const Wt=Yt("v5",80,Ft);var at=function(){var t=function(S,a,n,c){for(n=n||{},c=S.length;c--;n[S[c]]=a);return n},e=[6,8,10,20,22,24,26,27,28],r=[1,10],u=[1,11],l=[1,12],p=[1,13],f=[1,14],o=[1,15],h=[1,21],_=[1,22],m=[1,23],g=[1,24],x=[1,25],y=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],N=[1,34],I=[27,28,46,47],F=[41,42,43,44,45],W=[17,34],C=[1,54],T=[1,53],M=[17,34,36,38],R={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(a,n,c,d,E,i,K){var s=i.length-1;switch(E){case 1:break;case 2:this.$=[];break;case 3:i[s-1].push(i[s]),this.$=i[s-1];break;case 4:case 5:this.$=i[s];break;case 6:case 7:this.$=[];break;case 8:d.addEntity(i[s-4]),d.addEntity(i[s-2]),d.addRelationship(i[s-4],i[s],i[s-2],i[s-3]);break;case 9:d.addEntity(i[s-3]),d.addAttributes(i[s-3],i[s-1]);break;case 10:d.addEntity(i[s-2]);break;case 11:d.addEntity(i[s]);break;case 12:d.addEntity(i[s-6],i[s-4]),d.addAttributes(i[s-6],i[s-1]);break;case 13:d.addEntity(i[s-5],i[s-3]);break;case 14:d.addEntity(i[s-3],i[s-1]);break;case 15:case 16:this.$=i[s].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=i[s].trim(),d.setAccDescription(this.$);break;case 19:case 43:this.$=i[s];break;case 20:case 41:case 42:this.$=i[s].replace(/"/g,"");break;case 21:case 29:this.$=[i[s]];break;case 22:i[s].push(i[s-1]),this.$=i[s];break;case 23:this.$={attributeType:i[s-1],attributeName:i[s]};break;case 24:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeKeyTypeList:i[s]};break;case 25:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeComment:i[s]};break;case 26:this.$={attributeType:i[s-3],attributeName:i[s-2],attributeKeyTypeList:i[s-1],attributeComment:i[s]};break;case 27:case 28:case 31:this.$=i[s];break;case 30:i[s-2].push(i[s]),this.$=i[s-2];break;case 32:this.$=i[s].replace(/"/g,"");break;case 33:this.$={cardA:i[s],relType:i[s-1],cardB:i[s-2]};break;case 34:this.$=d.Cardinality.ZERO_OR_ONE;break;case 35:this.$=d.Cardinality.ZERO_OR_MORE;break;case 36:this.$=d.Cardinality.ONE_OR_MORE;break;case 37:this.$=d.Cardinality.ONLY_ONE;break;case 38:this.$=d.Cardinality.MD_PARENT;break;case 39:this.$=d.Identification.NON_IDENTIFYING;break;case 40:this.$=d.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:h,42:_,43:m,44:g,45:x}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(y,[2,19]),t(y,[2,20]),t(e,[2,4]),{11:29,27:f,28:o},{16:30,17:[1,31],29:32,30:33,34:N},{11:35,27:f,28:o},{40:36,46:[1,37],47:[1,38]},t(I,[2,34]),t(I,[2,35]),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:N},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:h,42:_,43:m,44:g,45:x},t(F,[2,39]),t(F,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(W,[2,23],{32:50,33:51,35:52,37:C,38:T}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(W,[2,24],{33:56,36:[1,57],38:T}),t(W,[2,25]),t(M,[2,29]),t(W,[2,32]),t(M,[2,31]),{16:58,17:[1,59],29:32,30:33,34:N},t(W,[2,26]),{35:60,37:C},{17:[1,61]},t(e,[2,13]),t(M,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(a,n){if(n.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=n,c}},parse:function(a){var n=this,c=[0],d=[],E=[null],i=[],K=this.table,s="",Q=0,st=0,ft=2,ot=1,yt=i.slice.call(arguments,1),b=Object.create(this.lexer),G={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(G.yy[J]=this.yy[J]);b.setInput(a,G.yy),G.yy.lexer=b,G.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var $=b.yylloc;i.push($);var pt=b.options&&b.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var Y;return Y=d.pop()||b.lex()||ot,typeof Y!="number"&&(Y instanceof Array&&(d=Y,Y=d.pop()),Y=n.symbols_[Y]||Y),Y}for(var w,H,D,tt,z={},j,P,lt,q;;){if(H=c[c.length-1],this.defaultActions[H]?D=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=_t()),D=K[H]&&K[H][w]),typeof D>"u"||!D.length||!D[0]){var et="";q=[];for(j in K[H])this.terminals_[j]&&j>ft&&q.push("'"+this.terminals_[j]+"'");b.showPosition?et="Parse error on line "+(Q+1)+`: +`+b.showPosition()+` +Expecting `+q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":et="Parse error on line "+(Q+1)+": Unexpected "+(w==ot?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(et,{text:b.match,token:this.terminals_[w]||w,line:b.yylineno,loc:$,expected:q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(D[0]){case 1:c.push(w),E.push(b.yytext),i.push(b.yylloc),c.push(D[1]),w=null,st=b.yyleng,s=b.yytext,Q=b.yylineno,$=b.yylloc;break;case 2:if(P=this.productions_[D[1]][1],z.$=E[E.length-P],z._$={first_line:i[i.length-(P||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(P||1)].first_column,last_column:i[i.length-1].last_column},pt&&(z._$.range=[i[i.length-(P||1)].range[0],i[i.length-1].range[1]]),tt=this.performAction.apply(z,[s,st,Q,G.yy,D[1],E,i].concat(yt)),typeof tt<"u")return tt;P&&(c=c.slice(0,-1*P*2),E=E.slice(0,-1*P),i=i.slice(0,-1*P)),c.push(this.productions_[D[1]][0]),E.push(z.$),i.push(z._$),lt=K[c[c.length-2]][c[c.length-1]],c.push(lt);break;case 3:return!0}}return!0}},O=function(){var S={EOF:1,parseError:function(n,c){if(this.yy.parser)this.yy.parser.parseError(n,c);else throw new Error(n)},setInput:function(a,n){return this.yy=n||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var n=a.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var n=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),n=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+n+"^"},test_match:function(a,n){var c,d,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),d=a[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var i in E)this[i]=E[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,n,c,d;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),i=0;in[0].length)){if(n=c,d=i,this.options.backtrack_lexer){if(a=this.test_match(c,E[i]),a!==!1)return a;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(a=this.test_match(n,E[d]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,c,d,E){switch(d){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return c.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return c.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return S}();R.lexer=O;function v(){this.yy={}}return v.prototype=R,R.Parser=v,new v}();at.parser=at;const Ut=at;let U={},nt=[];const Gt={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Ht={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},dt=function(t,e=void 0){return U[t]===void 0?(U[t]={attributes:[],alias:e},V.info("Added new entity :",t)):U[t]&&!U[t].alias&&e&&(U[t].alias=e,V.info(`Add alias '${e}' to entity '${t}'`)),U[t]},zt=()=>U,Kt=function(t,e){let r=dt(t),u;for(u=e.length-1;u>=0;u--)r.attributes.push(e[u]),V.debug("Added attribute ",e[u].attributeName)},Vt=function(t,e,r,u){let l={entityA:t,roleA:e,entityB:r,relSpec:u};nt.push(l),V.debug("Added new relationship :",l)},Xt=()=>nt,Qt=function(){U={},nt=[],Ot()},jt={Cardinality:Gt,Identification:Ht,getConfig:()=>Z().er,addEntity:dt,addAttributes:Kt,getEntities:zt,addRelationship:Vt,getRelationships:Xt,clear:Qt,setAccTitle:Et,getAccTitle:mt,setAccDescription:gt,getAccDescription:kt,setDiagramTitle:xt,getDiagramTitle:Rt},L={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},qt=function(t,e){let r;t.append("defs").append("marker").attr("id",L.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},B={ERMarkers:L,insertMarkers:qt},Jt=/[^\dA-Za-z](\W)*/g;let k={},X=new Map;const $t=function(t){const e=Object.keys(t);for(const r of e)k[r]=t[r]},te=(t,e,r)=>{const u=k.entityPadding/3,l=k.entityPadding/3,p=k.fontSize*.85,f=e.node().getBBox(),o=[];let h=!1,_=!1,m=0,g=0,x=0,y=0,N=f.height+u*2,I=1;r.forEach(T=>{T.attributeKeyTypeList!==void 0&&T.attributeKeyTypeList.length>0&&(h=!0),T.attributeComment!==void 0&&(_=!0)}),r.forEach(T=>{const M=`${e.node().id}-attr-${I}`;let R=0;const O=At(T.attributeType),v=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(O),S=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeName),a={};a.tn=v,a.nn=S;const n=v.node().getBBox(),c=S.node().getBBox();if(m=Math.max(m,n.width),g=Math.max(g,c.width),R=Math.max(n.height,c.height),h){const d=T.attributeKeyTypeList!==void 0?T.attributeKeyTypeList.join(","):"",E=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(d);a.kn=E;const i=E.node().getBBox();x=Math.max(x,i.width),R=Math.max(R,i.height)}if(_){const d=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeComment||"");a.cn=d;const E=d.node().getBBox();y=Math.max(y,E.width),R=Math.max(R,E.height)}a.height=R,o.push(a),N+=R+u*2,I+=1});let F=4;h&&(F+=2),_&&(F+=2);const W=m+g+x+y,C={width:Math.max(k.minEntityWidth,Math.max(f.width+k.entityPadding*2,W+l*F)),height:r.length>0?N:Math.max(k.minEntityHeight,f.height+k.entityPadding*2)};if(r.length>0){const T=Math.max(0,(C.width-W-l*F)/(F/2));e.attr("transform","translate("+C.width/2+","+(u+f.height/2)+")");let M=f.height+u*2,R="attributeBoxOdd";o.forEach(O=>{const v=M+u+O.height/2;O.tn.attr("transform","translate("+l+","+v+")");const S=t.insert("rect","#"+O.tn.node().id).classed(`er ${R}`,!0).attr("x",0).attr("y",M).attr("width",m+l*2+T).attr("height",O.height+u*2),a=parseFloat(S.attr("x"))+parseFloat(S.attr("width"));O.nn.attr("transform","translate("+(a+l)+","+v+")");const n=t.insert("rect","#"+O.nn.node().id).classed(`er ${R}`,!0).attr("x",a).attr("y",M).attr("width",g+l*2+T).attr("height",O.height+u*2);let c=parseFloat(n.attr("x"))+parseFloat(n.attr("width"));if(h){O.kn.attr("transform","translate("+(c+l)+","+v+")");const d=t.insert("rect","#"+O.kn.node().id).classed(`er ${R}`,!0).attr("x",c).attr("y",M).attr("width",x+l*2+T).attr("height",O.height+u*2);c=parseFloat(d.attr("x"))+parseFloat(d.attr("width"))}_&&(O.cn.attr("transform","translate("+(c+l)+","+v+")"),t.insert("rect","#"+O.cn.node().id).classed(`er ${R}`,"true").attr("x",c).attr("y",M).attr("width",y+l*2+T).attr("height",O.height+u*2)),M+=O.height+u*2,R=R==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else C.height=Math.max(k.minEntityHeight,N),e.attr("transform","translate("+C.width/2+","+C.height/2+")");return C},ee=function(t,e,r){const u=Object.keys(e);let l;return u.forEach(function(p){const f=oe(p,"entity");X.set(p,f);const o=t.append("g").attr("id",f);l=l===void 0?f:l;const h="text-"+f,_=o.append("text").classed("er entityLabel",!0).attr("id",h).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e[p].alias??p),{width:m,height:g}=te(o,_,e[p].attributes),y=o.insert("rect","#"+h).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",m).attr("height",g).node().getBBox();r.setNode(f,{width:y.width,height:y.height,shape:"rect",id:f})}),l},re=function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},ut=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},ie=function(t,e){return t.forEach(function(r){e.setEdge(X.get(r.entityA),X.get(r.entityB),{relationship:r},ut(r))}),t};let ct=0;const ae=function(t,e,r,u,l){ct++;const p=r.edge(X.get(e.entityA),X.get(e.entityB),ut(e)),f=wt().x(function(N){return N.x}).y(function(N){return N.y}).curve(Tt),o=t.insert("path","#"+u).classed("er relationshipLine",!0).attr("d",f(p.points)).style("stroke",k.stroke).style("fill","none");e.relSpec.relType===l.db.Identification.NON_IDENTIFYING&&o.attr("stroke-dasharray","8,8");let h="";switch(k.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),e.relSpec.cardA){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_END+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_END+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_END+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONLY_ONE_END+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-end","url("+h+"#"+B.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_START+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_START+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_START+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONLY_ONE_START+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-start","url("+h+"#"+B.ERMarkers.MD_PARENT_START+")");break}const _=o.node().getTotalLength(),m=o.node().getPointAtLength(_*.5),g="rel"+ct,y=t.append("text").classed("er relationshipLabel",!0).attr("id",g).attr("x",m.x).attr("y",m.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+g).classed("er relationshipLabelBox",!0).attr("x",m.x-y.width/2).attr("y",m.y-y.height/2).attr("width",y.width).attr("height",y.height)},ne=function(t,e,r,u){k=Z().er,V.info("Drawing ER diagram");const l=Z().securityLevel;let p;l==="sandbox"&&(p=rt("#i"+e));const o=(l==="sandbox"?rt(p.nodes()[0].contentDocument.body):rt("body")).select(`[id='${e}']`);B.insertMarkers(o,k);let h;h=new Mt({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:k.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=ee(o,u.db.getEntities(),h),m=ie(u.db.getRelationships(),h);St(h),re(o,h),m.forEach(function(I){ae(o,I,h,_,u)});const g=k.diagramPadding;bt.insertTitle(o,"entityTitleText",k.titleTopMargin,u.db.getDiagramTitle());const x=o.node().getBBox(),y=x.width+g*2,N=x.height+g*2;Nt(o,N,y,k.useMaxWidth),o.attr("viewBox",`${x.x-g} ${x.y-g} ${y} ${N}`)},se="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function oe(t="",e=""){const r=t.replace(Jt,"");return`${ht(e)}${ht(r)}${Wt(t,se)}`}function ht(t=""){return t.length>0?`${t}-`:""}const le={setConf:$t,draw:ne},ce=t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,he=ce,me={parser:Ut,db:jt,renderer:le,styles:he};export{me as diagram}; diff --git a/assets/flowDb-c1833063-Dab_m0tb.js b/assets/flowDb-c1833063-Dab_m0tb.js new file mode 100644 index 00000000..96b04dfb --- /dev/null +++ b/assets/flowDb-c1833063-Dab_m0tb.js @@ -0,0 +1,10 @@ +import{c as et,V as me,s as ye,g as ve,a as Ve,b as Le,C as Ie,D as Re,l as J1,A as dt,E as Ne,j as we,h as w1}from"./mermaid.core-Bc1j4tiv.js";var pt=function(){var e=function(f1,a,o,f){for(o=o||{},f=f1.length;f--;o[f1[f]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],w=[1,16],X=[1,23],o1=[1,25],p1=[1,26],A1=[1,27],S=[1,49],k=[1,48],l1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],x=[1,44],B=[1,46],m=[1,42],y=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],Y1=[1,34],j1=[1,35],z1=[1,36],X1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],q=[1,61],Q=[1,60],Z=[1,62],H1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],C1=[1,87],S1=[1,94],_1=[1,90],x1=[1,95],B1=[1,86],W1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],Ct=[1,145],St=[1,130],_t=[1,132],xt=[1,136],Bt=[1,137],mt=[1,138],yt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],wt=[1,134],Ot=[1,129],Pt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],p=[1,169],O=[1,165],P=[1,166],A=[1,170],d=[1,167],E=[1,168],m1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],h1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],J=[1,235],$=[1,233],t1=[1,237],e1=[1,231],s1=[1,232],u1=[1,234],i1=[1,236],r1=[1,238],y1=[1,255],Kt=[8,9,11,103],W=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,f,r,C,t,N1){var s=t.length-1;switch(C){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var Y=r.destructLink(t[s],t[s-2]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var Y=r.destructLink(t[s]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,33:24,34:o1,36:p1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:q,9:Q,11:Z,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:q,9:Q,11:Z,21:66},{8:q,9:Q,11:Z,21:67},{8:q,9:Q,11:Z,21:68},{8:q,9:Q,11:Z,21:69},{8:q,9:Q,11:Z,21:70},{8:q,9:Q,10:[1,71],11:Z,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(H1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(W1,[2,47]),e(W1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:S,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:S,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:Ct,42:St,58:_t,73:xt,77:[1,124],78:[1,125],80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(H1,[2,45],{42:Gt}),{42:S,45:150,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:S,45:154,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{42:S,45:155,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:S,45:162,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:171,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:174,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:175,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:176,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:181,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:182,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:183,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(H1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(m1,[2,73]),e(m1,[2,75]),e(m1,[2,76]),e(m1,[2,161]),e(m1,[2,162]),{8:q,9:Q,10:gt,11:Z,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:Ct,42:St,58:_t,73:xt,80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,193],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:I1,18:194},{10:[1,195],42:S,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:S,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:S,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(W1,[2,50],{110:109,42:S,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:p,79:208,113:A,114:d,115:E},e(h1,[2,79]),e(h1,[2,81]),e(h1,[2,82]),e(h1,[2,146]),e(h1,[2,147]),e(h1,[2,148]),e(h1,[2,149]),{47:[1,209],65:p,79:208,113:A,114:d,115:E},{30:210,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{49:[1,211],65:p,79:208,113:A,114:d,115:E},{51:[1,212],65:p,79:208,113:A,114:d,115:E},{53:[1,213],65:p,79:208,113:A,114:d,115:E},{55:[1,214],65:p,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:p,79:208,113:A,114:d,115:E},{64:[1,217],65:p,79:208,113:A,114:d,115:E},{30:218,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{31:[1,219],65:p,79:208,113:A,114:d,115:E},{65:p,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:p,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(H1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:p,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(m1,[2,74]),{30:225,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:S,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{10:J,58:$,81:t1,89:228,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:239,101:[1,240],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:241,101:[1,242],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{102:[1,243]},{10:J,58:$,81:t1,89:244,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{42:S,45:245,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(h1,[2,80]),e(N,[2,52]),{49:[1,250],65:p,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:p,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,254],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(W1,[2,48]),e(T,[2,114],{103:y1}),e(Kt,[2,123],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(W,[2,125]),e(W,[2,127]),e(W,[2,128]),e(W,[2,129]),e(W,[2,130]),e(W,[2,131]),e(W,[2,132]),e(W,[2,133]),e(W,[2,134]),e(T,[2,115],{103:y1}),{10:[1,257]},e(T,[2,116],{103:y1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:y1}),e(T,[2,99],{110:109,42:S,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:q,9:Q,11:Z,21:264},e(b,[2,34]),{10:J,58:$,81:t1,102:e1,104:265,105:230,106:s1,107:u1,108:i1,109:r1},e(W,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:x1,113:B1}),e(T,[2,107]),{31:[1,273],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,274],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:J,58:$,81:t1,89:275,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:276,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:y1}),e(T,[2,118],{103:y1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var f=new Error(a);throw f.hash=o,f}},parse:function(a){var o=this,f=[0],r=[],C=[null],t=[],N1=this.table,s="",Y=0,Yt=0,Se=2,jt=1,_e=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var xe=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var a1;return a1=r.pop()||_.lex()||jt,typeof a1!="number"&&(a1 instanceof Array&&(r=a1,a1=r.pop()),a1=o.symbols_[a1]||a1),a1}for(var G,E1,j,ht,v1={},q1,n1,zt,Q1;;){if(E1=f[f.length-1],this.defaultActions[E1]?j=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Be()),j=N1[E1]&&N1[E1][G]),typeof j>"u"||!j.length||!j[0]){var ft="";Q1=[];for(q1 in N1[E1])this.terminals_[q1]&&q1>Se&&Q1.push("'"+this.terminals_[q1]+"'");_.showPosition?ft="Parse error on line "+(Y+1)+`: +`+_.showPosition()+` +Expecting `+Q1.join(", ")+", got '"+(this.terminals_[G]||G)+"'":ft="Parse error on line "+(Y+1)+": Unexpected "+(G==jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(ft,{text:_.match,token:this.terminals_[G]||G,line:_.yylineno,loc:lt,expected:Q1})}if(j[0]instanceof Array&&j.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E1+", token: "+G);switch(j[0]){case 1:f.push(G),C.push(_.yytext),t.push(_.yylloc),f.push(j[1]),G=null,Yt=_.yyleng,s=_.yytext,Y=_.yylineno,lt=_.yylloc;break;case 2:if(n1=this.productions_[j[1]][1],v1.$=C[C.length-n1],v1._$={first_line:t[t.length-(n1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(n1||1)].first_column,last_column:t[t.length-1].last_column},xe&&(v1._$.range=[t[t.length-(n1||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(v1,[s,Yt,Y,d1.yy,j[1],C,t].concat(_e)),typeof ht<"u")return ht;n1&&(f=f.slice(0,-1*n1*2),C=C.slice(0,-1*n1),t=t.slice(0,-1*n1)),f.push(this.productions_[j[1]][0]),C.push(v1.$),t.push(v1._$),zt=N1[f[f.length-2]][f[f.length-1]],f.push(zt);break;case 3:return!0}}return!0}},Ce=function(){var f1={EOF:1,parseError:function(o,f){if(this.yy.parser)this.yy.parser.parseError(o,f);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,f=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===r.length?this.yylloc.first_column:0)+r[r.length-f.length].length-f[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+o+"^"},test_match:function(a,o){var f,r,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),r=a[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],f=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var t in C)this[t]=C[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,f,r;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),t=0;to[0].length)){if(o=f,r=t,this.options.backtrack_lexer){if(a=this.test_match(f,C[t]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,C[r]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(o,f,r,C){switch(r){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return o.lex.firstGraph()&&this.begin("dir"),12;case 30:return o.lex.firstGraph()&&this.begin("dir"),12;case 31:return o.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return f1}();at.lexer=Ce;function ct(){this.yy={}}return ct.prototype=at,at.Parser=ct,new ct}();pt.parser=pt;const Xe=pt,Oe="flowchart-";let Xt=0,L1=et(),D={},H=[],V1={},c1=[],$1={},tt={},Z1=0,At=!0,z,st,ut=[];const it=e=>we.sanitizeText(e,L1),P1=function(e){const u=Object.keys(D);for(const i of u)if(D[i].id===e)return D[i].domId;return e},Ht=function(e,u,i,n,c,l,h={}){let U,F=e;F!==void 0&&F.trim().length!==0&&(D[F]===void 0&&(D[F]={id:F,labelType:"text",domId:Oe+F+"-"+Xt,styles:[],classes:[]}),Xt++,u!==void 0?(L1=et(),U=it(u.text.trim()),D[F].labelType=u.type,U[0]==='"'&&U[U.length-1]==='"'&&(U=U.substring(1,U.length-1)),D[F].text=U):D[F].text===void 0&&(D[F].text=e),i!==void 0&&(D[F].type=i),n!=null&&n.forEach(function(w){D[F].styles.push(w)}),c!=null&&c.forEach(function(w){D[F].classes.push(w)}),l!==void 0&&(D[F].dir=l),D[F].props===void 0?D[F].props=h:h!==void 0&&Object.assign(D[F].props,h))},Wt=function(e,u,i){const l={start:e,end:u,type:void 0,text:"",labelType:"text"};J1.info("abc78 Got edge...",l);const h=i.text;if(h!==void 0&&(l.text=it(h.text.trim()),l.text[0]==='"'&&l.text[l.text.length-1]==='"'&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=h.type),i!==void 0&&(l.type=i.type,l.stroke=i.stroke,l.length=i.length),(l==null?void 0:l.length)>10&&(l.length=10),H.length<(L1.maxEdges??500))J1.info("abc78 pushing edge..."),H.push(l);else throw new Error(`Edge limit exceeded. ${H.length} edges found, but the limit is ${L1.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},qt=function(e,u,i){J1.info("addLink (abc78)",e,u,i);let n,c;for(n=0;n=H.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${H.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?H.defaultStyle=u:(dt.isSubstringInArray("fill",u)===-1&&u.push("fill:none"),H[i].style=u)})},Jt=function(e,u){e.split(",").forEach(function(i){V1[i]===void 0&&(V1[i]={id:i,styles:[],textStyles:[]}),u!=null&&u.forEach(function(n){if(n.match("color")){const c=n.replace("fill","bgFill").replace("color","fill");V1[i].textStyles.push(c)}V1[i].styles.push(n)})})},$t=function(e){z=e,z.match(/.*/)&&(z="LR"),z.match(/.*v/)&&(z="TB"),z==="TD"&&(z="TB")},rt=function(e,u){e.split(",").forEach(function(i){let n=i;D[n]!==void 0&&D[n].classes.push(u),$1[n]!==void 0&&$1[n].classes.push(u)})},Pe=function(e,u){e.split(",").forEach(function(i){u!==void 0&&(tt[st==="gen-1"?P1(i):i]=it(u))})},Ue=function(e,u,i){let n=P1(e);if(et().securityLevel!=="loose"||u===void 0)return;let c=[];if(typeof i=="string"){c=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l")),c.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),w1(this).classed("hover",!1)})};ut.push(ce);const oe=function(e="gen-1"){D={},V1={},H=[],ut=[ce],c1=[],$1={},Z1=0,tt={},At=!0,st=e,L1=et(),Ne()},le=e=>{st=e||"gen-2"},he=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},fe=function(e,u,i){let n=e.text.trim(),c=i.text;e===i&&i.text.match(/\s/)&&(n=void 0);function l(X){const o1={boolean:{},number:{},string:{}},p1=[];let A1;return{nodeList:X.filter(function(k){const l1=typeof k;return k.stmt&&k.stmt==="dir"?(A1=k.value,!1):k.trim()===""?!1:l1 in o1?o1[l1].hasOwnProperty(k)?!1:o1[l1][k]=!0:p1.includes(k)?!1:p1.push(k)}),dir:A1}}let h=[];const{nodeList:U,dir:F}=l(h.concat.apply(h,u));if(h=U,st==="gen-1")for(let X=0;X2e3)return;if(pe[O1]=u,c1[u].id===e)return{result:!0,count:0};let n=0,c=1;for(;n=0){const h=Ae(e,l);if(h.result)return{result:!0,count:c+h.count};c=c+h.count}n=n+1}return{result:!1,count:c}},de=function(e){return pe[e]},Ee=function(){O1=-1,c1.length>0&&Ae("none",c1.length-1)},ke=function(){return c1},be=()=>At?(At=!1,!0):!1,Me=e=>{let u=e.trim(),i="arrow_open";switch(u[0]){case"<":i="arrow_point",u=u.slice(1);break;case"x":i="arrow_cross",u=u.slice(1);break;case"o":i="arrow_circle",u=u.slice(1);break}let n="normal";return u.includes("=")&&(n="thick"),u.includes(".")&&(n="dotted"),{type:i,stroke:n}},Ke=(e,u)=>{const i=u.length;let n=0;for(let c=0;c{const u=e.trim();let i=u.slice(0,-1),n="arrow_open";switch(u.slice(-1)){case"x":n="arrow_cross",u[0]==="x"&&(n="double_"+n,i=i.slice(1));break;case">":n="arrow_point",u[0]==="<"&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",u[0]==="o"&&(n="double_"+n,i=i.slice(1));break}let c="normal",l=i.length-1;i[0]==="="&&(c="thick"),i[0]==="~"&&(c="invisible");let h=Ke(".",i);return h&&(c="dotted",l=h),{type:n,stroke:c,length:l}},ge=(e,u)=>{const i=Ye(e);let n;if(u){if(n=Me(u),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i},De=(e,u)=>{let i=!1;return e.forEach(n=>{n.nodes.indexOf(u)>=0&&(i=!0)}),i},Fe=(e,u)=>{const i=[];return e.nodes.forEach((n,c)=>{De(u,n)||i.push(e.nodes[c])}),{nodes:i}},Te={firstGraph:be},je={defaultConfig:()=>me.flowchart,setAccTitle:ye,getAccTitle:ve,getAccDescription:Ve,setAccDescription:Le,addVertex:Ht,lookUpDomId:P1,addLink:qt,updateLinkInterpolate:Qt,updateLink:Zt,addClass:Jt,setDirection:$t,setClass:rt,setTooltip:Pe,getTooltip:ee,setClickEvent:se,setLink:te,bindFunctions:ue,getDirection:ie,getVertices:re,getEdges:ne,getClasses:ae,clear:oe,setGen:le,defaultStyle:he,addSubGraph:fe,getDepthFirstPos:de,indexNodes:Ee,getSubGraphs:ke,destructLink:ge,lex:Te,exists:De,makeUniq:Fe,setDiagramTitle:Ie,getDiagramTitle:Re},He=Object.freeze(Object.defineProperty({__proto__:null,addClass:Jt,addLink:qt,addSingleLink:Wt,addSubGraph:fe,addVertex:Ht,bindFunctions:ue,clear:oe,default:je,defaultStyle:he,destructLink:ge,firstGraph:be,getClasses:ae,getDepthFirstPos:de,getDirection:ie,getEdges:ne,getSubGraphs:ke,getTooltip:ee,getVertices:re,indexNodes:Ee,lex:Te,lookUpDomId:P1,setClass:rt,setClickEvent:se,setDirection:$t,setGen:le,setLink:te,updateLink:Zt,updateLinkInterpolate:Qt},Symbol.toStringTag,{value:"Module"}));export{He as d,je as f,Xe as p}; diff --git a/assets/flowDiagram-b222e15a-DarGeLKH.js b/assets/flowDiagram-b222e15a-DarGeLKH.js new file mode 100644 index 00000000..f1363a11 --- /dev/null +++ b/assets/flowDiagram-b222e15a-DarGeLKH.js @@ -0,0 +1,4 @@ +import{p as Lt,f as V}from"./flowDb-c1833063-Dab_m0tb.js";import{h as S,f as tt,G as _t}from"./graph-DkiqFSuU.js";import{h as x,n as U,o as Y,p as et,c as G,r as rt,j as at,l as R,q as z,t as Et}from"./mermaid.core-Bc1j4tiv.js";import{u as Tt,r as Nt,p as At,l as Ct,d as M}from"./layout-BZLwH4ql.js";import{a as N,b as nt,i as st,c as E,e as it,d as ot,f as It,g as Bt,s as Mt}from"./styles-483fbfea-DnQzRaYr.js";import{l as Dt}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./index-01f381cb-wllKWk9M.js";import"./clone-CH2yQtrO.js";import"./edges-066a5561-CYMTSPpJ.js";import"./createText-ca0c5216-bYdpW0Zp.js";import"./channel-BQsRZjn0.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Rt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Gt(r,e){return fetch(r,e).then(Rt)}function Pt(r){return(e,t)=>Gt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Ut=Pt("image/svg+xml"),H={normal:Wt,vee:Vt,undirected:zt};function $t(r){H=r}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Yt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Ht(r,e){for(var t=r.append("text"),n=Xt(e.label).split(` +`),a=0;a0}function T(r,e,t){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(p){i=Math.min(i,p.x),o=Math.min(o,p.y)});for(var c=n-r.width/2-i,d=a-r.height/2-o,l=0;l1&&s.sort(function(p,y){var f=p.x-t.x,g=p.y-t.y,k=Math.sqrt(f*f+g*g),I=y.x-t.x,_=y.y-t.y,$=Math.sqrt(I*I+_*_);return k<$?-1:k===$?0:1}),s[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",r),r)}function Z(r,e){var t=r.x,n=r.y,a=e.x-t,s=e.y-n,i=r.width/2,o=r.height/2,c,d;return Math.abs(s)*i>Math.abs(a)*o?(s<0&&(o=-o),c=s===0?0:o*a/s,d=o):(a<0&&(i=-i),c=i,d=a===0?0:i*s/a),{x:t+c,y:n+d}}var K={rect:oe,ellipse:le,circle:ce,diamond:de};function ie(r){K=r}function oe(r,e,t){var n=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(a){return Z(t,a)},n}function le(r,e,t){var n=e.width/2,a=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",n).attr("ry",a);return t.intersect=function(i){return ct(t,n,a,i)},s}function ce(r,e,t){var n=Math.max(e.width,e.height)/2,a=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",n);return t.intersect=function(s){return ne(t,n,s)},a}function de(r,e,t){var n=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,s=[{x:0,y:-a},{x:-n,y:0},{x:0,y:a},{x:n,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return T(t,s,o)},i}function he(){var r=function(e,t){pe(t);var n=D(e,"output"),a=D(n,"clusters"),s=D(n,"edgePaths"),i=F(D(n,"edgeLabels"),t),o=Q(D(n,"nodes"),t,K);Ct(t),ae(o,t),re(i,t),q(s,t,H);var c=X(a,t);ee(c,t),ve(t)};return r.createNodes=function(e){return arguments.length?(te(e),r):Q},r.createClusters=function(e){return arguments.length?(Ft(e),r):X},r.createEdgeLabels=function(e){return arguments.length?(qt(e),r):F},r.createEdgePaths=function(e){return arguments.length?(Qt(e),r):q},r.shapes=function(e){return arguments.length?(ie(e),r):K},r.arrows=function(e){return arguments.length?($t(e),r):H},r}var ue={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},fe={arrowhead:"normal",curve:U};function pe(r){r.nodes().forEach(function(e){var t=r.node(e);!S(t,"label")&&!r.children(e).length&&(t.label=e),S(t,"paddingX")&&M(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),S(t,"paddingY")&&M(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),S(t,"padding")&&M(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),M(t,ue),tt(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(n){t[n]=Number(t[n])}),S(t,"width")&&(t._prevWidth=t.width),S(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);S(t,"label")||(t.label=""),M(t,fe)})}function ve(r){tt(r.nodes(),function(e){var t=r.node(e);S(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,S(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function D(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function dt(r,e,t){const n=e.width,a=e.height,s=(n+a)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=A(r,s,s,i);return t.intersect=function(c){return T(t,i,c)},o}function ht(r,e,t){const a=e.height,s=a/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],c=A(r,i,a,o);return t.intersect=function(d){return T(t,o,d)},c}function ut(r,e,t){const n=e.width,a=e.height,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ft(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function pt(r,e,t){const n=e.width,a=e.height,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function vt(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function gt(r,e,t){const n=e.width,a=e.height,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function yt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function wt(r,e,t){const n=e.height,a=e.width+n/4,s=r.insert("rect",":first-child").attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return t.intersect=function(i){return Z(t,i)},s}function mt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function xt(r,e,t){const n=e.width,a=n/2,s=a/(2.5+n/50),i=e.height+s,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+i+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-n/2+","+-(i/2+s)+")");return t.intersect=function(d){const l=Z(t,d),v=l.x-t.x;if(a!=0&&(Math.abs(v)t.height/2-s)){let h=s*s*(1-v*v/(a*a));h!=0&&(h=Math.sqrt(h)),h=s-h,d.y-t.y>0&&(h=-h),l.y+=h}return l},c}function ge(r){r.shapes().question=dt,r.shapes().hexagon=ht,r.shapes().stadium=wt,r.shapes().subroutine=mt,r.shapes().cylinder=xt,r.shapes().rect_left_inv_arrow=ut,r.shapes().lean_right=ft,r.shapes().lean_left=pt,r.shapes().trapezoid=vt,r.shapes().inv_trapezoid=gt,r.shapes().rect_right_inv_arrow=yt}function ye(r){r({question:dt}),r({hexagon:ht}),r({stadium:wt}),r({subroutine:mt}),r({cylinder:xt}),r({rect_left_inv_arrow:ut}),r({lean_right:ft}),r({lean_left:pt}),r({trapezoid:vt}),r({inv_trapezoid:gt}),r({rect_right_inv_arrow:yt})}function A(r,e,t,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const we={addToRender:ge,addToRenderV2:ye},bt={},me=function(r){const e=Object.keys(r);for(const t of e)bt[t]=r[t]},kt=async function(r,e,t,n,a,s){const i=n?n.select(`[id="${t}"]`):x(`[id="${t}"]`),o=a||document,c=Object.keys(r);for(const d of c){const l=r[d];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=Y(l.styles);let u=l.text!==void 0?l.text:l.id,p;if(et(G().flowchart.htmlLabels)){const g={label:await rt(u.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``),G())};p=nt(i,g).node(),p.parentNode.removeChild(p)}else{const g=o.createElementNS("http://www.w3.org/2000/svg","text");g.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=u.split(at.lineBreakRegex);for(const I of k){const _=o.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","1"),_.textContent=I,g.appendChild(_)}p=g}let y=0,f="";switch(l.type){case"round":y=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}R.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:p,rx:y,ry:y,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})}},St=async function(r,e,t){let n=0,a,s;if(r.defaultStyle!==void 0){const i=Y(r.defaultStyle);a=i.style,s=i.labelStyle}for(const i of r){n++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,d="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const u=Y(i.style);v=u.style,h=u.labelStyle}else switch(i.stroke){case"normal":v="fill:none",a!==void 0&&(v=a),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=z(i.interpolate,U):r.defaultInterpolate!==void 0?l.curve=z(r.defaultInterpolate,U):l.curve=z(bt.curve,U),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",et(G().flowchart.htmlLabels)?(l.labelType="html",l.label=`${await rt(i.text.replace(/fa[blrs]?:fa-[\w-]+/g,u=>``),G())}`):(l.labelType="text",l.label=i.text.replace(at.lineBreakRegex,` +`),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+d,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,n)}},xe=function(r,e){return R.info("Extracting classes"),e.db.getClasses()},be=async function(r,e,t,n){R.info("Drawing flowchart");const{securityLevel:a,flowchart:s}=G();let i;a==="sandbox"&&(i=x("#i"+e));const o=a==="sandbox"?x(i.nodes()[0].contentDocument.body):x("body"),c=a==="sandbox"?i.nodes()[0].contentDocument:document;let d=n.db.getDirection();d===void 0&&(d="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new _t({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let u;const p=n.db.getSubGraphs();for(let w=p.length-1;w>=0;w--)u=p[w],n.db.addVertex(u.id,u.title,"group",void 0,u.classes);const y=n.db.getVertices();R.warn("Get vertices",y);const f=n.db.getEdges();let g=0;for(g=p.length-1;g>=0;g--){u=p[g],Mt("cluster").append("text");for(let w=0;w{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,ke.setConf(r.flowchart),V.clear(),V.setGen("gen-1")}};export{Pe as diagram}; diff --git a/assets/flowDiagram-v2-13329dc7-B5Y-44JY.js b/assets/flowDiagram-v2-13329dc7-B5Y-44JY.js new file mode 100644 index 00000000..3a563df0 --- /dev/null +++ b/assets/flowDiagram-v2-13329dc7-B5Y-44JY.js @@ -0,0 +1 @@ +import{p as e,f as o}from"./flowDb-c1833063-Dab_m0tb.js";import{f as t,g as a}from"./styles-483fbfea-DnQzRaYr.js";import{u as i}from"./mermaid.core-Bc1j4tiv.js";import"./graph-DkiqFSuU.js";import"./layout-BZLwH4ql.js";import"./index-01f381cb-wllKWk9M.js";import"./clone-CH2yQtrO.js";import"./edges-066a5561-CYMTSPpJ.js";import"./createText-ca0c5216-bYdpW0Zp.js";import"./line-DS2p6aKt.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-BQsRZjn0.js";import"./app-Ca-A-iaw.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram}; diff --git a/assets/flowchart-CTwbLKUk.js b/assets/flowchart-CTwbLKUk.js new file mode 100644 index 00000000..8a9dc45a --- /dev/null +++ b/assets/flowchart-CTwbLKUk.js @@ -0,0 +1,11 @@ +var wi=Object.defineProperty;var ki=(z,_,v)=>_ in z?wi(z,_,{enumerable:!0,configurable:!0,writable:!0,value:v}):z[_]=v;var J=(z,_,v)=>ki(z,typeof _!="symbol"?_+"":_,v);function Bi(z){return z&&z.__esModule&&Object.prototype.hasOwnProperty.call(z,"default")?z.default:z}var ci={exports:{}};(function(z,_){(function(v,x){z.exports=x()})(window,function(){return function(v){var x={};function O(k){if(x[k])return x[k].exports;var m=x[k]={i:k,l:!1,exports:{}};return v[k].call(m.exports,m,m.exports,O),m.l=!0,m.exports}return O.m=v,O.c=x,O.d=function(k,m,o){O.o(k,m)||Object.defineProperty(k,m,{enumerable:!0,get:o})},O.r=function(k){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(k,"__esModule",{value:!0})},O.t=function(k,m){if(1&m&&(k=O(k)),8&m||4&m&&typeof k=="object"&&k&&k.__esModule)return k;var o=Object.create(null);if(O.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:k}),2&m&&typeof k!="string")for(var h in k)O.d(o,h,(function(A){return k[A]}).bind(null,h));return o},O.n=function(k){var m=k&&k.__esModule?function(){return k.default}:function(){return k};return O.d(m,"a",m),m},O.o=function(k,m){return Object.prototype.hasOwnProperty.call(k,m)},O.p="",O(O.s=1)}([function(v,x,O){var k,m;k=[O(2)],(m=(function(o){function h(t){if(h.is(t,"function"))return A?t():o.on("raphael.DOMload",t);if(h.is(t,gt))return h._engine.create[U](h,t.splice(0,3+h.is(t[0],ft))).add(t);var e=Array.prototype.slice.call(arguments,0);if(h.is(e[e.length-1],"function")){var i=e.pop();return A?i.call(h._engine.create[U](h,e)):o.on("raphael.DOMload",function(){i.call(h._engine.create[U](h,e))})}return h._engine.create[U](h,arguments)}h.version="2.3.0",h.eve=o;var A,C,st=/[, ]+/,T={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},pt=/\{(\d+)\}/g,rt="hasOwnProperty",q={doc:document,win:window},_t={was:Object.prototype[rt].call(q.win,"Raphael"),is:q.win.Raphael},Tt=function(){this.ca=this.customAttributes={}},U="apply",W="concat",lt="ontouchstart"in window||window.TouchEvent||window.DocumentTouch&&document instanceof DocumentTouch,tt="",K=" ",B=String,I="split",D="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[I](K),yt={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},ot=B.prototype.toLowerCase,X=Math,nt=X.max,et=X.min,mt=X.abs,Ct=X.pow,Lt=X.PI,ft="number",gt="array",zt=Object.prototype.toString,u=(h._ISURL=/^url\(['"]?(.+?)['"]?\)$/i,/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i),a={NaN:1,Infinity:1,"-Infinity":1},s=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,c=X.round,g=parseFloat,w=parseInt,b=B.prototype.toUpperCase,N=h._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0,class:""},S=h._availableAnimAttrs={blur:ft,"clip-rect":"csv",cx:ft,cy:ft,fill:"colour","fill-opacity":ft,"font-size":ft,height:ft,opacity:ft,path:"path",r:ft,rx:ft,ry:ft,stroke:"colour","stroke-opacity":ft,"stroke-width":ft,transform:"transform",width:ft,x:ft,y:ft},Q=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,Z={hs:1,rg:1},it=/,?([achlmqrstvxz]),?/gi,dt=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,vt=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,xt=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,Bt=(h._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,{}),St=function(t,e){return g(t)-g(e)},wt=function(t){return t},ht=h._rectPath=function(t,e,i,r,n){return n?[["M",t+n,e],["l",i-2*n,0],["a",n,n,0,0,1,n,n],["l",0,r-2*n],["a",n,n,0,0,1,-n,n],["l",2*n-i,0],["a",n,n,0,0,1,-n,-n],["l",0,2*n-r],["a",n,n,0,0,1,n,-n],["z"]]:[["M",t,e],["l",i,0],["l",0,r],["l",-i,0],["z"]]},Pt=function(t,e,i,r){return r==null&&(r=i),[["M",t,e],["m",0,-r],["a",i,r,0,1,1,0,2*r],["a",i,r,0,1,1,0,-2*r],["z"]]},Et=h._getPath={path:function(t){return t.attr("path")},circle:function(t){var e=t.attrs;return Pt(e.cx,e.cy,e.r)},ellipse:function(t){var e=t.attrs;return Pt(e.cx,e.cy,e.rx,e.ry)},rect:function(t){var e=t.attrs;return ht(e.x,e.y,e.width,e.height,e.r)},image:function(t){var e=t.attrs;return ht(e.x,e.y,e.width,e.height)},text:function(t){var e=t._getBBox();return ht(e.x,e.y,e.width,e.height)},set:function(t){var e=t._getBBox();return ht(e.x,e.y,e.width,e.height)}},Nt=h.mapPath=function(t,e){if(!e)return t;var i,r,n,l,p,f,d;for(n=0,p=(t=we(t)).length;n',(At=Vt.firstChild).style.behavior="url(#default#VML)",!At||typeof At.adj!="object")return h.type=tt;Vt=null}function Dt(t){if(typeof t=="function"||Object(t)!==t)return t;var e=new t.constructor;for(var i in t)t[rt](i)&&(e[i]=Dt(t[i]));return e}h.svg=!(h.vml=h.type=="VML"),h._Paper=Tt,h.fn=C=Tt.prototype=h.prototype,h._id=0,h.is=function(t,e){return(e=ot.call(e))=="finite"?!a[rt](+t):e=="array"?t instanceof Array:e=="null"&&t===null||e==typeof t&&t!==null||e=="object"&&t===Object(t)||e=="array"&&Array.isArray&&Array.isArray(t)||zt.call(t).slice(8,-1).toLowerCase()==e},h.angle=function(t,e,i,r,n,l){if(n==null){var p=t-i,f=e-r;return p||f?(180+180*X.atan2(-f,-p)/Lt+360)%360:0}return h.angle(t,e,n,l)-h.angle(i,r,n,l)},h.rad=function(t){return t%360*Lt/180},h.deg=function(t){return Math.round(180*t/Lt%360*1e3)/1e3},h.snapTo=function(t,e,i){if(i=h.is(i,"finite")?i:10,h.is(t,gt)){for(var r=t.length;r--;)if(mt(t[r]-e)<=i)return t[r]}else{var n=e%(t=+t);if(nt-i)return e-n+t}return e};var Xt,me;h.createUUID=(Xt=/[xy]/g,me=function(t){var e=16*X.random()|0;return(t=="x"?e:3&e|8).toString(16)},function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(Xt,me).toUpperCase()}),h.setWindow=function(t){o("raphael.setWindow",h,q.win,t),q.win=t,q.doc=q.win.document,h._engine.initWin&&h._engine.initWin(q.win)};var qt=function(t){if(h.vml){var e,i=/^\s+|\s+$/g;try{var r=new ActiveXObject("htmlfile");r.write(""),r.close(),e=r.body}catch{e=createPopup().document.body}var n=e.createTextRange();qt=Mt(function(p){try{e.style.color=B(p).replace(i,tt);var f=n.queryCommandValue("ForeColor");return"#"+("000000"+(f=(255&f)<<16|65280&f|(16711680&f)>>>16).toString(16)).slice(-6)}catch{return"none"}})}else{var l=q.doc.createElement("i");l.title="Raphaël Colour Picker",l.style.display="none",q.doc.body.appendChild(l),qt=Mt(function(p){return l.style.color=p,q.doc.defaultView.getComputedStyle(l,tt).getPropertyValue("color")})}return qt(t)},se=function(){return"hsb("+[this.h,this.s,this.b]+")"},oe=function(){return"hsl("+[this.h,this.s,this.l]+")"},ve=function(){return this.hex},ae=function(t,e,i){if(e==null&&h.is(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(i=t.b,e=t.g,t=t.r),e==null&&h.is(t,"string")){var r=h.getRGB(t);t=r.r,e=r.g,i=r.b}return(t>1||e>1||i>1)&&(t/=255,e/=255,i/=255),[t,e,i]},Se=function(t,e,i,r){var n={r:t*=255,g:e*=255,b:i*=255,hex:h.rgb(t,e,i),toString:ve};return h.is(r,"finite")&&(n.opacity=r),n};function Mt(t,e,i){return function r(){var n=Array.prototype.slice.call(arguments,0),l=n.join("␀"),p=r.cache=r.cache||{},f=r.count=r.count||[];return p[rt](l)?(function(d,y){for(var E=0,j=d.length;E=1e3&&delete p[f.shift()],f.push(l),p[l]=t[U](e,n),i?i(p[l]):p[l])}}h.color=function(t){var e;return h.is(t,"object")&&"h"in t&&"s"in t&&"b"in t?(e=h.hsb2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.hex=e.hex):h.is(t,"object")&&"h"in t&&"s"in t&&"l"in t?(e=h.hsl2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.hex=e.hex):(h.is(t,"string")&&(t=h.getRGB(t)),h.is(t,"object")&&"r"in t&&"g"in t&&"b"in t?(e=h.rgb2hsl(t),t.h=e.h,t.s=e.s,t.l=e.l,e=h.rgb2hsb(t),t.v=e.b):(t={hex:"none"}).r=t.g=t.b=t.h=t.s=t.v=t.l=-1),t.toString=ve,t},h.hsb2rgb=function(t,e,i,r){var n,l,p,f,d;return this.is(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(i=t.b,e=t.s,r=t.o,t=t.h),f=(d=i*e)*(1-mt((t=(t*=360)%360/60)%2-1)),n=l=p=i-d,Se(n+=[d,f,0,0,f,d][t=~~t],l+=[f,d,d,f,0,0][t],p+=[0,0,f,d,d,f][t],r)},h.hsl2rgb=function(t,e,i,r){var n,l,p,f,d;return this.is(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(i=t.l,e=t.s,t=t.h),(t>1||e>1||i>1)&&(t/=360,e/=100,i/=100),f=(d=2*e*(i<.5?i:1-i))*(1-mt((t=(t*=360)%360/60)%2-1)),n=l=p=i-d/2,Se(n+=[d,f,0,0,f,d][t=~~t],l+=[f,d,d,f,0,0][t],p+=[0,0,f,d,d,f][t],r)},h.rgb2hsb=function(t,e,i){var r,n;return t=(i=ae(t,e,i))[0],e=i[1],i=i[2],{h:(((n=(r=nt(t,e,i))-et(t,e,i))==0?null:r==t?(e-i)/n:r==e?(i-t)/n+2:(t-e)/n+4)+360)%6*60/360,s:n==0?0:n/r,b:r,toString:se}},h.rgb2hsl=function(t,e,i){var r,n,l,p;return t=(i=ae(t,e,i))[0],e=i[1],i=i[2],r=((n=nt(t,e,i))+(l=et(t,e,i)))/2,{h:(((p=n-l)==0?null:n==t?(e-i)/p:n==e?(i-t)/p+2:(t-e)/p+4)+360)%6*60/360,s:p==0?0:r<.5?p/(2*r):p/(2-2*r),l:r,toString:oe}},h._path2string=function(){return this.join(",").replace(it,"$1")},h._preload=function(t,e){var i=q.doc.createElement("img");i.style.cssText="position:absolute;left:-9999em;top:-9999em",i.onload=function(){e.call(this),this.onload=null,q.doc.body.removeChild(this)},i.onerror=function(){q.doc.body.removeChild(this)},q.doc.body.appendChild(i),i.src=t};function Zt(){return this.hex}function he(t,e){for(var i=[],r=0,n=t.length;n-2*!e>r;r+=2){var l=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?n-4==r?l[3]={x:+t[0],y:+t[1]}:n-2==r&&(l[2]={x:+t[0],y:+t[1]},l[3]={x:+t[2],y:+t[3]}):l[0]={x:+t[n-2],y:+t[n-1]}:n-4==r?l[3]=l[2]:r||(l[0]={x:+t[r],y:+t[r+1]}),i.push(["C",(-l[0].x+6*l[1].x+l[2].x)/6,(-l[0].y+6*l[1].y+l[2].y)/6,(l[1].x+6*l[2].x-l[3].x)/6,(l[1].y+6*l[2].y-l[3].y)/6,l[2].x,l[2].y])}return i}h.getRGB=Mt(function(t){if(!t||(t=B(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Zt};if(t=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:Zt};!Z[rt](t.toLowerCase().substring(0,2))&&t.charAt()!="#"&&(t=qt(t));var e,i,r,n,l,p,f=t.match(u);return f?(f[2]&&(r=w(f[2].substring(5),16),i=w(f[2].substring(3,5),16),e=w(f[2].substring(1,3),16)),f[3]&&(r=w((l=f[3].charAt(3))+l,16),i=w((l=f[3].charAt(2))+l,16),e=w((l=f[3].charAt(1))+l,16)),f[4]&&(p=f[4][I](Q),e=g(p[0]),p[0].slice(-1)=="%"&&(e*=2.55),i=g(p[1]),p[1].slice(-1)=="%"&&(i*=2.55),r=g(p[2]),p[2].slice(-1)=="%"&&(r*=2.55),f[1].toLowerCase().slice(0,4)=="rgba"&&(n=g(p[3])),p[3]&&p[3].slice(-1)=="%"&&(n/=100)),f[5]?(p=f[5][I](Q),e=g(p[0]),p[0].slice(-1)=="%"&&(e*=2.55),i=g(p[1]),p[1].slice(-1)=="%"&&(i*=2.55),r=g(p[2]),p[2].slice(-1)=="%"&&(r*=2.55),(p[0].slice(-3)=="deg"||p[0].slice(-1)=="°")&&(e/=360),f[1].toLowerCase().slice(0,4)=="hsba"&&(n=g(p[3])),p[3]&&p[3].slice(-1)=="%"&&(n/=100),h.hsb2rgb(e,i,r,n)):f[6]?(p=f[6][I](Q),e=g(p[0]),p[0].slice(-1)=="%"&&(e*=2.55),i=g(p[1]),p[1].slice(-1)=="%"&&(i*=2.55),r=g(p[2]),p[2].slice(-1)=="%"&&(r*=2.55),(p[0].slice(-3)=="deg"||p[0].slice(-1)=="°")&&(e/=360),f[1].toLowerCase().slice(0,4)=="hsla"&&(n=g(p[3])),p[3]&&p[3].slice(-1)=="%"&&(n/=100),h.hsl2rgb(e,i,r,n)):((f={r:e,g:i,b:r,toString:Zt}).hex="#"+(16777216|r|i<<8|e<<16).toString(16).slice(1),h.is(n,"finite")&&(f.opacity=n),f)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Zt}},h),h.hsb=Mt(function(t,e,i){return h.hsb2rgb(t,e,i).hex}),h.hsl=Mt(function(t,e,i){return h.hsl2rgb(t,e,i).hex}),h.rgb=Mt(function(t,e,i){function r(n){return n+.5|0}return"#"+(16777216|r(i)|r(e)<<8|r(t)<<16).toString(16).slice(1)}),h.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},i=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),i.hex},h.getColor.reset=function(){delete this.start},h.parsePathString=function(t){if(!t)return null;var e=Ot(t);if(e.arr)return jt(e.arr);var i={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},r=[];return h.is(t,gt)&&h.is(t[0],gt)&&(r=jt(t)),r.length||B(t).replace(dt,function(n,l,p){var f=[],d=l.toLowerCase();if(p.replace(xt,function(y,E){E&&f.push(+E)}),d=="m"&&f.length>2&&(r.push([l][W](f.splice(0,2))),d="l",l=l=="m"?"l":"L"),d=="r")r.push([l][W](f));else for(;f.length>=i[d]&&(r.push([l][W](f.splice(0,i[d]))),i[d]););}),r.toString=h._path2string,e.arr=jt(r),r},h.parseTransformString=Mt(function(t){if(!t)return null;var e=[];return h.is(t,gt)&&h.is(t[0],gt)&&(e=jt(t)),e.length||B(t).replace(vt,function(i,r,n){var l=[];ot.call(r),n.replace(xt,function(p,f){f&&l.push(+f)}),e.push([r][W](l))}),e.toString=h._path2string,e},this,function(t){if(!t)return t;for(var e=[],i=0;i1?1:d<0?0:d)/2,E=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],j=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],Y=0,L=0;L<12;L++){var M=y*E[L]+y,F=le(M,t,i,n,p),R=le(M,e,r,l,f),P=F*F+R*R;Y+=j[L]*X.sqrt(P)}return y*Y}function be(t,e,i,r,n,l,p,f){if(!(nt(t,i)nt(n,p)||nt(e,r)nt(l,f))){var d=(t-i)*(l-f)-(e-r)*(n-p);if(d){var y=((t*r-e*i)*(n-p)-(t-i)*(n*f-l*p))/d,E=((t*r-e*i)*(l-f)-(e-r)*(n*f-l*p))/d,j=+y.toFixed(2),Y=+E.toFixed(2);if(!(j<+et(t,i).toFixed(2)||j>+nt(t,i).toFixed(2)||j<+et(n,p).toFixed(2)||j>+nt(n,p).toFixed(2)||Y<+et(e,r).toFixed(2)||Y>+nt(e,r).toFixed(2)||Y<+et(l,f).toFixed(2)||Y>+nt(l,f).toFixed(2)))return{x:y,y:E}}}}function ue(t,e,i){var r=h.bezierBBox(t),n=h.bezierBBox(e);if(!h.isBBoxIntersect(r,n))return i?0:[];for(var l=Wt.apply(0,t),p=Wt.apply(0,e),f=nt(~~(l/5),1),d=nt(~~(p/5),1),y=[],E=[],j={},Y=i?0:[],L=0;L=0&&at<=1.001&&ct>=0&&ct<=1.001&&(i?Y++:Y.push({x:ut.x,y:ut.y,t1:et(at,1),t2:et(ct,1)}))}}return Y}function _e(t,e,i){t=h._path2curve(t),e=h._path2curve(e);for(var r,n,l,p,f,d,y,E,j,Y,L=i?0:[],M=0,F=t.length;M$||P=t.x&&e<=t.x2&&i>=t.y&&i<=t.y2},h.isBBoxIntersect=function(t,e){var i=h.isPointInsideBBox;return i(e,t.x,t.y)||i(e,t.x2,t.y)||i(e,t.x,t.y2)||i(e,t.x2,t.y2)||i(t,e.x,e.y)||i(t,e.x2,e.y)||i(t,e.x,e.y2)||i(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)},h.pathIntersection=function(t,e){return _e(t,e)},h.pathIntersectionNumber=function(t,e){return _e(t,e,1)},h.isPointInsidePath=function(t,e,i){var r=h.pathBBox(t);return h.isPointInsideBBox(r,e,i)&&_e(t,[["M",e,i],["H",r.x2+10]],1)%2==1},h._removedFactory=function(t){return function(){o("raphael.log",null,"Raphaël: you are calling to method “"+t+"” of removed object",t)}};var It=h.pathBBox=function(t){var e=Ot(t);if(e.bbox)return Dt(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};for(var i,r=0,n=0,l=[],p=[],f=0,d=(t=we(t)).length;f1&&(i*=P=X.sqrt(P),r*=P);var $=i*i,V=r*r,H=(l==p?-1:1)*X.sqrt(mt(($*V-$*R*R-V*F*F)/($*R*R+V*F*F))),G=H*i*R/r+(t+f)/2,ut=H*-r*F/i+(e+d)/2,at=X.asin(((e-ut)/r).toFixed(9)),ct=X.asin(((d-ut)/r).toFixed(9));(at=tct&&(at-=2*Lt),!p&&ct>at&&(ct-=2*Lt)}var de=ct-at;if(mt(de)>j){var Ce=ct,Ft=f,Qt=d;ct=at+j*(p&&ct>at?1:-1),f=G+i*X.cos(ct),d=ut+r*X.sin(ct),L=Ae(f,d,i,r,n,0,p,Ft,Qt,[ct,Ce,G,ut])}de=ct-at;var xe=X.cos(at),ge=X.sin(at),ze=X.cos(ct),Ht=X.sin(ct),re=X.tan(de/4),Ee=4/3*i*re,ni=4/3*r*re,si=[t,e],ye=[t+Ee*ge,e-ni*xe],oi=[f+Ee*Ht,d-ni*ze],ai=[f,d];if(ye[0]=2*si[0]-ye[0],ye[1]=2*si[1]-ye[1],y)return[ye,oi,ai][W](L);for(var hi=[],Jt=0,_i=(L=[ye,oi,ai][W](L).join()[I](",")).length;Jt<_i;Jt++)hi[Jt]=Jt%2?M(L[Jt-1],L[Jt],Y).y:M(L[Jt],L[Jt+1],Y).x;return hi},te=function(t,e,i,r,n,l,p,f,d){var y=1-d;return{x:Ct(y,3)*t+3*Ct(y,2)*d*i+3*y*d*d*n+Ct(d,3)*p,y:Ct(y,3)*e+3*Ct(y,2)*d*r+3*y*d*d*l+Ct(d,3)*f}},Te=Mt(function(t,e,i,r,n,l,p,f){var d,y=n-2*i+t-(p-2*n+i),E=2*(i-t)-2*(n-i),j=t-i,Y=(-E+X.sqrt(E*E-4*y*j))/2/y,L=(-E-X.sqrt(E*E-4*y*j))/2/y,M=[e,f],F=[t,p];return mt(Y)>"1e12"&&(Y=.5),mt(L)>"1e12"&&(L=.5),Y>0&&Y<1&&(d=te(t,e,i,r,n,l,p,f,Y),F.push(d.x),M.push(d.y)),L>0&&L<1&&(d=te(t,e,i,r,n,l,p,f,L),F.push(d.x),M.push(d.y)),y=l-2*r+e-(f-2*l+r),j=e-r,Y=(-(E=2*(r-e)-2*(l-r))+X.sqrt(E*E-4*y*j))/2/y,L=(-E-X.sqrt(E*E-4*y*j))/2/y,mt(Y)>"1e12"&&(Y=.5),mt(L)>"1e12"&&(L=.5),Y>0&&Y<1&&(d=te(t,e,i,r,n,l,p,f,Y),F.push(d.x),M.push(d.y)),L>0&&L<1&&(d=te(t,e,i,r,n,l,p,f,L),F.push(d.x),M.push(d.y)),{min:{x:et[U](0,F),y:et[U](0,M)},max:{x:nt[U](0,F),y:nt[U](0,M)}}}),we=h._path2curve=Mt(function(t,e){var i=!e&&Ot(t);if(!e&&i.curve)return jt(i.curve);for(var r=ce(t),n=e&&ce(e),l={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},f=function(H,G,ut){var at,ct;if(!H)return["C",G.x,G.y,G.x,G.y,G.x,G.y];switch(!(H[0]in{T:1,Q:1})&&(G.qx=G.qy=null),H[0]){case"M":G.X=H[1],G.Y=H[2];break;case"A":H=["C"][W](Ae[U](0,[G.x,G.y][W](H.slice(1))));break;case"S":ut=="C"||ut=="S"?(at=2*G.x-G.bx,ct=2*G.y-G.by):(at=G.x,ct=G.y),H=["C",at,ct][W](H.slice(1));break;case"T":ut=="Q"||ut=="T"?(G.qx=2*G.x-G.qx,G.qy=2*G.y-G.qy):(G.qx=G.x,G.qy=G.y),H=["C"][W](Ut(G.x,G.y,G.qx,G.qy,H[1],H[2]));break;case"Q":G.qx=H[1],G.qy=H[2],H=["C"][W](Ut(G.x,G.y,H[1],H[2],H[3],H[4]));break;case"L":H=["C"][W](fe(G.x,G.y,H[1],H[2]));break;case"H":H=["C"][W](fe(G.x,G.y,H[1],G.y));break;case"V":H=["C"][W](fe(G.x,G.y,G.x,H[1]));break;case"Z":H=["C"][W](fe(G.x,G.y,G.X,G.Y))}return H},d=function(H,G){if(H[G].length>7){H[G].shift();for(var ut=H[G];ut.length;)E[G]="A",n&&(j[G]="A"),H.splice(G++,0,["C"][W](ut.splice(0,6)));H.splice(G,1),F=nt(r.length,n&&n.length||0)}},y=function(H,G,ut,at,ct){H&&G&&H[ct][0]=="M"&&G[ct][0]!="M"&&(G.splice(ct,0,["M",at.x,at.y]),ut.bx=0,ut.by=0,ut.x=H[ct][1],ut.y=H[ct][2],F=nt(r.length,n&&n.length||0))},E=[],j=[],Y="",L="",M=0,F=nt(r.length,n&&n.length||0);M.01;)$=Wt(y,E,j,Y,L,M,F,R,H+=($r){if(e&&!j.start){if(E+=["C"+(y=je(l,p,f[1],f[2],f[3],f[4],f[5],f[6],r-Y)).start.x,y.start.y,y.m.x,y.m.y,y.x,y.y],n)return E;j.start=E,E=["M"+y.x,y.y+"C"+y.n.x,y.n.y,y.end.x,y.end.y,f[5],f[6]].join(),Y+=d,l=+f[5],p=+f[6];continue}if(!t&&!e)return{x:(y=je(l,p,f[1],f[2],f[3],f[4],f[5],f[6],r-Y)).x,y:y.y,alpha:y.alpha}}Y+=d,l=+f[5],p=+f[6]}E+=f.shift()+f}return j.end=E,(y=t?Y:e?j:h.findDotsAtSegment(l,p,f[0],f[1],f[2],f[3],f[4],f[5],1)).alpha&&(y={x:y.x,y:y.y,alpha:y.alpha}),y}},Ue=Fe(1),$e=Fe(),Ve=Fe(0,1);h.getTotalLength=Ue,h.getPointAtLength=$e,h.getSubpath=function(t,e,i){if(this.getTotalLength(t)-i<1e-6)return Ve(t,e).end;var r=Ve(t,i,1);return e?Ve(r,e).end:r},kt.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():Ue(t)},kt.getPointAtLength=function(t){var e=this.getPath();if(e)return $e(e,t)},kt.getPath=function(){var t,e=h._getPath[this.type];if(this.type!="text"&&this.type!="set")return e&&(t=e(this)),t},kt.getSubpath=function(t,e){var i=this.getPath();if(i)return h.getSubpath(i,t,e)};var Gt=h.easing_formulas={linear:function(t){return t},"<":function(t){return Ct(t,1.7)},">":function(t){return Ct(t,.48)},"<>":function(t){var e=.48-t/1.04,i=X.sqrt(.1734+e*e),r=i-e,n=-i-e,l=Ct(mt(r),1/3)*(r<0?-1:1)+Ct(mt(n),1/3)*(n<0?-1:1)+.5;return 3*(1-l)*l*l+l*l*l},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:Ct(2,-10*t)*X.sin(2*Lt*(t-.075)/.3)+1},bounce:function(t){var e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375}};Gt.easeIn=Gt["ease-in"]=Gt["<"],Gt.easeOut=Gt["ease-out"]=Gt[">"],Gt.easeInOut=Gt["ease-in-out"]=Gt["<>"],Gt["back-in"]=Gt.backIn,Gt["back-out"]=Gt.backOut;var bt=[],Je=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},Ge=function(){for(var t=+new Date,e=0;e1&&!i.next){for(n in E)E[rt](n)&&(L[n]=i.totalOrigin[n]);i.el.attr(L),ke(i.anim,i.el,i.anim.percents[0],null,i.totalOrigin,i.repeat-1)}i.next&&!i.stop&&ke(i.anim,i.el,i.next,null,i.totalOrigin,i.repeat)}}}bt.length&&Je(Ge)},Oe=function(t){return t>255?255:t<0?0:t};function bi(t,e,i,r,n,l){var p=3*e,f=3*(r-e)-p,d=1-p-f,y=3*i,E=3*(n-i)-y,j=1-y-E;function Y(L){return((d*L+f)*L+p)*L}return function(L,M){var F=function(R,P){var $,V,H,G,ut,at;for(H=R,at=0;at<8;at++){if(G=Y(H)-R,mt(G)V)return V;for(;$G?$=H:V=H,H=(V-$)/2+$}return H}(L,M);return((j*F+E)*F+y)*F}(t,1/(200*l))}function Kt(t,e){var i=[],r={};if(this.ms=e,this.times=1,t){for(var n in t)t[rt](n)&&(r[g(n)]=t[n],i.push(g(n)));i.sort(St)}this.anim=r,this.top=i[i.length-1],this.percents=i}function ke(t,e,i,r,n,l){i=g(i);var p,f,d,y,E,j,Y=t.ms,L={},M={},F={};if(r)for(P=0,$=bt.length;P<$;P++){var R=bt[P];if(R.el.id==e.id&&R.anim==t){R.percent!=i?(bt.splice(P,1),d=1):f=R,e.attr(R.totalOrigin);break}}else r=+M;for(var P=0,$=t.percents.length;P<$;P++){if(t.percents[P]==i||t.percents[P]>r*t.top){i=t.percents[P],E=t.percents[P-1]||0,Y=Y/t.top*(i-E),y=t.percents[P+1],p=t.anim[i];break}r&&e.attr(t.anim[t.percents[P]])}if(p){if(f)f.initstatus=r,f.start=new Date-f.ms*r;else{for(var V in p)if(p[rt](V)&&(S[rt](V)||e.paper.customAttributes[rt](V)))switch(L[V]=e.attr(V),L[V]==null&&(L[V]=N[V]),M[V]=p[V],S[V]){case ft:F[V]=(M[V]-L[V])/Y;break;case"colour":L[V]=h.getRGB(L[V]);var H=h.getRGB(M[V]);F[V]={r:(H.r-L[V].r)/Y,g:(H.g-L[V].g)/Y,b:(H.b-L[V].b)/Y};break;case"path":var G=we(L[V],M[V]),ut=G[1];for(L[V]=G[0],F[V]=[],P=0,$=L[V].length;P<$;P++){F[V][P]=[0];for(var at=1,ct=L[V][P].length;atf&&(f=y)}!t[f+="%"].callback&&(t[f].callback=r)}return new Kt(t,e)},kt.animate=function(t,e,i,r){if(this.removed)return r&&r.call(this),this;var n=t instanceof Kt?t:h.animation(t,e,i,r);return ke(n,this,n.percents[0],null,this.attr()),this},kt.setTime=function(t,e){return t&&e!=null&&this.status(t,et(e,t.ms)/t.ms),this},kt.status=function(t,e){var i,r,n=[],l=0;if(e!=null)return ke(t,this,-1,et(e,1)),this;for(i=bt.length;l1)for(var K=0,B=tt.length;K.5)-1;q(g-.5,2)+q(w-.5,2)>.25&&(w=T.sqrt(.25-q(g-.5,2))*Pt+.5)&&w!=.5&&(w=w.toFixed(5)-1e-5*Pt)}return U})).split(/\s*\-\s*/),s=="linear"){var Z=a.shift();if(Z=-C(Z),isNaN(Z))return null;var it=[0,0,T.cos(o.rad(Z)),T.sin(o.rad(Z))],dt=1/(pt(rt(it[2]),rt(it[3]))||1);it[2]*=dt,it[3]*=dt,it[2]<0&&(it[0]=-it[2],it[2]=0),it[3]<0&&(it[1]=-it[3],it[3]=0)}var vt=o._parseDots(a);if(!vt)return null;if(c=c.replace(/[\(\)\s,\xb0#]/g,"_"),u.gradient&&c!=u.gradient.id&&(N.defs.removeChild(u.gradient),delete u.gradient),!u.gradient){Q=B(s+"Gradient",{id:c}),u.gradient=Q,B(Q,s=="radial"?{fx:g,fy:w}:{x1:it[0],y1:it[1],x2:it[2],y2:it[3],gradientTransform:u.matrix.invert()}),N.defs.appendChild(Q);for(var xt=0,Bt=vt.length;xt1?ht.opacity/100:ht.opacity});case"stroke":ht=o.getRGB(b),s.setAttribute(w,ht.hex),w=="stroke"&&ht[h]("opacity")&&B(s,{"stroke-opacity":ht.opacity>1?ht.opacity/100:ht.opacity}),w=="stroke"&&u._.arrows&&("startString"in u._.arrows&&ot(u,u._.arrows.startString),"endString"in u._.arrows&&ot(u,u._.arrows.endString,1));break;case"gradient":(u.type=="circle"||u.type=="ellipse"||A(b).charAt()!="r")&&I(u,b);break;case"opacity":c.gradient&&!c[h]("stroke-opacity")&&B(s,{"stroke-opacity":b>1?b/100:b});case"fill-opacity":if(c.gradient){(Pt=o._g.doc.getElementById(s.getAttribute("fill").replace(/^url\(#|\)$/g,U)))&&(Et=Pt.getElementsByTagName("stop"),B(Et[Et.length-1],{"stop-opacity":b}));break}default:w=="font-size"&&(b=st(b,10)+"px");var Nt=w.replace(/(\-.)/g,function(At){return At.substring(1).toUpperCase()});s.style[Nt]=b,u._.dirty=1,s.setAttribute(w,b)}}mt(u,a),s.style.visibility=g},mt=function(u,a){if(u.type=="text"&&(a[h]("text")||a[h]("font")||a[h]("font-size")||a[h]("x")||a[h]("y"))){var s=u.attrs,c=u.node,g=c.firstChild?st(o._g.doc.defaultView.getComputedStyle(c.firstChild,U).getPropertyValue("font-size"),10):10;if(a[h]("text")){for(s.text=a.text;c.firstChild;)c.removeChild(c.firstChild);for(var w,b=A(a.text).split(` +`),N=[],S=0,Q=b.length;S"));var oe=qt.getBoundingClientRect();S.W=g.w=(oe.right-oe.left)/100,S.H=g.h=(oe.bottom-oe.top)/100,S.X=g.x,S.Y=g.y+S.H/2,("x"in s||"y"in s)&&(S.path.v=o.format("m{0},{1}l{2},{1}",T(g.x*D),T(g.y*D),T(g.x*D)+1));for(var ve=["x","y","text","font","font-family","font-weight","font-style","font-size"],ae=0,Se=ve.length;ae.25&&(xt=st.sqrt(.25-g(vt-.5,2))*(2*(xt>.5)-1)+.5),b=vt+U+xt),W})).split(/\s*\-\s*/),w=="linear"){var N=s.shift();if(N=-C(N),isNaN(N))return null}var S=o._parseDots(s);if(!S)return null;if(a=a.shape||a.node,S.length){a.removeChild(c),c.on=!0,c.method="none",c.color=S[0].color,c.color2=S[S.length-1].color;for(var Q=[],Z=0,it=S.length;Z')}}catch{et=function(c){return s.createElement("<"+c+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},o._engine.initWin(o._g.win),o._engine.create=function(){var a=o._getContainer.apply(0,arguments),s=a.container,c=a.height,g=a.width,w=a.x,b=a.y;if(!s)throw new Error("VML container not found.");var N=new o._Paper,S=N.canvas=o._g.doc.createElement("div"),Q=S.style;return w=w||0,b=b||0,g=g||512,c=c||342,N.width=g,N.height=c,g==+g&&(g+="px"),c==+c&&(c+="px"),N.coordsize=216e5+U+216e5,N.coordorigin="0 0",N.span=o._g.doc.createElement("span"),N.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",S.appendChild(N.span),Q.cssText=o.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",g,c),s==1?(o._g.doc.body.appendChild(S),Q.left=w+"px",Q.top=b+"px",Q.position="absolute"):s.firstChild?s.insertBefore(S,s.firstChild):s.appendChild(S),N.renderfix=function(){},N},o.prototype.clear=function(){o.eve("raphael.clear",this),this.canvas.innerHTML=W,this.span=o._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},o.prototype.remove=function(){for(var a in o.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas),this)this[a]=typeof this[a]=="function"?o._removedFactory(a):null;return!0};var zt=o.st;for(var u in gt)gt[h](u)&&!zt[h](u)&&(zt[u]=function(a){return function(){var s=arguments;return this.forEach(function(c){c[a].apply(c,s)})}}(u))}}).apply(x,k))===void 0||(v.exports=m)}])})})(ci);var Ci=ci.exports,Si=Bi(Ci);const Ai={x:0,y:0,"text-margin":10,"font-size":14,"font-color":"black","line-width":3,"line-length":50,"line-color":"black","element-color":"black",fill:"white","yes-text":"yes","no-text":"no","arrow-end":"block",class:"flowchart",scale:1,symbols:{start:{},end:{},condition:{},inputoutput:{},operation:{},subroutine:{},parallel:{}}},Ti=(z,_,v,x,O,k,m,o)=>{const h={x:null,y:null,onLine1:!1,onLine2:!1},A=(o-k)*(v-z)-(m-O)*(x-_);if(A===0)return h;const C=_-k,st=z-O,T=(m-O)*C-(o-k)*st,pt=(v-z)*C-(x-_)*st,rt=T/A,q=pt/A;return h.x=z+rt*(v-z),h.y=_+rt*(x-_),rt>0&&rt<1&&(h.onLine1=!0),q>0&&q<1&&(h.onLine2=!0),h},fi=(z,_,v)=>{let x="M{0},{1}";for(let A=2;A<2*v.length+2;A+=2)x+=` L{${A}},{${A+1}}`;const O=[_,...v].map(({x:A,y:C})=>[A,C]).flat(),k=z.paper.path(x,O);k.attr("stroke",z.options["element-color"]),k.attr("stroke-width",z.options["line-width"]);const m=z.options.font,o=z.options["font-family"],h=z.options["font-weight"];return m&&k.attr({font:m}),o&&k.attr({"font-family":o}),h&&k.attr({"font-weight":h}),k},Yt=(z,_,v,x)=>{let O="M{0},{1}";Object.prototype.toString.call(v)!=="[object Array]"&&(v=[v]);for(let C=2;C<2*v.length+2;C+=2)O+=` L{${C}},{${C+1}}`;const k=[_,...v].map(({x:C,y:st})=>[C,st]).flat(),m=z.paper.path(O,k);m.attr({stroke:z.options["line-color"],"stroke-width":z.options["line-width"],"arrow-end":z.options["arrow-end"]});const o=z.options.font,h=z.options["font-family"],A=z.options["font-weight"];if(o&&m.attr({font:o}),h&&m.attr({"font-family":h}),A&&m.attr({"font-weight":A}),x){const C=z.paper.text(0,0,x);let st="start",T=!1;const pt=v[0];_.y===pt.y&&(T=!0);let rt=0,q=0;rt=_.x,q=_.y,T?(_.x>pt.x?(rt-=z.options["text-margin"]/2,st="end"):rt+=z.options["text-margin"]/2,q-=z.options["text-margin"]):(rt+=z.options["text-margin"]/2,q+=z.options["text-margin"],_.y>pt.y&&(q-=z.options["text-margin"]*2)),C.attr({"text-anchor":st,"font-size":z.options["font-size"],fill:z.options["font-color"],x:rt,y:q}),o&&C.attr({font:o}),h&&C.attr({"font-family":h}),A&&C.attr({"font-weight":A})}return m};class ne{constructor(_,v,x){J(this,"chart");J(this,"text");J(this,"params");J(this,"connectedTo",[]);J(this,"leftLines",[]);J(this,"rightLines",[]);J(this,"topLines",[]);J(this,"bottomLines",[]);J(this,"group");J(this,"symbol");J(this,"symbolType");J(this,"flowstate");J(this,"key");J(this,"lineStyle");J(this,"bottomStart");J(this,"next");J(this,"direction_next");J(this,"isPositioned");J(this,"width",0);J(this,"height",0);J(this,"topStart");J(this,"topEnd");J(this,"rightStart");J(this,"leftStart");J(this,"leftEnd");J(this,"rightEnd");J(this,"pathOk");this.chart=_,this.group=this.chart.paper.set(),this.symbol=x,this.symbolType=v.symbolType,this.flowstate=v.flowstate??"future",this.lineStyle=v.lineStyle??{},this.key=v.key??"",this.params=v.params??{},this.direction_next=v.next&&v.direction_next?v.direction_next:void 0,this.text=this.chart.paper.text(0,0,v.text??""),v.key&&(this.text.node.id=`${v.key}t`),this.text.node.setAttribute("class",`${this.getAttr("class")}t`),this.text.attr({"font-size":this.getAttr("font-size"),fill:this.getAttr("font-color"),"text-anchor":"start",x:this.getAttr("text-margin")});const O=this.getAttr("font"),k=this.getAttr("font-family"),m=this.getAttr("font-weight");if(O&&this.text.attr({font:O}),k&&this.text.attr({"font-family":k}),m&&this.text.attr({"font-weight":m}),v.link&&this.text.attr("href",v.link),v.target&&this.text.attr("target",v.target),v.function){const{function:h}=v;this.text.attr({cursor:"pointer"}),this.text.node.addEventListener("click",A=>{var C;(C=window[h])==null||C.call(window,A,v)},!1)}const o=this.getAttr("maxWidth");if(o){const h=v.text.split(" ");let A="";h.forEach(C=>{this.text.attr("text",`${A} ${C}`),this.text.getBBox().width>o?A+=` +${C}`:A+=` ${C}`}),this.text.attr("text",A.substring(1))}if(this.group.push(this.text),x){x.node.setAttribute("class",this.getAttr("class"));const h=this.getAttr("text-margin");x.attr({fill:this.getAttr("fill"),stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),width:this.text.getBBox().width+2*h,height:this.text.getBBox().height+2*h});const A=this.getAttr("roundness");if(typeof A=="number"&&!isNaN(A)&&(x.node.setAttribute("ry",A.toString()),x.node.setAttribute("rx",A.toString())),v.link&&x.attr("href",v.link),v.target&&x.attr("target",v.target),v.function){const{function:C}=v;x.node.addEventListener("click",st=>{var T;(T=window[C])==null||T.call(window,st,v)},!1),x.attr({cursor:"pointer"})}v.key&&(x.node.id=v.key),this.group.push(x),x.insertBefore(this.text),this.text.attr({y:x.getBBox().height/2}),this.initialize()}}getAttr(_){var O,k,m;if(!this.chart)return null;const v=((O=this.chart.options)==null?void 0:O[_])??null,x=((k=this.chart.options.symbols)==null?void 0:k[this.symbolType][_])??null;if((m=this.chart.options.flowstate)!=null&&m[this.flowstate]){const o=this.chart.options.flowstate[this.flowstate][_];if(o)return o}return x||v}initialize(){this.group.transform(`t${this.getAttr("line-width")},${this.getAttr("line-width")}`);const _=this.group.getBBox();this.width=_.width,this.height=_.height}getCenter(){return{x:this.getX()+this.width/2,y:this.getY()+this.height/2}}getX(){return this.group.getBBox().x}getY(){return this.group.getBBox().y}shiftX(_){this.group.transform(`t${this.getX()+_},${this.getY()}`)}setX(_){this.group.transform(`t${_},${this.getY()}`)}shiftY(_){this.group.transform(`$t${this.getX()},${this.getY()+_}`)}setY(_){this.group.transform(`t${this.getX()},${_}`)}getTop(){return{x:this.getX()+this.width/2,y:this.getY()}}getBottom(){return{x:this.getX()+this.width/2,y:this.getY()+this.height}}getLeft(){return{x:this.getX(),y:this.getY()+this.group.getBBox().height/2}}getRight(){return{x:this.getX()+this.group.getBBox().width,y:this.getY()+this.group.getBBox().height/2}}render(){if(this.next){const _=this.getAttr("line-length");if(this.direction_next==="right"){const v=this.getRight();if(!this.next.isPositioned){this.next.setY(v.y-this.next.height/2),this.next.shiftX(this.group.getBBox().x+this.width+_);const x=()=>{let O=!1,k;for(k of this.chart.symbols){const m=Math.abs(k.getCenter().x-this.next.getCenter().x);if(k.getCenter().y>this.next.getCenter().y&&m<=this.next.width/2){O=!0;break}}if(O){if(this.next.symbolType==="end")return;this.next.setX(k.getX()+k.width+_),x()}};x(),this.next.isPositioned=!0,this.next.render()}}else if(this.direction_next==="left"){const v=this.getLeft();if(!this.next.isPositioned){this.next.setY(v.y-this.next.height/2),this.next.shiftX(-(this.group.getBBox().x+this.width+_));const x=()=>{let O=!1,k;for(k of this.chart.symbols){const m=Math.abs(k.getCenter().x-this.next.getCenter().x);if(k.getCenter().y>this.next.getCenter().y&&m<=this.next.width/2){O=!0;break}}if(O){if(this.next.symbolType==="end")return;this.next.setX(k.getX()+k.width+_),x()}};x(),this.next.isPositioned=!0,this.next.render()}}else{const v=this.getBottom();this.next.isPositioned||(this.next.shiftY(this.getY()+this.height+_),this.next.setX(v.x-this.next.width/2),this.next.isPositioned=!0,this.next.render())}}}renderLines(){this.next&&(this.direction_next?this.drawLineTo(this.next,this.getAttr("arrow-text")??"",this.direction_next):this.drawLineTo(this.next,this.getAttr("arrow-text")??""))}drawLineTo(_,v,x){this.connectedTo.includes(_)||this.connectedTo.push(_);const{x:O,y:k}=this.getCenter(),m=this.getRight(),o=this.getBottom(),h=this.getTop(),A=this.getLeft(),{x:C,y:st}=_.getCenter(),T=_.getTop(),pt=_.getRight(),rt=_.getLeft(),q=O===C,_t=k===st,Tt=kst||this===_,W=O>C,lt=Ott&&(tt=T.x)}else if((!x||x==="bottom")&<){const D=Math.max(_.topLines.length,this.bottomLines.length)*10;K=Yt(this.chart,o,[{x:o.x,y:o.y+B/2-D},{x:o.x+(o.x-T.x)/2,y:o.y+B/2-D},{x:o.x+(o.x-T.x)/2,y:T.y-B/2-D},{x:T.x,y:T.y-B/2-D},{x:T.x,y:T.y}],v),this.bottomLines.push(K),_.topLines.push(K),this.bottomStart=!0,_.topEnd=!0,tt=o.x+(o.x-T.x)/2}else if(x&&x==="right"&&W){const D=Math.max(_.topLines.length,this.rightLines.length)*10;K=Yt(this.chart,m,[{x:m.x+B/2,y:m.y},{x:m.x+B/2,y:T.y-B/2-D},{x:T.x,y:T.y-B/2-D},{x:T.x,y:T.y}],v),this.rightLines.push(K),_.topLines.push(K),this.rightStart=!0,_.topEnd=!0,tt=m.x+B/2}else if(x&&x==="right"&<){const D=Math.max(_.topLines.length,this.rightLines.length)*10;K=Yt(this.chart,m,[{x:T.x,y:m.y-D},{x:T.x,y:T.y-D}],v),this.rightLines.push(K),_.topLines.push(K),this.rightStart=!0,_.topEnd=!0,tt=m.x+B/2}else if(x&&x==="bottom"&&q&&U){const D=Math.max(_.topLines.length,this.bottomLines.length)*10;K=Yt(this.chart,o,[{x:o.x,y:o.y+B/2-D},{x:m.x+B/2,y:o.y+B/2-D},{x:m.x+B/2,y:T.y-B/2-D},{x:T.x,y:T.y-B/2-D},{x:T.x,y:T.y}],v),this.bottomLines.push(K),_.topLines.push(K),this.bottomStart=!0,_.topEnd=!0,tt=o.x+B/2}else if(x==="left"&&q&&U){let D=A.x-B/2;rt.xg?(N=["L",b.x+I*2,c],X.splice(zt+1,0,N),N=["C",b.x+I*2,c,b.x,c-I*4,b.x-I*2,c],X.splice(zt+2,0,N),K.attr("path",X)):(N=["L",b.x-I*2,c],X.splice(zt+1,0,N),N=["C",b.x-I*2,c,b.x,c-I*4,b.x+I*2,c],X.splice(zt+2,0,N),K.attr("path",X)):c>w?(N=["L",s,b.y+I*2],X.splice(zt+1,0,N),N=["C",s,b.y+I*2,s+I*4,b.y,s,b.y-I*2],X.splice(zt+2,0,N),K.attr("path",X)):(N=["L",s,b.y-I*2],X.splice(zt+1,0,N),N=["C",s,b.y-I*2,s+I*4,b.y,s,b.y+I*2],X.splice(zt+2,0,N),K.attr("path",X)),zt+=2}}}}this.chart.lines.push(K),(this.chart.minXFromSymbols===void 0||this.chart.minXFromSymbols>A.x)&&(this.chart.minXFromSymbols=A.x)}(!this.chart.maxXFromLine||this.chart.maxXFromLine&&tt>this.chart.maxXFromLine)&&(this.chart.maxXFromLine=tt)}}let Ye=class extends ne{constructor(_,v={}){super(_,v);J(this,"yes_annotation");J(this,"no_annotation");J(this,"yes_direction");J(this,"no_direction");J(this,"textMargin");J(this,"yes_symbol");J(this,"no_symbol");J(this,"top_symbol");J(this,"bottom_symbol");J(this,"right_symbol");J(this,"left_symbol");J(this,"yes");J(this,"no");this.yes_annotation=v.yes_annotation,this.no_annotation=v.no_annotation,this.textMargin=this.getAttr("text-margin");let{direction_yes:x,direction_no:O}=v;!O&&x==="right"?O="bottom":!x&&O==="bottom"&&(x="right"),this.yes_direction=x??"bottom",this.no_direction=O??"right",this.text.attr({x:this.textMargin*2});let k=this.text.getBBox().width+3*this.textMargin;k+=k/2;let m=this.text.getBBox().height+2*this.textMargin;m+=m/2,m=Math.max(k*.5,m);const o=k/4,h=m/4;this.text.attr({x:o+this.textMargin/2});const A={x:o,y:h},C=[{x:o-k/4,y:h+m/4},{x:o-k/4+k/2,y:h+m/4+m/2},{x:o-k/4+k,y:h+m/4},{x:o-k/4+k/2,y:h+m/4-m/2},{x:o-k/4,y:h+m/4}],st=fi(_,A,C);st.attr({stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),fill:this.getAttr("fill")}),v.link&&st.attr("href",v.link),v.target&&st.attr("target",v.target),v.key&&(st.node.id=v.key),st.node.setAttribute("class",this.getAttr("class")),this.text.attr({y:st.getBBox().height/2}),this.group.push(st),st.insertBefore(this.text),this.initialize()}render(){this.yes_direction&&(this[`${this.yes_direction}_symbol`]=this.yes_symbol),this.no_direction&&(this[`${this.no_direction}_symbol`]=this.no_symbol);const _=this.getAttr("line-length");if(this.bottom_symbol){const v=this.getBottom();this.bottom_symbol.isPositioned||(this.bottom_symbol.shiftY(this.getY()+this.height+_),this.bottom_symbol.setX(v.x-this.bottom_symbol.width/2),this.bottom_symbol.isPositioned=!0,this.bottom_symbol.render())}if(this.right_symbol){const v=this.getRight();if(!this.right_symbol.isPositioned){this.right_symbol.setY(v.y-this.right_symbol.height/2),this.right_symbol.shiftX(this.group.getBBox().x+this.width+_);const x=()=>{let O=!1,k;for(k of this.chart.symbols)if(!this.params["align-next"]||this.params["align-next"]!=="no"){const m=Math.abs(k.getCenter().x-this.right_symbol.getCenter().x);if(k.getCenter().y>this.right_symbol.getCenter().y&&m<=this.right_symbol.width/2){O=!0;break}}if(O){if(this.right_symbol.symbolType==="end")return;this.right_symbol.setX(k.getX()+k.width+_),x()}};x(),this.right_symbol.isPositioned=!0,this.right_symbol.render()}}if(this.left_symbol){const v=this.getLeft();if(!this.left_symbol.isPositioned){this.left_symbol.setY(v.y-this.left_symbol.height/2),this.left_symbol.shiftX(-(this.group.getBBox().x+this.width+_));const x=()=>{let O=!1,k;for(k of this.chart.symbols)if(!this.params["align-next"]||this.params["align-next"]!=="no"){const m=Math.abs(k.getCenter().x-this.left_symbol.getCenter().x);if(k.getCenter().y>this.left_symbol.getCenter().y&&m<=this.left_symbol.width/2){O=!0;break}}if(O){if(this.left_symbol.symbolType==="end")return;this.left_symbol.setX(k.getX()+k.width+_),x()}};x(),this.left_symbol.isPositioned=!0,this.left_symbol.render()}}}renderLines(){this.yes_symbol&&this.drawLineTo(this.yes_symbol,this.yes_annotation||this.getAttr("yes-text")||"Yes",this.yes_direction),this.no_symbol&&this.drawLineTo(this.no_symbol,this.no_annotation||this.getAttr("no-text")||"No",this.no_direction)}};class Me extends ne{constructor(v,x={}){const O=v.paper.rect(0,0,0,0);super(v,x,O);J(this,"path1_direction");J(this,"path1_symbol");J(this,"path1_annotation");J(this,"path2_direction");J(this,"path2_symbol");J(this,"path2_annotation");J(this,"path3_direction");J(this,"path3_symbol");J(this,"path3_annotation");J(this,"top_symbol");J(this,"bottom_symbol");J(this,"left_symbol");J(this,"right_symbol");J(this,"path1");J(this,"path2");J(this,"path3");J(this,"textMargin");J(this,"params");this.path1_annotation=x.path1_annotation||"",this.path2_annotation=x.path2_annotation||"",this.path3_annotation=x.path3_annotation||"",this.textMargin=this.getAttr("text-margin"),this.path1_direction="bottom",this.path2_direction="right",this.path3_direction="top",x.direction_next==="path1"&&!x[x.direction_next]&&x.next&&(x[x.direction_next]=x.next),x.direction_next==="path2"&&!x[x.direction_next]&&x.next&&(x[x.direction_next]=x.next),x.direction_next==="path3"&&!x[x.direction_next]&&x.next&&(x[x.direction_next]=x.next),x.path1&&x.direction_path1&&x.path2&&!x.direction_path2&&x.path3&&!x.direction_path3?x.direction_path1==="right"?(this.path2_direction="bottom",this.path1_direction="right",this.path3_direction="top"):x.direction_path1==="top"?(this.path2_direction="right",this.path1_direction="top",this.path3_direction="bottom"):x.direction_path1==="left"?(this.path2_direction="right",this.path1_direction="left",this.path3_direction="bottom"):(this.path2_direction="right",this.path1_direction="bottom",this.path3_direction="top"):x.path1&&!x.direction_path1&&x.path2&&x.direction_path2&&x.path3&&!x.direction_path3?x.direction_path2==="right"?(this.path1_direction="bottom",this.path2_direction="right",this.path3_direction="top"):x.direction_path2==="left"?(this.path1_direction="bottom",this.path2_direction="left",this.path3_direction="right"):(this.path1_direction="right",this.path2_direction="bottom",this.path3_direction="top"):x.path1&&!x.direction_path1&&x.path2&&!x.direction_path2&&x.path3&&x.direction_path3?x.direction_path2==="right"?(this.path1_direction="bottom",this.path2_direction="top",this.path3_direction="right"):x.direction_path2==="left"?(this.path1_direction="bottom",this.path2_direction="right",this.path3_direction="left"):(this.path1_direction="right",this.path2_direction="bottom",this.path3_direction="top"):(this.path1_direction=x.direction_path1,this.path2_direction=x.direction_path2,this.path3_direction=x.direction_path3),this.path1_direction=this.path1_direction||"bottom",this.path2_direction=this.path2_direction||"right",this.path3_direction=this.path3_direction||"top",this.initialize()}render(){this.path1_direction&&(this[this.path1_direction+"_symbol"]=this.path1_symbol),this.path2_direction&&(this[this.path2_direction+"_symbol"]=this.path2_symbol),this.path3_direction&&(this[this.path3_direction+"_symbol"]=this.path3_symbol);const v=this.getAttr("line-length");if(this.bottom_symbol){const x=this.getBottom();this.bottom_symbol.isPositioned||(this.bottom_symbol.shiftY(this.getY()+this.height+v),this.bottom_symbol.setX(x.x-this.bottom_symbol.width/2),this.bottom_symbol.isPositioned=!0,this.bottom_symbol.render())}if(this.top_symbol){const x=this.getTop();this.top_symbol.isPositioned||(this.top_symbol.shiftY(this.getY()-this.top_symbol.height-v),this.top_symbol.setX(x.x+this.top_symbol.width),this.top_symbol.isPositioned=!0,this.top_symbol.render())}if(this.left_symbol){const x=this.getLeft();if(!this.left_symbol.isPositioned){this.left_symbol.setY(x.y-this.left_symbol.height/2),this.left_symbol.shiftX(-(this.group.getBBox().x+this.width+v));const O=()=>{let k=!1,m;for(m of this.chart.symbols)if(!this.params["align-next"]||this.params["align-next"]!=="no"){const o=Math.abs(m.getCenter().x-this.left_symbol.getCenter().x);if(m.getCenter().y>this.left_symbol.getCenter().y&&o<=this.left_symbol.width/2){k=!0;break}}if(k){if(this.left_symbol.symbolType==="end")return;this.left_symbol.setX(m.getX()+m.width+v),O()}};O(),this.left_symbol.isPositioned=!0,this.left_symbol.render()}}if(this.right_symbol){const x=this.getRight();if(!this.right_symbol.isPositioned){this.right_symbol.setY(x.y-this.right_symbol.height/2),this.right_symbol.shiftX(this.group.getBBox().x+this.width+v);const O=()=>{let k=!1,m;for(m of this.chart.symbols)if(!this.params["align-next"]||this.params["align-next"]!=="no"){const o=Math.abs(m.getCenter().x-this.right_symbol.getCenter().x);if(m.getCenter().y>this.right_symbol.getCenter().y&&o<=this.right_symbol.width/2){k=!0;break}}if(k){if(this.right_symbol.symbolType==="end")return;this.right_symbol.setX(m.getX()+m.width+v),O()}};O(),this.right_symbol.isPositioned=!0,this.right_symbol.render()}}}renderLines(){this.path1_symbol&&this.drawLineTo(this.path1_symbol,this.path1_annotation,this.path1_direction),this.path2_symbol&&this.drawLineTo(this.path2_symbol,this.path2_annotation,this.path2_direction),this.path3_symbol&&this.drawLineTo(this.path3_symbol,this.path3_annotation,this.path3_direction)}}const Qe=(z,..._)=>{if(_.length===0)return z;const v=_.shift();return Object.keys(v).forEach(x=>{typeof z[x]=="object"&&!Array.isArray(z[x])&&typeof v[x]=="object"&&!Array.isArray(v[x])?Qe(z[x],v[x]):typeof v[x]=="object"?Array.isArray(v[x])?z[x]=[...v[x]]:z[x]={...v[x]}:z[x]=v[x]}),Qe(z,..._)};let Li=class{constructor(z,_={}){J(this,"options");J(this,"symbols",[]);J(this,"lines",[]);J(this,"start",null);J(this,"paper");J(this,"minXFromSymbols",0);J(this,"maxXFromLine",0);this.paper=new Si(z,_.width,_.height),this.options=Qe(_,Ai)}handle(z){return this.symbols.includes(z)||this.symbols.push(z),z instanceof Ye?(z.yes=_=>(z.yes_symbol=_,z.no_symbol&&(z.pathOk=!0),this.handle(_)),z.no=_=>(z.no_symbol=_,z.yes_symbol&&(z.pathOk=!0),this.handle(_))):z instanceof Me?(z.path1=_=>(z.path1_symbol=_,z.path2_symbol&&(z.pathOk=!0),this.handle(_)),z.path2=_=>(z.path2_symbol=_,z.path3_symbol&&(z.pathOk=!0),this.handle(_)),z.path3=_=>(z.path3_symbol=_,z.path1_symbol&&(z.pathOk=!0),this.handle(_))):z.then=_=>(z.next=_,z.pathOk=!0,this.handle(_)),z}startWith(z){return this.start=z,this.handle(z)}render(){const z=this.symbols.reduce((C,{width:st})=>Math.max(C,st),0),_=this.symbols.reduce((C,{height:st})=>Math.max(C,st),0);this.symbols.forEach(C=>{C.shiftX(this.options.x+(z-C.width)/2+this.options["line-width"]),C.shiftY(this.options.y+(_-C.height)/2+this.options["line-width"])}),this.start.render(),this.symbols.forEach(C=>{C.renderLines()});let v=this.maxXFromLine,x=0,O=0,k=0;this.symbols.forEach(C=>{const st=C.getX(),T=st+C.width,pt=C.getY()+C.height;stv&&(v=T),pt>x&&(x=pt)}),this.lines.forEach(C=>{const st=C.getBBox(),{x:T,y:pt,x2:rt,y2:q}=st;Tv&&(v=rt),q>x&&(x=q)});const m=this.options.scale,o=this.options["line-width"];this.minXFromSymbols({symbols:{},start:null,diagram:null,draw(z,_={}){this.diagram&&this.diagram.clean();const v=new Li(z,_);this.diagram=v;const x={},O=m=>{const{key:o,symbolType:h}=m;if(x[o])return x[o];switch(h){case"start":x[o]=new Ni(v,m);break;case"end":x[o]=new zi(v,m);break;case"operation":x[o]=new Pi(v,m);break;case"inputoutput":x[o]=new Ei(v,m);break;case"subroutine":x[o]=new Yi(v,m);break;case"condition":x[o]=new Ye(v,m);break;case"parallel":x[o]=new Me(v,m);break;default:throw new Error(`Unknown symbol type ${h}!`)}return x[o]},k=(m,o,h)=>{const A=O(m);return this.start===m?v.startWith(A):o&&h&&!o.pathOk&&(o instanceof Ye?(h.yes===m&&o.yes(A),h.no===m&&o.no(A)):o instanceof Me?(h.path1===m&&o.path1(A),h.path2===m&&o.path2(A),h.path3===m&&o.path3(A)):o.then(A)),A.pathOk||(A instanceof Ye?(m.yes&&k(m.yes,A,m),m.no&&k(m.no,A,m)):A instanceof Me?(m.path1&&k(m.path1,A,m),m.path2&&k(m.path2,A,m),m.path3&&k(m.path3,A,m)):m.next&&k(m.next,A,m)),A};k(this.start),v.render()},clean(){var z;(z=this.diagram)==null||z.clean()},options(){var z;return((z=this.diagram)==null?void 0:z.options)??{}}}),Ri=z=>{const _=[];let v=0;for(let x=1;x")&&!k.includes("=>")&&!k.includes("@>")?(_[x-1]+=` +${k}`,_.splice(x,1),O--):x++}return _},Di=z=>{const _=z.indexOf("(")+1,v=z.indexOf(")");return _>=0&&v>=0?z.substring(_,v):"{}"},ji=z=>{const _=z.indexOf("(")+1,v=z.indexOf(")");return _>=0&&v>=0?z.substring(_,v):""},Ne=(z,_)=>{const v=z.indexOf("(")+1,x=z.indexOf(")");return v>=0&&x>=0?_.symbols[z.substring(0,v-1)]:_.symbols[z]},Fi=z=>{const _=z.indexOf("(")+1,v=z.indexOf(")");let x=z.substring(_,v);x.indexOf(",")>0&&(x=x.substring(0,x.indexOf(",")));const O=x.split("@");return O.length>1&&_>=0&&v>=0?O[1]:""},Gi=(z="")=>{var x,O;const _=Mi(),v=Ri(z.trim());for(;v.length>0;){let k=v.splice(0,1)[0].trim();if(k.includes("=>")){const m=k.split("=>"),o={key:m[0].replace(/\(.*\)/,""),symbolType:m[1],text:null,link:null,target:null,flowstate:null,function:null,lineStyle:{},params:{}},h=/\((.*)\)/.exec(m[0]);if(h&&h.length>1){const C=h[1].split(",");for(let st=0;st")?(A=o.text.split(":>"),o.text=A.shift(),o.link=A.join(":>")):o.symbolType.includes(":>")&&(A=o.symbolType.split(":>"),o.symbolType=A.shift(),o.link=A.join(":>")),o.symbolType.includes(` +`)&&(o.symbolType=o.symbolType.split(` +`)[0]),o.link){const C=o.link.indexOf("[")+1,st=o.link.indexOf("]");C>=0&&st>=0&&(o.target=o.link.substring(C,st),o.link=o.link.substring(0,C-1))}if(o.text&&o.text.includes("|")){const C=o.text.split("|");o.flowstate=C.pop().trim(),o.text=C.join("|")}_.symbols[o.key]=o}else if(k.includes("->")){let m=Fi(k);m&&(k=k.replace("@"+m,""));const o=k.split("->");for(let h=0,A=o.length;h{let _t="next";const Tt=q.indexOf("(")+1,U=q.indexOf(")");return Tt>=0&&U>=0&&(_t=C.substring(Tt,U),_t.includes(",")||_t!=="yes"&&_t!=="no"&&(_t=`next, ${_t}`)),_t})(C);const pt=Ne(C,_);let rt=null;if(T.includes(",")){const q=T.split(",");T=q[0],rt=q[1].trim()}if(m&&(pt.symbolType==="condition"?T=="yes"||T=="true"?pt.yes_annotation=m:pt.no_annotation=m:pt.symbolType==="parallel"&&(T==="path1"?pt.path1_annotation=m:T==="path2"?pt.path2_annotation=m:T==="path3"&&(pt.path3_annotation=m)),m=null),_.start||(_.start=pt),h+1")){const m=k.split("@>");for(let o=0,h=m.length;o0&&arguments[0]!==void 0?arguments[0]:{},Yi=ze.defaultLayoutOptions,Ri=Yi===void 0?{}:Yi,En=ze.algorithms,hu=En===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:En,Qc=ze.workerFactory,Ru=ze.workerUrl;if(y(this,Ht),this.defaultLayoutOptions=Ri,this.initialized=!1,typeof Ru>"u"&&typeof Qc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Pr=Qc;typeof Ru<"u"&&typeof Qc>"u"&&(Pr=function(N1){return new Worker(N1)});var Cf=Pr(Ru);if(typeof Cf.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new Bu(Cf),this.worker.postMessage({cmd:"register",algorithms:hu}).then(function(L1){return Jt.initialized=!0}).catch(console.err)}return Di(Ht,[{key:"layout",value:function(ze){var Yi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ri=Yi.layoutOptions,En=Ri===void 0?this.defaultLayoutOptions:Ri,hu=Yi.logging,Qc=hu===void 0?!1:hu,Ru=Yi.measureExecutionTime,Pr=Ru===void 0?!1:Ru;return ze?this.worker.postMessage({cmd:"layout",graph:ze,layoutOptions:En,options:{logging:Qc,measureExecutionTime:Pr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker&&this.worker.terminate()}}]),Ht}();Sr.default=Wt;var Bu=function(){function Ht(Jt){var ze=this;if(y(this,Ht),Jt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=Jt,this.worker.onmessage=function(Yi){setTimeout(function(){ze.receive(ze,Yi)},0)}}return Di(Ht,[{key:"postMessage",value:function(ze){var Yi=this.id||0;this.id=Yi+1,ze.id=Yi;var Ri=this;return new Promise(function(En,hu){Ri.resolvers[Yi]=function(Qc,Ru){Qc?(Ri.convertGwtStyleError(Qc),hu(Qc)):En(Ru)},Ri.worker.postMessage(ze)})}},{key:"receive",value:function(ze,Yi){var Ri=Yi.data,En=ze.resolvers[Ri.id];En&&(delete ze.resolvers[Ri.id],Ri.error?En(Ri.error):En(null,Ri.data))}},{key:"terminate",value:function(){this.worker&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(ze){if(ze){var Yi=ze.__java$exception;Yi&&(Yi.cause&&Yi.cause.backingJsObject&&(ze.cause=Yi.cause.backingJsObject,this.convertGwtStyleError(ze.cause)),delete ze.__java$exception)}}}]),Ht}()},{}],2:[function(Xt,gt,Sr){(function(Di){(function(){var y;typeof window<"u"?y=window:typeof Di<"u"?y=Di:typeof self<"u"&&(y=self);var Wt;function Bu(){}function Ht(){}function Jt(){}function ze(){}function Yi(){}function Ri(){}function En(){}function hu(){}function Qc(){}function Ru(){}function Pr(){}function Cf(){}function L1(){}function N1(){}function og(){}function V3(){}function $1(){}function ul(){}function C0n(){}function M0n(){}function J2(){}function F(){}function T0n(){}function mE(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function FU(){}function D0n(){}function L0n(){}function N0n(){}function OO(){}function $0n(){}function x0n(){}function F0n(){}function DO(){}function B0n(){}function R0n(){}function BU(){}function K0n(){}function _0n(){}function yu(){}function ju(){}function Q2(){}function Y2(){}function H0n(){}function q0n(){}function U0n(){}function G0n(){}function RU(){}function Eu(){}function Z2(){}function np(){}function z0n(){}function X0n(){}function LO(){}function V0n(){}function W0n(){}function J0n(){}function Q0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function obn(){}function sbn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function mbn(){}function vbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Mbn(){}function Tbn(){}function KU(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function NO(){}function $O(){}function vE(){}function Obn(){}function Dbn(){}function xO(){}function Lbn(){}function Nbn(){}function $bn(){}function kE(){}function xbn(){}function Fbn(){}function Bbn(){}function Rbn(){}function Kbn(){}function _bn(){}function Hbn(){}function qbn(){}function Ubn(){}function _U(){}function Gbn(){}function zbn(){}function HU(){}function Xbn(){}function Vbn(){}function Wbn(){}function Jbn(){}function Qbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function FO(){}function uwn(){}function own(){}function swn(){}function fwn(){}function hwn(){}function lwn(){}function awn(){}function dwn(){}function bwn(){}function qU(){}function UU(){}function wwn(){}function gwn(){}function pwn(){}function mwn(){}function vwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Mwn(){}function Twn(){}function Awn(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function Lwn(){}function Nwn(){}function $wn(){}function xwn(){}function Fwn(){}function Bwn(){}function Rwn(){}function Kwn(){}function _wn(){}function Hwn(){}function qwn(){}function Uwn(){}function Gwn(){}function zwn(){}function Xwn(){}function Vwn(){}function Wwn(){}function Jwn(){}function Qwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function ogn(){}function sgn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function mgn(){}function vgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Mgn(){}function Tgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function Lgn(){}function Ngn(){}function $gn(){}function xgn(){}function Fgn(){}function Bgn(){}function Rgn(){}function Kgn(){}function _gn(){}function Hgn(){}function qgn(){}function Ugn(){}function Ggn(){}function zgn(){}function Xgn(){}function Vgn(){}function Wgn(){}function Jgn(){}function Qgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function t2n(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function GU(){}function o2n(){}function s2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function m2n(){}function v2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function C2n(){}function M2n(){}function T2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function L2n(){}function N2n(){}function $2n(){}function x2n(){}function F2n(){}function B2n(){}function R2n(){}function K2n(){}function _2n(){}function H2n(){}function q2n(){}function U2n(){}function G2n(){}function z2n(){}function X2n(){}function V2n(){}function W2n(){}function J2n(){}function Q2n(){}function Y2n(){}function Z2n(){}function npn(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function opn(){}function spn(){}function fpn(){}function hpn(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function mpn(){}function vpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Mpn(){}function zU(){}function Tpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function Lpn(){}function Npn(){}function $pn(){}function XU(){}function xpn(){}function Fpn(){}function Bpn(){}function Rpn(){}function Kpn(){}function _pn(){}function VU(){}function WU(){}function Hpn(){}function JU(){}function QU(){}function qpn(){}function Upn(){}function Gpn(){}function zpn(){}function Xpn(){}function Vpn(){}function Wpn(){}function Jpn(){}function Qpn(){}function Ypn(){}function Zpn(){}function YU(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function o3n(){}function s3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function m3n(){}function v3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function M3n(){}function T3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function L3n(){}function N3n(){}function $3n(){}function x3n(){}function F3n(){}function B3n(){}function R3n(){}function K3n(){}function _3n(){}function H3n(){}function q3n(){}function U3n(){}function G3n(){}function z3n(){}function X3n(){}function V3n(){}function W3n(){}function J3n(){}function Q3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function r4n(){}function c4n(){}function u4n(){}function o4n(){}function s4n(){}function f4n(){}function h4n(){}function l4n(){}function a4n(){}function d4n(){}function b4n(){}function w4n(){}function g4n(){}function p4n(){}function m4n(){}function v4n(){}function k4n(){}function y4n(){}function j4n(){}function E4n(){}function C4n(){}function M4n(){}function T4n(){}function A4n(){}function S4n(){}function P4n(){}function I4n(){}function O4n(){}function _se(){}function D4n(){}function L4n(){}function N4n(){}function $4n(){}function x4n(){}function F4n(){}function B4n(){}function R4n(){}function K4n(){}function _4n(){}function H4n(){}function q4n(){}function U4n(){}function G4n(){}function z4n(){}function X4n(){}function V4n(){}function W4n(){}function J4n(){}function Q4n(){}function Y4n(){}function Z4n(){}function nmn(){}function emn(){}function tmn(){}function imn(){}function rmn(){}function BO(){}function RO(){}function cmn(){}function KO(){}function umn(){}function omn(){}function smn(){}function fmn(){}function hmn(){}function lmn(){}function amn(){}function dmn(){}function bmn(){}function wmn(){}function ZU(){}function gmn(){}function pmn(){}function mmn(){}function Hse(){}function vmn(){}function kmn(){}function ymn(){}function jmn(){}function Emn(){}function Cmn(){}function Mmn(){}function Ra(){}function Tmn(){}function ep(){}function nG(){}function Amn(){}function Smn(){}function Pmn(){}function Imn(){}function Omn(){}function Dmn(){}function Lmn(){}function Nmn(){}function $mn(){}function xmn(){}function Fmn(){}function Bmn(){}function Rmn(){}function Kmn(){}function _mn(){}function Hmn(){}function qmn(){}function Umn(){}function Gmn(){}function hn(){}function zmn(){}function Xmn(){}function Vmn(){}function Wmn(){}function Jmn(){}function Qmn(){}function Ymn(){}function Zmn(){}function nvn(){}function evn(){}function tvn(){}function ivn(){}function rvn(){}function _O(){}function cvn(){}function uvn(){}function ovn(){}function yE(){}function svn(){}function HO(){}function jE(){}function fvn(){}function eG(){}function hvn(){}function lvn(){}function avn(){}function dvn(){}function bvn(){}function wvn(){}function EE(){}function gvn(){}function pvn(){}function CE(){}function mvn(){}function ME(){}function vvn(){}function tG(){}function kvn(){}function qO(){}function iG(){}function yvn(){}function jvn(){}function Evn(){}function Cvn(){}function qse(){}function Mvn(){}function Tvn(){}function Avn(){}function Svn(){}function Pvn(){}function Ivn(){}function Ovn(){}function Dvn(){}function Lvn(){}function Nvn(){}function W3(){}function UO(){}function $vn(){}function xvn(){}function Fvn(){}function Bvn(){}function Rvn(){}function Kvn(){}function _vn(){}function Hvn(){}function qvn(){}function Uvn(){}function Gvn(){}function zvn(){}function Xvn(){}function Vvn(){}function Wvn(){}function Jvn(){}function Qvn(){}function Yvn(){}function Zvn(){}function n6n(){}function e6n(){}function t6n(){}function i6n(){}function r6n(){}function c6n(){}function u6n(){}function o6n(){}function s6n(){}function f6n(){}function h6n(){}function l6n(){}function a6n(){}function d6n(){}function b6n(){}function w6n(){}function g6n(){}function p6n(){}function m6n(){}function v6n(){}function k6n(){}function y6n(){}function j6n(){}function E6n(){}function C6n(){}function M6n(){}function T6n(){}function A6n(){}function S6n(){}function P6n(){}function I6n(){}function O6n(){}function D6n(){}function L6n(){}function N6n(){}function $6n(){}function x6n(){}function F6n(){}function B6n(){}function R6n(){}function K6n(){}function _6n(){}function H6n(){}function q6n(){}function U6n(){}function G6n(){}function z6n(){}function X6n(){}function V6n(){}function W6n(){}function J6n(){}function Q6n(){}function Y6n(){}function Z6n(){}function n5n(){}function e5n(){}function t5n(){}function i5n(){}function r5n(){}function c5n(){}function u5n(){}function o5n(){}function s5n(){}function f5n(){}function h5n(){}function l5n(){}function a5n(){}function d5n(){}function b5n(){}function w5n(){}function g5n(){}function p5n(){}function m5n(){}function v5n(){}function k5n(){}function y5n(){}function j5n(){}function E5n(){}function C5n(){}function M5n(){}function T5n(){}function A5n(){}function rG(){}function S5n(){}function P5n(){}function GO(){n6()}function I5n(){u7()}function O5n(){aA()}function D5n(){Q$()}function L5n(){M5()}function N5n(){ann()}function $5n(){qs()}function x5n(){jZ()}function F5n(){zk()}function B5n(){o7()}function R5n(){$7()}function K5n(){aCn()}function _5n(){Hp()}function H5n(){KLn()}function q5n(){yQ()}function U5n(){SOn()}function G5n(){jQ()}function z5n(){pNn()}function X5n(){AOn()}function V5n(){cm()}function W5n(){nxn()}function J5n(){Z$n()}function Q5n(){EDn()}function Y5n(){exn()}function Z5n(){ca()}function n8n(){ZE()}function e8n(){ltn()}function t8n(){cn()}function i8n(){txn()}function r8n(){Pxn()}function c8n(){POn()}function u8n(){nKn()}function o8n(){IOn()}function s8n(){bUn()}function f8n(){qnn()}function h8n(){kl()}function l8n(){wBn()}function a8n(){lc()}function d8n(){ROn()}function b8n(){_p()}function w8n(){Men()}function g8n(){ua()}function p8n(){Ten()}function m8n(){Bf()}function v8n(){Qk()}function k8n(){EF()}function y8n(){Dx()}function cf(){wSn()}function j8n(){YM()}function E8n(){mA()}function cG(){qe()}function C8n(){NT()}function M8n(){YY()}function uG(){D$()}function oG(){KA()}function T8n(){Fen()}function sG(n){Jn(n)}function A8n(n){this.a=n}function TE(n){this.a=n}function S8n(n){this.a=n}function P8n(n){this.a=n}function I8n(n){this.a=n}function O8n(n){this.a=n}function D8n(n){this.a=n}function L8n(n){this.a=n}function fG(n){this.a=n}function hG(n){this.a=n}function N8n(n){this.a=n}function $8n(n){this.a=n}function zO(n){this.a=n}function x8n(n){this.a=n}function F8n(n){this.a=n}function XO(n){this.a=n}function VO(n){this.a=n}function B8n(n){this.a=n}function WO(n){this.a=n}function R8n(n){this.a=n}function K8n(n){this.a=n}function _8n(n){this.a=n}function lG(n){this.b=n}function H8n(n){this.c=n}function q8n(n){this.a=n}function U8n(n){this.a=n}function G8n(n){this.a=n}function z8n(n){this.a=n}function X8n(n){this.a=n}function V8n(n){this.a=n}function W8n(n){this.a=n}function J8n(n){this.a=n}function Q8n(n){this.a=n}function Y8n(n){this.a=n}function Z8n(n){this.a=n}function n9n(n){this.a=n}function e9n(n){this.a=n}function aG(n){this.a=n}function dG(n){this.a=n}function AE(n){this.a=n}function z9(n){this.a=n}function Ka(){this.a=[]}function t9n(n,e){n.a=e}function Use(n,e){n.a=e}function Gse(n,e){n.b=e}function zse(n,e){n.b=e}function Xse(n,e){n.b=e}function bG(n,e){n.j=e}function Vse(n,e){n.g=e}function Wse(n,e){n.i=e}function Jse(n,e){n.c=e}function Qse(n,e){n.c=e}function Yse(n,e){n.d=e}function Zse(n,e){n.d=e}function _a(n,e){n.k=e}function nfe(n,e){n.c=e}function wG(n,e){n.c=e}function gG(n,e){n.a=e}function efe(n,e){n.a=e}function tfe(n,e){n.f=e}function ife(n,e){n.a=e}function rfe(n,e){n.b=e}function JO(n,e){n.d=e}function SE(n,e){n.i=e}function pG(n,e){n.o=e}function cfe(n,e){n.r=e}function ufe(n,e){n.a=e}function ofe(n,e){n.b=e}function i9n(n,e){n.e=e}function sfe(n,e){n.f=e}function mG(n,e){n.g=e}function ffe(n,e){n.e=e}function hfe(n,e){n.f=e}function lfe(n,e){n.f=e}function QO(n,e){n.a=e}function YO(n,e){n.b=e}function afe(n,e){n.n=e}function dfe(n,e){n.a=e}function bfe(n,e){n.c=e}function wfe(n,e){n.c=e}function gfe(n,e){n.c=e}function pfe(n,e){n.a=e}function mfe(n,e){n.a=e}function vfe(n,e){n.d=e}function kfe(n,e){n.d=e}function yfe(n,e){n.e=e}function jfe(n,e){n.e=e}function Efe(n,e){n.g=e}function Cfe(n,e){n.f=e}function Mfe(n,e){n.j=e}function Tfe(n,e){n.a=e}function Afe(n,e){n.a=e}function Sfe(n,e){n.b=e}function r9n(n){n.b=n.a}function c9n(n){n.c=n.d.d}function vG(n){this.a=n}function kG(n){this.a=n}function yG(n){this.a=n}function Ha(n){this.a=n}function qa(n){this.a=n}function X9(n){this.a=n}function u9n(n){this.a=n}function jG(n){this.a=n}function V9(n){this.a=n}function PE(n){this.a=n}function ol(n){this.a=n}function Sb(n){this.a=n}function o9n(n){this.a=n}function s9n(n){this.a=n}function ZO(n){this.b=n}function J3(n){this.b=n}function Q3(n){this.b=n}function nD(n){this.a=n}function f9n(n){this.a=n}function eD(n){this.c=n}function C(n){this.c=n}function h9n(n){this.c=n}function Xv(n){this.d=n}function EG(n){this.a=n}function Te(n){this.a=n}function l9n(n){this.a=n}function CG(n){this.a=n}function MG(n){this.a=n}function TG(n){this.a=n}function AG(n){this.a=n}function SG(n){this.a=n}function PG(n){this.a=n}function Y3(n){this.a=n}function a9n(n){this.a=n}function d9n(n){this.a=n}function Z3(n){this.a=n}function b9n(n){this.a=n}function w9n(n){this.a=n}function g9n(n){this.a=n}function p9n(n){this.a=n}function m9n(n){this.a=n}function v9n(n){this.a=n}function k9n(n){this.a=n}function y9n(n){this.a=n}function j9n(n){this.a=n}function E9n(n){this.a=n}function C9n(n){this.a=n}function M9n(n){this.a=n}function T9n(n){this.a=n}function A9n(n){this.a=n}function S9n(n){this.a=n}function Vv(n){this.a=n}function P9n(n){this.a=n}function I9n(n){this.a=n}function O9n(n){this.a=n}function D9n(n){this.a=n}function IE(n){this.a=n}function L9n(n){this.a=n}function N9n(n){this.a=n}function n4(n){this.a=n}function IG(n){this.a=n}function $9n(n){this.a=n}function x9n(n){this.a=n}function F9n(n){this.a=n}function B9n(n){this.a=n}function R9n(n){this.a=n}function K9n(n){this.a=n}function OG(n){this.a=n}function DG(n){this.a=n}function LG(n){this.a=n}function Wv(n){this.a=n}function OE(n){this.e=n}function e4(n){this.a=n}function _9n(n){this.a=n}function tp(n){this.a=n}function NG(n){this.a=n}function H9n(n){this.a=n}function q9n(n){this.a=n}function U9n(n){this.a=n}function G9n(n){this.a=n}function z9n(n){this.a=n}function X9n(n){this.a=n}function V9n(n){this.a=n}function W9n(n){this.a=n}function J9n(n){this.a=n}function Q9n(n){this.a=n}function Y9n(n){this.a=n}function $G(n){this.a=n}function Z9n(n){this.a=n}function n7n(n){this.a=n}function e7n(n){this.a=n}function t7n(n){this.a=n}function i7n(n){this.a=n}function r7n(n){this.a=n}function c7n(n){this.a=n}function u7n(n){this.a=n}function o7n(n){this.a=n}function s7n(n){this.a=n}function f7n(n){this.a=n}function h7n(n){this.a=n}function l7n(n){this.a=n}function a7n(n){this.a=n}function d7n(n){this.a=n}function b7n(n){this.a=n}function w7n(n){this.a=n}function g7n(n){this.a=n}function p7n(n){this.a=n}function m7n(n){this.a=n}function v7n(n){this.a=n}function k7n(n){this.a=n}function y7n(n){this.a=n}function j7n(n){this.a=n}function E7n(n){this.a=n}function C7n(n){this.a=n}function M7n(n){this.a=n}function T7n(n){this.a=n}function A7n(n){this.a=n}function S7n(n){this.a=n}function P7n(n){this.a=n}function I7n(n){this.a=n}function O7n(n){this.a=n}function D7n(n){this.a=n}function L7n(n){this.a=n}function N7n(n){this.a=n}function $7n(n){this.a=n}function x7n(n){this.a=n}function F7n(n){this.c=n}function B7n(n){this.b=n}function R7n(n){this.a=n}function K7n(n){this.a=n}function _7n(n){this.a=n}function H7n(n){this.a=n}function q7n(n){this.a=n}function U7n(n){this.a=n}function G7n(n){this.a=n}function z7n(n){this.a=n}function X7n(n){this.a=n}function V7n(n){this.a=n}function W7n(n){this.a=n}function J7n(n){this.a=n}function Q7n(n){this.a=n}function Y7n(n){this.a=n}function Z7n(n){this.a=n}function nkn(n){this.a=n}function ekn(n){this.a=n}function tkn(n){this.a=n}function ikn(n){this.a=n}function rkn(n){this.a=n}function ckn(n){this.a=n}function ukn(n){this.a=n}function okn(n){this.a=n}function skn(n){this.a=n}function fkn(n){this.a=n}function hkn(n){this.a=n}function lkn(n){this.a=n}function sl(n){this.a=n}function sg(n){this.a=n}function akn(n){this.a=n}function dkn(n){this.a=n}function bkn(n){this.a=n}function wkn(n){this.a=n}function gkn(n){this.a=n}function pkn(n){this.a=n}function mkn(n){this.a=n}function vkn(n){this.a=n}function kkn(n){this.a=n}function ykn(n){this.a=n}function jkn(n){this.a=n}function Ekn(n){this.a=n}function Ckn(n){this.a=n}function Mkn(n){this.a=n}function Tkn(n){this.a=n}function Akn(n){this.a=n}function Skn(n){this.a=n}function Pkn(n){this.a=n}function Ikn(n){this.a=n}function Okn(n){this.a=n}function Dkn(n){this.a=n}function Lkn(n){this.a=n}function Nkn(n){this.a=n}function $kn(n){this.a=n}function xkn(n){this.a=n}function Fkn(n){this.a=n}function DE(n){this.a=n}function Bkn(n){this.f=n}function Rkn(n){this.a=n}function Kkn(n){this.a=n}function _kn(n){this.a=n}function Hkn(n){this.a=n}function qkn(n){this.a=n}function Ukn(n){this.a=n}function Gkn(n){this.a=n}function zkn(n){this.a=n}function Xkn(n){this.a=n}function Vkn(n){this.a=n}function Wkn(n){this.a=n}function Jkn(n){this.a=n}function Qkn(n){this.a=n}function Ykn(n){this.a=n}function Zkn(n){this.a=n}function nyn(n){this.a=n}function eyn(n){this.a=n}function tyn(n){this.a=n}function iyn(n){this.a=n}function ryn(n){this.a=n}function cyn(n){this.a=n}function uyn(n){this.a=n}function oyn(n){this.a=n}function syn(n){this.a=n}function fyn(n){this.a=n}function hyn(n){this.a=n}function lyn(n){this.a=n}function ayn(n){this.a=n}function tD(n){this.a=n}function xG(n){this.a=n}function lt(n){this.b=n}function dyn(n){this.a=n}function byn(n){this.a=n}function wyn(n){this.a=n}function gyn(n){this.a=n}function pyn(n){this.a=n}function myn(n){this.a=n}function vyn(n){this.a=n}function kyn(n){this.b=n}function yyn(n){this.a=n}function W9(n){this.a=n}function jyn(n){this.a=n}function Eyn(n){this.a=n}function FG(n){this.c=n}function LE(n){this.e=n}function NE(n){this.a=n}function $E(n){this.a=n}function iD(n){this.a=n}function Cyn(n){this.d=n}function Myn(n){this.a=n}function BG(n){this.a=n}function RG(n){this.a=n}function Wd(n){this.e=n}function Pfe(){this.a=0}function de(){Hu(this)}function Z(){pL(this)}function rD(){sIn(this)}function Tyn(){}function Jd(){this.c=Gdn}function Ayn(n,e){n.b+=e}function Ife(n,e){e.Wb(n)}function Ofe(n){return n.a}function Dfe(n){return n.a}function Lfe(n){return n.a}function Nfe(n){return n.a}function $fe(n){return n.a}function M(n){return n.e}function xfe(){return null}function Ffe(){return null}function Bfe(){Cz(),pLe()}function Rfe(n){n.b.Of(n.e)}function Syn(n){n.b=new CD}function Jv(n,e){n.b=e-n.b}function Qv(n,e){n.a=e-n.a}function Bn(n,e){n.push(e)}function Pyn(n,e){n.sort(e)}function Iyn(n,e){e.jd(n.a)}function Kfe(n,e){gi(e,n)}function _fe(n,e,t){n.Yd(t,e)}function J9(n,e){n.e=e,e.b=n}function KG(n){uh(),this.a=n}function Oyn(n){uh(),this.a=n}function Dyn(n){uh(),this.a=n}function cD(n){m0(),this.a=n}function Lyn(n){O4(),VK.le(n)}function _G(){_G=F,new de}function Ua(){YTn.call(this)}function HG(){YTn.call(this)}function qG(){Ua.call(this)}function uD(){Ua.call(this)}function Nyn(){Ua.call(this)}function Q9(){Ua.call(this)}function Cu(){Ua.call(this)}function ip(){Ua.call(this)}function Pe(){Ua.call(this)}function Bo(){Ua.call(this)}function $yn(){Ua.call(this)}function nc(){Ua.call(this)}function xyn(){Ua.call(this)}function Fyn(){this.a=this}function xE(){this.Bb|=256}function Byn(){this.b=new GMn}function Pb(n,e){n.length=e}function FE(n,e){nn(n.a,e)}function Hfe(n,e){bnn(n.c,e)}function qfe(n,e){fi(n.b,e)}function Ufe(n,e){uA(n.a,e)}function Gfe(n,e){cx(n.a,e)}function t4(n,e){it(n.e,e)}function rp(n){jA(n.c,n.b)}function zfe(n,e){n.kc().Nb(e)}function UG(n){this.a=B5e(n)}function ni(){this.a=new de}function Ryn(){this.a=new de}function GG(){this.a=new rCn}function BE(){this.a=new Z}function oD(){this.a=new Z}function zG(){this.a=new Z}function hs(){this.a=new cbn}function Ga(){this.a=new NLn}function XG(){this.a=new _U}function VG(){this.a=new TOn}function WG(){this.a=new BAn}function Kyn(){this.a=new Z}function _yn(){this.a=new Z}function Hyn(){this.a=new Z}function JG(){this.a=new Z}function qyn(){this.d=new Z}function Uyn(){this.a=new zOn}function Gyn(){this.a=new ni}function zyn(){this.a=new de}function Xyn(){this.b=new de}function Vyn(){this.b=new Z}function QG(){this.e=new Z}function Wyn(){this.a=new Z5n}function Jyn(){this.d=new Z}function Qyn(){QIn.call(this)}function Yyn(){QIn.call(this)}function Zyn(){Z.call(this)}function YG(){qG.call(this)}function ZG(){BE.call(this)}function njn(){qC.call(this)}function ejn(){JG.call(this)}function Yv(){Tyn.call(this)}function sD(){Yv.call(this)}function cp(){Tyn.call(this)}function nz(){cp.call(this)}function tjn(){rz.call(this)}function ijn(){rz.call(this)}function rjn(){rz.call(this)}function cjn(){cz.call(this)}function Zv(){svn.call(this)}function ez(){svn.call(this)}function Mu(){Ct.call(this)}function ujn(){yjn.call(this)}function ojn(){yjn.call(this)}function sjn(){de.call(this)}function fjn(){de.call(this)}function hjn(){de.call(this)}function fD(){cxn.call(this)}function ljn(){ni.call(this)}function ajn(){xE.call(this)}function hD(){BX.call(this)}function tz(){de.call(this)}function lD(){BX.call(this)}function aD(){de.call(this)}function djn(){de.call(this)}function iz(){ME.call(this)}function bjn(){iz.call(this)}function wjn(){ME.call(this)}function gjn(){rG.call(this)}function rz(){this.a=new ni}function pjn(){this.a=new de}function mjn(){this.a=new Z}function cz(){this.a=new de}function up(){this.a=new Ct}function vjn(){this.j=new Z}function kjn(){this.a=new mEn}function yjn(){this.a=new mvn}function uz(){this.a=new Z4n}function n6(){n6=F,KK=new Ht}function dD(){dD=F,_K=new Ejn}function bD(){bD=F,HK=new jjn}function jjn(){XO.call(this,"")}function Ejn(){XO.call(this,"")}function Cjn(n){S$n.call(this,n)}function Mjn(n){S$n.call(this,n)}function oz(n){fG.call(this,n)}function sz(n){XEn.call(this,n)}function Xfe(n){XEn.call(this,n)}function Vfe(n){sz.call(this,n)}function Wfe(n){sz.call(this,n)}function Jfe(n){sz.call(this,n)}function Tjn(n){zN.call(this,n)}function Ajn(n){zN.call(this,n)}function Sjn(n){uSn.call(this,n)}function Pjn(n){Oz.call(this,n)}function e6(n){WE.call(this,n)}function fz(n){WE.call(this,n)}function Ijn(n){WE.call(this,n)}function hz(n){mje.call(this,n)}function lz(n){hz.call(this,n)}function ec(n){APn.call(this,n)}function Ojn(n){ec.call(this,n)}function op(){z9.call(this,{})}function Djn(){Djn=F,dQn=new M0n}function RE(){RE=F,GK=new STn}function Ljn(){Ljn=F,oun=new Bu}function az(){az=F,sun=new N1}function KE(){KE=F,P8=new $1}function wD(n){b4(),this.a=n}function gD(n){RQ(),this.a=n}function Qd(n){nN(),this.f=n}function pD(n){nN(),this.f=n}function Njn(n){bSn(),this.a=n}function $jn(n){n.b=null,n.c=0}function Qfe(n,e){n.e=e,bqn(n,e)}function Yfe(n,e){n.a=e,cEe(n)}function mD(n,e,t){n.a[e.g]=t}function Zfe(n,e,t){kke(t,n,e)}function nhe(n,e){Wae(e.i,n.n)}function xjn(n,e){v6e(n).Cd(e)}function ehe(n,e){n.a.ec().Mc(e)}function Fjn(n,e){return n.g-e.g}function the(n,e){return n*n/e}function on(n){return Jn(n),n}function $(n){return Jn(n),n}function Y9(n){return Jn(n),n}function ihe(n){return new AE(n)}function rhe(n){return new qb(n)}function dz(n){return Jn(n),n}function che(n){return Jn(n),n}function _E(n){ec.call(this,n)}function Ir(n){ec.call(this,n)}function Bjn(n){ec.call(this,n)}function vD(n){APn.call(this,n)}function i4(n){ec.call(this,n)}function Gn(n){ec.call(this,n)}function Or(n){ec.call(this,n)}function Rjn(n){ec.call(this,n)}function sp(n){ec.call(this,n)}function Kl(n){ec.call(this,n)}function _l(n){ec.call(this,n)}function fp(n){ec.call(this,n)}function nh(n){ec.call(this,n)}function kD(n){ec.call(this,n)}function Le(n){ec.call(this,n)}function Ku(n){Jn(n),this.a=n}function bz(n){return ld(n),n}function t6(n){TW(n,n.length)}function i6(n){return n.b==n.c}function Ib(n){return!!n&&n.b}function uhe(n){return!!n&&n.k}function ohe(n){return!!n&&n.j}function she(n,e,t){n.c.Ef(e,t)}function Kjn(n,e){n.be(e),e.ae(n)}function hp(n){uh(),this.a=Se(n)}function yD(){this.a=Oe(Se(ur))}function _jn(){throw M(new Pe)}function fhe(){throw M(new Pe)}function wz(){throw M(new Pe)}function Hjn(){throw M(new Pe)}function hhe(){throw M(new Pe)}function lhe(){throw M(new Pe)}function HE(){HE=F,O4()}function Hl(){X9.call(this,"")}function r6(){X9.call(this,"")}function x1(){X9.call(this,"")}function lp(){X9.call(this,"")}function gz(n){Ir.call(this,n)}function pz(n){Ir.call(this,n)}function eh(n){Gn.call(this,n)}function r4(n){Q3.call(this,n)}function qjn(n){r4.call(this,n)}function jD(n){BC.call(this,n)}function ED(n){JX.call(this,n,0)}function CD(){sJ.call(this,12,3)}function T(n,e){return kOn(n,e)}function qE(n,e){return o$(n,e)}function ahe(n,e){return n.a-e.a}function dhe(n,e){return n.a-e.a}function bhe(n,e){return n.a-e.a}function whe(n,e){return e in n.a}function Ujn(n){return n.a?n.b:0}function ghe(n){return n.a?n.b:0}function phe(n,e,t){e.Cd(n.a[t])}function mhe(n,e,t){e.Pe(n.a[t])}function vhe(n,e){n.b=new rr(e)}function khe(n,e){return n.b=e,n}function Gjn(n,e){return n.c=e,n}function zjn(n,e){return n.f=e,n}function yhe(n,e){return n.g=e,n}function mz(n,e){return n.a=e,n}function vz(n,e){return n.f=e,n}function jhe(n,e){return n.k=e,n}function kz(n,e){return n.a=e,n}function Ehe(n,e){return n.e=e,n}function yz(n,e){return n.e=e,n}function Che(n,e){return n.f=e,n}function Mhe(n,e){n.b=!0,n.d=e}function The(n,e){return n.b-e.b}function Ahe(n,e){return n.g-e.g}function She(n,e){return n?0:e-1}function Xjn(n,e){return n?0:e-1}function Phe(n,e){return n?e-1:0}function Ihe(n,e){return n.s-e.s}function Ohe(n,e){return e.rg(n)}function Yd(n,e){return n.b=e,n}function UE(n,e){return n.a=e,n}function Zd(n,e){return n.c=e,n}function n0(n,e){return n.d=e,n}function e0(n,e){return n.e=e,n}function jz(n,e){return n.f=e,n}function c6(n,e){return n.a=e,n}function c4(n,e){return n.b=e,n}function u4(n,e){return n.c=e,n}function an(n,e){return n.c=e,n}function Sn(n,e){return n.b=e,n}function dn(n,e){return n.d=e,n}function bn(n,e){return n.e=e,n}function Dhe(n,e){return n.f=e,n}function wn(n,e){return n.g=e,n}function gn(n,e){return n.a=e,n}function pn(n,e){return n.i=e,n}function mn(n,e){return n.j=e,n}function Lhe(n,e){ca(),ic(e,n)}function Nhe(n,e,t){Jbe(n.a,e,t)}function GE(n){$L.call(this,n)}function Vjn(n){Z5e.call(this,n)}function Wjn(n){SIn.call(this,n)}function Ez(n){SIn.call(this,n)}function F1(n){S0.call(this,n)}function Jjn(n){CN.call(this,n)}function Qjn(n){CN.call(this,n)}function Yjn(){DX.call(this,"")}function Li(){this.a=0,this.b=0}function Zjn(){this.b=0,this.a=0}function nEn(n,e){n.b=0,Zb(n,e)}function eEn(n,e){return n.k=e,n}function $he(n,e){return n.j=e,n}function xhe(n,e){n.c=e,n.b=!0}function tEn(){tEn=F,TQn=Xke()}function B1(){B1=F,voe=rke()}function iEn(){iEn=F,Ti=gye()}function Cz(){Cz=F,Oa=z4()}function o4(){o4=F,Udn=cke()}function rEn(){rEn=F,ise=uke()}function Mz(){Mz=F,yc=tEe()}function uf(n){return n.e&&n.e()}function cEn(n){return n.l|n.m<<22}function uEn(n,e){return n.c._b(e)}function oEn(n,e){return rBn(n.b,e)}function MD(n){return n?n.d:null}function Fhe(n){return n?n.g:null}function Bhe(n){return n?n.i:null}function za(n){return ll(n),n.o}function fg(n,e){return n.a+=e,n}function TD(n,e){return n.a+=e,n}function ql(n,e){return n.a+=e,n}function t0(n,e){return n.a+=e,n}function Tz(n,e){for(;n.Bd(e););}function zE(n){this.a=new ap(n)}function sEn(){throw M(new Pe)}function fEn(){throw M(new Pe)}function hEn(){throw M(new Pe)}function lEn(){throw M(new Pe)}function aEn(){throw M(new Pe)}function dEn(){throw M(new Pe)}function Ul(n){this.a=new iN(n)}function bEn(){this.a=new K5(Rln)}function wEn(){this.b=new K5(rln)}function gEn(){this.a=new K5(f1n)}function pEn(){this.b=new K5(Fq)}function mEn(){this.b=new K5(Fq)}function XE(n){this.a=0,this.b=n}function Az(n){zGn(),ILe(this,n)}function s4(n){return z1(n),n.a}function Z9(n){return n.b!=n.d.c}function Sz(n,e){return n.d[e.p]}function vEn(n,e){return XTe(n,e)}function Pz(n,e,t){n.splice(e,t)}function hg(n,e){for(;n.Re(e););}function kEn(n){n.c?Dqn(n):Lqn(n)}function yEn(){throw M(new Pe)}function jEn(){throw M(new Pe)}function EEn(){throw M(new Pe)}function CEn(){throw M(new Pe)}function MEn(){throw M(new Pe)}function TEn(){throw M(new Pe)}function AEn(){throw M(new Pe)}function SEn(){throw M(new Pe)}function PEn(){throw M(new Pe)}function IEn(){throw M(new Pe)}function Rhe(){throw M(new nc)}function Khe(){throw M(new nc)}function n7(n){this.a=new OEn(n)}function OEn(n){Ume(this,n,jje())}function e7(n){return!n||oIn(n)}function t7(n){return Zf[n]!=-1}function _he(){cP!=0&&(cP=0),uP=-1}function DEn(){RK==null&&(RK=[])}function i7(n,e){Cg.call(this,n,e)}function f4(n,e){i7.call(this,n,e)}function LEn(n,e){this.a=n,this.b=e}function NEn(n,e){this.a=n,this.b=e}function $En(n,e){this.a=n,this.b=e}function xEn(n,e){this.a=n,this.b=e}function FEn(n,e){this.a=n,this.b=e}function BEn(n,e){this.a=n,this.b=e}function REn(n,e){this.a=n,this.b=e}function h4(n,e){this.e=n,this.d=e}function Iz(n,e){this.b=n,this.c=e}function KEn(n,e){this.b=n,this.a=e}function _En(n,e){this.b=n,this.a=e}function HEn(n,e){this.b=n,this.a=e}function qEn(n,e){this.b=n,this.a=e}function UEn(n,e){this.a=n,this.b=e}function AD(n,e){this.a=n,this.b=e}function GEn(n,e){this.a=n,this.f=e}function i0(n,e){this.g=n,this.i=e}function je(n,e){this.f=n,this.g=e}function zEn(n,e){this.b=n,this.c=e}function XEn(n){KX(n.dc()),this.c=n}function Hhe(n,e){this.a=n,this.b=e}function VEn(n,e){this.a=n,this.b=e}function WEn(n){this.a=u(Se(n),15)}function Oz(n){this.a=u(Se(n),15)}function JEn(n){this.a=u(Se(n),85)}function VE(n){this.b=u(Se(n),85)}function WE(n){this.b=u(Se(n),51)}function JE(){this.q=new y.Date}function SD(n,e){this.a=n,this.b=e}function QEn(n,e){return Zc(n.b,e)}function r7(n,e){return n.b.Hc(e)}function YEn(n,e){return n.b.Ic(e)}function ZEn(n,e){return n.b.Qc(e)}function nCn(n,e){return n.b.Hc(e)}function eCn(n,e){return n.c.uc(e)}function tCn(n,e){return rt(n.c,e)}function of(n,e){return n.a._b(e)}function iCn(n,e){return n>e&&e0}function ND(n,e){return Ec(n,e)<0}function vCn(n,e){return JL(n.a,e)}function ole(n,e){yOn.call(this,n,e)}function Bz(n){wN(),uSn.call(this,n)}function Rz(n,e){bPn(n,n.length,e)}function s7(n,e){HPn(n,n.length,e)}function d6(n,e){return n.a.get(e)}function kCn(n,e){return Zc(n.e,e)}function Kz(n){return Jn(n),!1}function _z(n){this.a=u(Se(n),229)}function cC(n){In.call(this,n,21)}function uC(n,e){je.call(this,n,e)}function $D(n,e){je.call(this,n,e)}function yCn(n,e){this.b=n,this.a=e}function oC(n,e){this.d=n,this.e=e}function jCn(n,e){this.a=n,this.b=e}function ECn(n,e){this.a=n,this.b=e}function CCn(n,e){this.a=n,this.b=e}function MCn(n,e){this.a=n,this.b=e}function bp(n,e){this.a=n,this.b=e}function TCn(n,e){this.b=n,this.a=e}function Hz(n,e){this.b=n,this.a=e}function qz(n,e){je.call(this,n,e)}function Uz(n,e){je.call(this,n,e)}function lg(n,e){je.call(this,n,e)}function xD(n,e){je.call(this,n,e)}function FD(n,e){je.call(this,n,e)}function BD(n,e){je.call(this,n,e)}function sC(n,e){je.call(this,n,e)}function Gz(n,e){this.b=n,this.a=e}function fC(n,e){je.call(this,n,e)}function zz(n,e){this.b=n,this.a=e}function hC(n,e){je.call(this,n,e)}function ACn(n,e){this.b=n,this.a=e}function Xz(n,e){je.call(this,n,e)}function RD(n,e){je.call(this,n,e)}function f7(n,e){je.call(this,n,e)}function b6(n,e,t){n.splice(e,0,t)}function sle(n,e,t){n.Mb(t)&&e.Cd(t)}function fle(n,e,t){e.Pe(n.a.Ye(t))}function hle(n,e,t){e.Dd(n.a.Ze(t))}function lle(n,e,t){e.Cd(n.a.Kb(t))}function ale(n,e){return Au(n.c,e)}function dle(n,e){return Au(n.e,e)}function lC(n,e){je.call(this,n,e)}function aC(n,e){je.call(this,n,e)}function w6(n,e){je.call(this,n,e)}function Vz(n,e){je.call(this,n,e)}function ei(n,e){je.call(this,n,e)}function dC(n,e){je.call(this,n,e)}function SCn(n,e){this.a=n,this.b=e}function PCn(n,e){this.a=n,this.b=e}function ICn(n,e){this.a=n,this.b=e}function OCn(n,e){this.a=n,this.b=e}function DCn(n,e){this.a=n,this.b=e}function LCn(n,e){this.a=n,this.b=e}function NCn(n,e){this.b=n,this.a=e}function $Cn(n,e){this.b=n,this.a=e}function Wz(n,e){this.b=n,this.a=e}function d4(n,e){this.c=n,this.d=e}function xCn(n,e){this.e=n,this.d=e}function FCn(n,e){this.a=n,this.b=e}function BCn(n,e){this.a=n,this.b=e}function RCn(n,e){this.a=n,this.b=e}function KCn(n,e){this.b=n,this.a=e}function _Cn(n,e){this.b=e,this.c=n}function bC(n,e){je.call(this,n,e)}function h7(n,e){je.call(this,n,e)}function KD(n,e){je.call(this,n,e)}function Jz(n,e){je.call(this,n,e)}function g6(n,e){je.call(this,n,e)}function _D(n,e){je.call(this,n,e)}function HD(n,e){je.call(this,n,e)}function l7(n,e){je.call(this,n,e)}function Qz(n,e){je.call(this,n,e)}function qD(n,e){je.call(this,n,e)}function p6(n,e){je.call(this,n,e)}function Yz(n,e){je.call(this,n,e)}function m6(n,e){je.call(this,n,e)}function v6(n,e){je.call(this,n,e)}function Db(n,e){je.call(this,n,e)}function UD(n,e){je.call(this,n,e)}function GD(n,e){je.call(this,n,e)}function Zz(n,e){je.call(this,n,e)}function a7(n,e){je.call(this,n,e)}function ag(n,e){je.call(this,n,e)}function zD(n,e){je.call(this,n,e)}function wC(n,e){je.call(this,n,e)}function d7(n,e){je.call(this,n,e)}function Lb(n,e){je.call(this,n,e)}function gC(n,e){je.call(this,n,e)}function nX(n,e){je.call(this,n,e)}function XD(n,e){je.call(this,n,e)}function VD(n,e){je.call(this,n,e)}function WD(n,e){je.call(this,n,e)}function JD(n,e){je.call(this,n,e)}function QD(n,e){je.call(this,n,e)}function YD(n,e){je.call(this,n,e)}function ZD(n,e){je.call(this,n,e)}function HCn(n,e){this.b=n,this.a=e}function eX(n,e){je.call(this,n,e)}function qCn(n,e){this.a=n,this.b=e}function UCn(n,e){this.a=n,this.b=e}function GCn(n,e){this.a=n,this.b=e}function tX(n,e){je.call(this,n,e)}function iX(n,e){je.call(this,n,e)}function zCn(n,e){this.a=n,this.b=e}function ble(n,e){return k4(),e!=n}function b7(n){return oe(n.a),n.b}function nL(n){return yCe(n,n.c),n}function XCn(){return tEn(),new TQn}function VCn(){VC(),this.a=new kV}function WCn(){OA(),this.a=new ni}function JCn(){NN(),this.b=new ni}function QCn(n,e){this.b=n,this.d=e}function YCn(n,e){this.a=n,this.b=e}function ZCn(n,e){this.a=n,this.b=e}function nMn(n,e){this.a=n,this.b=e}function eMn(n,e){this.b=n,this.a=e}function rX(n,e){je.call(this,n,e)}function cX(n,e){je.call(this,n,e)}function pC(n,e){je.call(this,n,e)}function u0(n,e){je.call(this,n,e)}function eL(n,e){je.call(this,n,e)}function mC(n,e){je.call(this,n,e)}function uX(n,e){je.call(this,n,e)}function oX(n,e){je.call(this,n,e)}function w7(n,e){je.call(this,n,e)}function sX(n,e){je.call(this,n,e)}function tL(n,e){je.call(this,n,e)}function vC(n,e){je.call(this,n,e)}function iL(n,e){je.call(this,n,e)}function rL(n,e){je.call(this,n,e)}function cL(n,e){je.call(this,n,e)}function uL(n,e){je.call(this,n,e)}function fX(n,e){je.call(this,n,e)}function oL(n,e){je.call(this,n,e)}function hX(n,e){je.call(this,n,e)}function g7(n,e){je.call(this,n,e)}function sL(n,e){je.call(this,n,e)}function lX(n,e){je.call(this,n,e)}function p7(n,e){je.call(this,n,e)}function aX(n,e){je.call(this,n,e)}function tMn(n,e){this.b=n,this.a=e}function iMn(n,e){this.b=n,this.a=e}function rMn(n,e){this.b=n,this.a=e}function cMn(n,e){this.b=n,this.a=e}function dX(n,e){this.a=n,this.b=e}function uMn(n,e){this.a=n,this.b=e}function oMn(n,e){this.a=n,this.b=e}function V(n,e){this.a=n,this.b=e}function k6(n,e){je.call(this,n,e)}function m7(n,e){je.call(this,n,e)}function wp(n,e){je.call(this,n,e)}function y6(n,e){je.call(this,n,e)}function v7(n,e){je.call(this,n,e)}function fL(n,e){je.call(this,n,e)}function kC(n,e){je.call(this,n,e)}function j6(n,e){je.call(this,n,e)}function hL(n,e){je.call(this,n,e)}function yC(n,e){je.call(this,n,e)}function dg(n,e){je.call(this,n,e)}function k7(n,e){je.call(this,n,e)}function E6(n,e){je.call(this,n,e)}function C6(n,e){je.call(this,n,e)}function y7(n,e){je.call(this,n,e)}function jC(n,e){je.call(this,n,e)}function bg(n,e){je.call(this,n,e)}function lL(n,e){je.call(this,n,e)}function sMn(n,e){je.call(this,n,e)}function EC(n,e){je.call(this,n,e)}function fMn(n,e){this.a=n,this.b=e}function hMn(n,e){this.a=n,this.b=e}function lMn(n,e){this.a=n,this.b=e}function aMn(n,e){this.a=n,this.b=e}function dMn(n,e){this.a=n,this.b=e}function bMn(n,e){this.a=n,this.b=e}function bi(n,e){this.a=n,this.b=e}function wMn(n,e){this.a=n,this.b=e}function gMn(n,e){this.a=n,this.b=e}function pMn(n,e){this.a=n,this.b=e}function mMn(n,e){this.a=n,this.b=e}function vMn(n,e){this.a=n,this.b=e}function kMn(n,e){this.a=n,this.b=e}function yMn(n,e){this.b=n,this.a=e}function jMn(n,e){this.b=n,this.a=e}function EMn(n,e){this.b=n,this.a=e}function CMn(n,e){this.b=n,this.a=e}function MMn(n,e){this.a=n,this.b=e}function TMn(n,e){this.a=n,this.b=e}function CC(n,e){je.call(this,n,e)}function AMn(n,e){this.a=n,this.b=e}function SMn(n,e){this.a=n,this.b=e}function gp(n,e){je.call(this,n,e)}function PMn(n,e){this.f=n,this.c=e}function bX(n,e){return Au(n.g,e)}function wle(n,e){return Au(e.b,n)}function IMn(n,e){return wx(n.a,e)}function gle(n,e){return-n.b.af(e)}function ple(n,e){n&&Xe(hE,n,e)}function wX(n,e){n.i=null,kT(n,e)}function mle(n,e,t){yKn(e,oF(n,t))}function vle(n,e,t){yKn(e,oF(n,t))}function kle(n,e){VMe(n.a,u(e,58))}function OMn(n,e){U4e(n.a,u(e,12))}function MC(n,e){this.a=n,this.b=e}function DMn(n,e){this.a=n,this.b=e}function LMn(n,e){this.a=n,this.b=e}function NMn(n,e){this.a=n,this.b=e}function $Mn(n,e){this.a=n,this.b=e}function xMn(n,e){this.d=n,this.b=e}function FMn(n,e){this.e=n,this.a=e}function j7(n,e){this.b=n,this.c=e}function gX(n,e){this.i=n,this.g=e}function pX(n,e){this.d=n,this.e=e}function yle(n,e){cme(new ne(n),e)}function TC(n){return Rk(n.c,n.b)}function Kr(n){return n?n.md():null}function x(n){return n??null}function Ai(n){return typeof n===nB}function Nb(n){return typeof n===i3}function $b(n){return typeof n===dtn}function o0(n,e){return Ec(n,e)==0}function AC(n,e){return Ec(n,e)>=0}function M6(n,e){return Ec(n,e)!=0}function SC(n,e){return jve(n.Kc(),e)}function _1(n,e){return n.Rd().Xb(e)}function BMn(n){return eo(n),n.d.gc()}function PC(n){return F6(n==null),n}function T6(n,e){return n.a+=""+e,n}function Er(n,e){return n.a+=""+e,n}function A6(n,e){return n.a+=""+e,n}function Dc(n,e){return n.a+=""+e,n}function Be(n,e){return n.a+=""+e,n}function mX(n,e){return n.a+=""+e,n}function jle(n){return""+(Jn(n),n)}function RMn(n){Hu(this),f5(this,n)}function KMn(){oJ(),dW.call(this)}function _Mn(n,e){mW.call(this,n,e)}function HMn(n,e){mW.call(this,n,e)}function IC(n,e){mW.call(this,n,e)}function ir(n,e){xt(n,e,n.c.b,n.c)}function wg(n,e){xt(n,e,n.a,n.a.a)}function vX(n){return Ln(n,0),null}function qMn(){this.b=0,this.a=!1}function UMn(){this.b=0,this.a=!1}function GMn(){this.b=new ap(Qb(12))}function zMn(){zMn=F,kYn=Ce(jx())}function XMn(){XMn=F,HZn=Ce(iqn())}function VMn(){VMn=F,lre=Ce(xxn())}function kX(){kX=F,_G(),fun=new de}function sf(n){return n.a=0,n.b=0,n}function WMn(n,e){return n.a=e.g+1,n}function aL(n,e){Kb.call(this,n,e)}function Mn(n,e){Dt.call(this,n,e)}function gg(n,e){gX.call(this,n,e)}function JMn(n,e){T7.call(this,n,e)}function dL(n,e){Y4.call(this,n,e)}function Ue(n,e){iC(),Xe(yO,n,e)}function QMn(n,e){n.q.setTime(id(e))}function Ele(n){y.clearTimeout(n)}function Cle(n){return Se(n),new S6(n)}function YMn(n,e){return x(n)===x(e)}function ZMn(n,e){return n.a.a.a.cc(e)}function bL(n,e){return qo(n.a,0,e)}function yX(n){return Awe(u(n,74))}function pp(n){return wi((Jn(n),n))}function Mle(n){return wi((Jn(n),n))}function nTn(n){return Yc(n.l,n.m,n.h)}function jX(n,e){return jc(n.a,e.a)}function Tle(n,e){return KPn(n.a,e.a)}function Ale(n,e){return bt(n.a,e.a)}function th(n,e){return n.indexOf(e)}function Sle(n,e){return n.j[e.p]==2}function s0(n,e){return n==e?0:n?1:-1}function OC(n){return n<10?"0"+n:""+n}function Vr(n){return typeof n===dtn}function Ple(n){return n==rb||n==Iw}function Ile(n){return n==rb||n==Pw}function eTn(n,e){return jc(n.g,e.g)}function EX(n){return qr(n.b.b,n,0)}function tTn(){rM.call(this,0,0,0,0)}function ih(){CG.call(this,new Ql)}function CX(n,e){F4(n,0,n.length,e)}function Ole(n,e){return nn(n.a,e),e}function Dle(n,e){return xs(),e.a+=n}function Lle(n,e){return xs(),e.a+=n}function Nle(n,e){return xs(),e.c+=n}function $le(n,e){return nn(n.c,e),n}function MX(n,e){return Mo(n.a,e),n}function iTn(n){this.a=XCn(),this.b=n}function rTn(n){this.a=XCn(),this.b=n}function rr(n){this.a=n.a,this.b=n.b}function S6(n){this.a=n,GO.call(this)}function cTn(n){this.a=n,GO.call(this)}function mp(){Ho.call(this,0,0,0,0)}function DC(n){return Mo(new ii,n)}function uTn(n){return jM(u(n,123))}function fo(n){return n.vh()&&n.wh()}function pg(n){return n!=Jf&&n!=Sa}function hl(n){return n==Br||n==Xr}function mg(n){return n==us||n==Vf}function oTn(n){return n==S2||n==A2}function xle(n,e){return jc(n.g,e.g)}function sTn(n,e){return new Y4(e,n)}function Fle(n,e){return new Y4(e,n)}function TX(n){return rbe(n.b.Kc(),n.a)}function wL(n,e){um(n,e),G4(n,n.D)}function gL(n,e,t){aT(n,e),lT(n,t)}function vg(n,e,t){I0(n,e),P0(n,t)}function Ro(n,e,t){eu(n,e),tu(n,t)}function E7(n,e,t){_4(n,e),q4(n,t)}function C7(n,e,t){H4(n,e),U4(n,t)}function fTn(n,e,t){sV.call(this,n,e,t)}function AX(n){PMn.call(this,n,!0)}function hTn(){uC.call(this,"Tail",3)}function lTn(){uC.call(this,"Head",1)}function H1(n){dh(),mve.call(this,n)}function f0(n){rM.call(this,n,n,n,n)}function pL(n){n.c=K(ki,Fn,1,0,5,1)}function SX(n){return n.b&&xF(n),n.a}function PX(n){return n.b&&xF(n),n.c}function Ble(n,e){qf||(n.b=e)}function Rle(n,e){return n[n.length]=e}function Kle(n,e){return n[n.length]=e}function _le(n,e){return Yb(e,Af(n))}function Hle(n,e){return Yb(e,Af(n))}function qle(n,e){return pT(dN(n.d),e)}function Ule(n,e){return pT(dN(n.g),e)}function Gle(n,e){return pT(dN(n.j),e)}function Ni(n,e){Dt.call(this,n.b,e)}function zle(n,e){ve(Sc(n.a),DOn(e))}function Xle(n,e){ve(no(n.a),LOn(e))}function Vle(n,e,t){Ro(t,t.i+n,t.j+e)}function aTn(n,e,t){$t(n.c[e.g],e.g,t)}function Wle(n,e,t){u(n.c,71).Gi(e,t)}function mL(n,e,t){return $t(n,e,t),t}function dTn(n){nu(n.Sf(),new D9n(n))}function kg(n){return n!=null?mt(n):0}function Jle(n){return n==null?0:mt(n)}function P6(n){nt(),Wd.call(this,n)}function bTn(n){this.a=n,qV.call(this,n)}function Mf(){Mf=F,y.Math.log(2)}function Ko(){Ko=F,rl=(pCn(),Moe)}function wTn(){wTn=F,YH=new j5(aU)}function Ie(){Ie=F,new gTn,new Z}function gTn(){new de,new de,new de}function Qle(){throw M(new Kl(QJn))}function Yle(){throw M(new Kl(QJn))}function Zle(){throw M(new Kl(YJn))}function n1e(){throw M(new Kl(YJn))}function vL(n){this.a=n,VE.call(this,n)}function kL(n){this.a=n,VE.call(this,n)}function pTn(n,e){m0(),this.a=n,this.b=e}function e1e(n,e){Se(e),Tg(n).Jc(new Ru)}function Yt(n,e){QL(n.c,n.c.length,e)}function tc(n){return n.ae?1:0}function OX(n,e){return Ec(n,e)>0?n:e}function Yc(n,e,t){return{l:n,m:e,h:t}}function t1e(n,e){n.a!=null&&OMn(e,n.a)}function i1e(n){Zi(n,null),Ii(n,null)}function r1e(n,e,t){return Xe(n.g,t,e)}function yg(n,e,t){return nZ(e,t,n.c)}function c1e(n,e,t){return Xe(n.k,t,e)}function u1e(n,e,t){return GOe(n,e,t),t}function o1e(n,e){return ko(),e.n.b+=n}function vTn(n){nJ.call(this),this.b=n}function DX(n){vV.call(this),this.a=n}function kTn(){uC.call(this,"Range",2)}function LC(n){this.b=n,this.a=new Z}function yTn(n){this.b=new $bn,this.a=n}function jTn(n){n.a=new OO,n.c=new OO}function ETn(n){n.a=new de,n.d=new de}function CTn(n){$N(n,null),xN(n,null)}function MTn(n,e){return XOe(n.a,e,null)}function s1e(n,e){return Xe(n.a,e.a,e)}function Ki(n){return new V(n.a,n.b)}function LX(n){return new V(n.c,n.d)}function f1e(n){return new V(n.c,n.d)}function I6(n,e){return cOe(n.c,n.b,e)}function O(n,e){return n!=null&&Tx(n,e)}function yL(n,e){return Yve(n.Kc(),e)!=-1}function NC(n){return n.Ob()?n.Pb():null}function h1e(n){this.b=(Dn(),new eD(n))}function NX(n){this.a=n,de.call(this)}function TTn(){T7.call(this,null,null)}function ATn(){_C.call(this,null,null)}function STn(){je.call(this,"INSTANCE",0)}function PTn(){LZ(),this.a=new K5(Ion)}function ITn(n){return hh(n,0,n.length)}function l1e(n,e){return new VTn(n.Kc(),e)}function $X(n,e){return n.a.Bc(e)!=null}function OTn(n,e){me(n),n.Gc(u(e,15))}function a1e(n,e,t){n.c.bd(e,u(t,136))}function d1e(n,e,t){n.c.Ui(e,u(t,136))}function DTn(n,e){n.c&&(tW(e),rOn(e))}function b1e(n,e){n.q.setHours(e),G5(n,e)}function w1e(n,e){a0(e,n.a.a.a,n.a.a.b)}function g1e(n,e,t,i){$t(n.a[e.g],t.g,i)}function jL(n,e,t){return n.a[e.g][t.g]}function p1e(n,e){return n.e[e.c.p][e.p]}function m1e(n,e){return n.c[e.c.p][e.p]}function Tf(n,e){return n.a[e.c.p][e.p]}function v1e(n,e){return n.j[e.p]=IMe(e)}function EL(n,e){return n.a.Bc(e)!=null}function k1e(n,e){return $(R(e.a))<=n}function y1e(n,e){return $(R(e.a))>=n}function j1e(n,e){return RJ(n.f,e.Pg())}function vp(n,e){return n.a*e.a+n.b*e.b}function E1e(n,e){return n.a0?e/(n*n):e*100}function V1e(n,e){return n>0?e*e/n:e*e*100}function xb(n,e){return u(Lf(n.a,e),34)}function W1e(n,e){return ca(),Pn(n,e.e,e)}function J1e(n,e,t){return nC(),t.Mg(n,e)}function Q1e(n){return kl(),n.e.a+n.f.a/2}function Y1e(n,e,t){return kl(),t.e.a-n*e}function Z1e(n){return kl(),n.e.b+n.f.b/2}function nae(n,e,t){return kl(),t.e.b-n*e}function sAn(n){n.d=new cAn(n),n.e=new de}function fAn(){this.a=new C0,this.b=new C0}function hAn(n){this.c=n,this.a=1,this.b=1}function lAn(n){YF(),Syn(this),this.Ff(n)}function eae(n,e,t){YM(),n.pf(e)&&t.Cd(n)}function tae(n,e,t){return nn(e,jBn(n,t))}function a0(n,e,t){return n.a+=e,n.b+=t,n}function iae(n,e,t){return n.a*=e,n.b*=t,n}function ZX(n,e){return n.a=e.a,n.b=e.b,n}function HC(n){return n.a=-n.a,n.b=-n.b,n}function N6(n,e,t){return n.a-=e,n.b-=t,n}function aAn(n){Ct.call(this),c5(this,n)}function dAn(){je.call(this,"GROW_TREE",0)}function bAn(){je.call(this,"POLYOMINO",0)}function lo(n,e,t){Iu.call(this,n,e,t,2)}function rae(n,e,t){k5(Sc(n.a),e,DOn(t))}function wAn(n,e){a6(),T7.call(this,n,e)}function nV(n,e){Gl(),_C.call(this,n,e)}function gAn(n,e){Gl(),nV.call(this,n,e)}function pAn(n,e){Gl(),_C.call(this,n,e)}function cae(n,e){return n.c.Fc(u(e,136))}function uae(n,e,t){k5(no(n.a),e,LOn(t))}function mAn(n){this.c=n,eu(n,0),tu(n,0)}function PL(n,e){Ko(),oM.call(this,n,e)}function vAn(n,e){Ko(),PL.call(this,n,e)}function eV(n,e){Ko(),PL.call(this,n,e)}function tV(n,e){Ko(),oM.call(this,n,e)}function kAn(n,e){Ko(),eV.call(this,n,e)}function yAn(n,e){Ko(),tV.call(this,n,e)}function jAn(n,e){Ko(),oM.call(this,n,e)}function oae(n,e,t){return e.zl(n.e,n.c,t)}function sae(n,e,t){return e.Al(n.e,n.c,t)}function iV(n,e,t){return qA(ak(n,e),t)}function IL(n,e){return na(n.e,u(e,54))}function fae(n){return n==null?null:NDe(n)}function hae(n){return n==null?null:Aje(n)}function lae(n){return n==null?null:Jr(n)}function aae(n){return n==null?null:Jr(n)}function un(n){return F6(n==null||Nb(n)),n}function R(n){return F6(n==null||$b(n)),n}function Oe(n){return F6(n==null||Ai(n)),n}function ll(n){n.o==null&&cMe(n)}function rV(n){if(!n)throw M(new Q9)}function dae(n){if(!n)throw M(new uD)}function oe(n){if(!n)throw M(new nc)}function Fb(n){if(!n)throw M(new Cu)}function EAn(n){if(!n)throw M(new Bo)}function m4(){m4=F,aE=new ujn,new ojn}function Mg(){Mg=F,O2=new lt("root")}function cV(){cxn.call(this),this.Bb|=hr}function bae(n,e){this.d=n,c9n(this),this.b=e}function uV(n,e){i$.call(this,n),this.a=e}function oV(n,e){i$.call(this,n),this.a=e}function sV(n,e,t){VM.call(this,n,e,t,null)}function CAn(n,e,t){VM.call(this,n,e,t,null)}function P7(n,e){this.c=n,h4.call(this,n,e)}function $6(n,e){this.a=n,P7.call(this,n,e)}function fV(n){this.q=new y.Date(id(n))}function MAn(n){return n>8?0:n+1}function TAn(n,e){qf||nn(n.a,e)}function wae(n,e){return o7(),Q4(e.d.i,n)}function gae(n,e){return Hp(),new tUn(e,n)}function pae(n,e,t){return n.Ne(e,t)<=0?t:e}function mae(n,e,t){return n.Ne(e,t)<=0?e:t}function vae(n,e){return u(Lf(n.b,e),143)}function kae(n,e){return u(Lf(n.c,e),233)}function OL(n){return u(sn(n.a,n.b),294)}function AAn(n){return new V(n.c,n.d+n.a)}function SAn(n){return Jn(n),n?1231:1237}function PAn(n){return ko(),oTn(u(n,203))}function Bb(){Bb=F,ron=yn((go(),Gd))}function yae(n,e){e.a?MCe(n,e):EL(n.a,e.b)}function I7(n,e,t){++n.j,n.tj(),t$(n,e,t)}function IAn(n,e,t){++n.j,n.qj(e,n.Zi(e,t))}function OAn(n,e,t){var i;i=n.fd(e),i.Rb(t)}function hV(n,e,t){return t=So(n,e,6,t),t}function lV(n,e,t){return t=So(n,e,3,t),t}function aV(n,e,t){return t=So(n,e,9,t),t}function ch(n,e){return X7(e,xtn),n.f=e,n}function dV(n,e){return(e&et)%n.d.length}function DAn(n,e,t){return zen(n.c,n.b,e,t)}function LAn(n,e){this.c=n,S0.call(this,e)}function NAn(n,e){this.a=n,kyn.call(this,e)}function O7(n,e){this.a=n,kyn.call(this,e)}function Dt(n,e){lt.call(this,n),this.a=e}function bV(n,e){FG.call(this,n),this.a=e}function DL(n,e){FG.call(this,n),this.a=e}function jae(n){VY.call(this,0,0),this.f=n}function $An(n,e,t){return n.a+=hh(e,0,t),n}function D7(n){return!n.a&&(n.a=new C0n),n.a}function wV(n,e){var t;return t=n.e,n.e=e,t}function gV(n,e){var t;return t=e,!!n.Fe(t)}function Eae(n,e){return _n(),n==e?0:n?1:-1}function Rb(n,e){n.a.bd(n.b,e),++n.b,n.c=-1}function L7(n){n.b?L7(n.b):n.f.c.zc(n.e,n.d)}function xAn(n){Hu(n.e),n.d.b=n.d,n.d.a=n.d}function Cae(n,e,t){Xa(),t9n(n,e.Ve(n.a,t))}function pV(n,e,t){return Pp(n,u(e,22),t)}function $s(n,e){return qE(new Array(e),n)}function Mae(n){return Ae(U1(n,32))^Ae(n)}function LL(n){return String.fromCharCode(n)}function Tae(n){return n==null?null:n.message}function Aae(n,e,t){return n.apply(e,t)}function Sae(n,e){var t;t=n[DB],t.call(n,e)}function Pae(n,e){var t;t=n[DB],t.call(n,e)}function Iae(n,e){return o7(),!Q4(e.d.i,n)}function mV(n,e,t,i){rM.call(this,n,e,t,i)}function FAn(){qC.call(this),this.a=new Li}function vV(){this.n=new Li,this.o=new Li}function BAn(){this.b=new Li,this.c=new Z}function RAn(){this.a=new Z,this.b=new Z}function KAn(){this.a=new _U,this.b=new Byn}function kV(){this.b=new Ql,this.a=new Ql}function _An(){this.b=new ni,this.a=new ni}function HAn(){this.b=new de,this.a=new de}function qAn(){this.b=new wEn,this.a=new H3n}function UAn(){this.a=new n8n,this.b=new Lpn}function GAn(){this.a=new Z,this.d=new Z}function qC(){this.n=new cp,this.i=new mp}function zAn(n){this.a=(Co(n,mw),new Gc(n))}function XAn(n){this.a=(Co(n,mw),new Gc(n))}function Oae(n){return n<100?null:new F1(n)}function Dae(n,e){return n.n.a=(Jn(e),e+10)}function Lae(n,e){return n.n.a=(Jn(e),e+10)}function Nae(n,e){return e==n||km(TA(e),n)}function VAn(n,e){return Xe(n.a,e,"")==null}function $ae(n,e){var t;return t=e.qi(n.a),t}function tt(n,e){return n.a+=e.a,n.b+=e.b,n}function mi(n,e){return n.a-=e.a,n.b-=e.b,n}function xae(n){return Pb(n.j.c,0),n.a=-1,n}function yV(n,e,t){return t=So(n,e,11,t),t}function Fae(n,e,t){t!=null&&mT(e,Fx(n,t))}function Bae(n,e,t){t!=null&&vT(e,Fx(n,t))}function jp(n,e,t,i){q.call(this,n,e,t,i)}function jV(n,e,t,i){q.call(this,n,e,t,i)}function WAn(n,e,t,i){jV.call(this,n,e,t,i)}function JAn(n,e,t,i){bM.call(this,n,e,t,i)}function NL(n,e,t,i){bM.call(this,n,e,t,i)}function EV(n,e,t,i){bM.call(this,n,e,t,i)}function QAn(n,e,t,i){NL.call(this,n,e,t,i)}function CV(n,e,t,i){NL.call(this,n,e,t,i)}function Nn(n,e,t,i){EV.call(this,n,e,t,i)}function YAn(n,e,t,i){CV.call(this,n,e,t,i)}function ZAn(n,e,t,i){jW.call(this,n,e,t,i)}function Kb(n,e){Ir.call(this,k8+n+Td+e)}function MV(n,e){return n.jk().wi().ri(n,e)}function TV(n,e){return n.jk().wi().ti(n,e)}function nSn(n,e){return Jn(n),x(n)===x(e)}function An(n,e){return Jn(n),x(n)===x(e)}function Rae(n,e){return n.b.Bd(new ECn(n,e))}function Kae(n,e){return n.b.Bd(new CCn(n,e))}function eSn(n,e){return n.b.Bd(new MCn(n,e))}function _ae(n,e){return n.e=u(n.d.Kb(e),159)}function AV(n,e,t){return n.lastIndexOf(e,t)}function Hae(n,e,t){return bt(n[e.a],n[t.a])}function qae(n,e){return U(e,(cn(),Cj),n)}function Uae(n,e){return jc(e.a.d.p,n.a.d.p)}function Gae(n,e){return jc(n.a.d.p,e.a.d.p)}function zae(n,e){return bt(n.c-n.s,e.c-e.s)}function Xae(n,e){return bt(n.b.e.a,e.b.e.a)}function Vae(n,e){return bt(n.c.e.a,e.c.e.a)}function tSn(n){return n.c?qr(n.c.a,n,0):-1}function Ep(n){return n==Ud||n==tl||n==qc}function SV(n,e){this.c=n,oN.call(this,n,e)}function iSn(n,e,t){this.a=n,JX.call(this,e,t)}function rSn(n){this.c=n,IC.call(this,Ey,0)}function cSn(n,e,t){this.c=e,this.b=t,this.a=n}function N7(n){k4(),this.d=n,this.a=new Eg}function uSn(n){uh(),this.a=(Dn(),new r4(n))}function Wae(n,e){hl(n.f)?QCe(n,e):Sye(n,e)}function oSn(n,e){sbe.call(this,n,n.length,e)}function Jae(n,e){qf||e&&(n.d=e)}function sSn(n,e){return O(e,15)&&xqn(n.c,e)}function Qae(n,e,t){return u(n.c,71).Wk(e,t)}function UC(n,e,t){return u(n.c,71).Xk(e,t)}function Yae(n,e,t){return oae(n,u(e,343),t)}function PV(n,e,t){return sae(n,u(e,343),t)}function Zae(n,e,t){return PKn(n,u(e,343),t)}function fSn(n,e,t){return _ye(n,u(e,343),t)}function x6(n,e){return e==null?null:tw(n.b,e)}function IV(n){return $b(n)?(Jn(n),n):n.ue()}function GC(n){return!isNaN(n)&&!isFinite(n)}function $L(n){jTn(this),vo(this),Bi(this,n)}function _u(n){pL(this),zV(this.c,0,n.Pc())}function _o(n,e,t){this.a=n,this.b=e,this.c=t}function hSn(n,e,t){this.a=n,this.b=e,this.c=t}function lSn(n,e,t){this.d=n,this.b=t,this.a=e}function aSn(n){this.a=n,fl(),vc(Date.now())}function dSn(n){bo(n.a),GJ(n.c,n.b),n.b=null}function xL(){xL=F,Oun=new $0n,AQn=new x0n}function bSn(){bSn=F,Ioe=K(ki,Fn,1,0,5,1)}function wSn(){wSn=F,Voe=K(ki,Fn,1,0,5,1)}function OV(){OV=F,Woe=K(ki,Fn,1,0,5,1)}function uh(){uh=F,new KG((Dn(),Dn(),sr))}function nde(n){return B4(),Ee((yNn(),IQn),n)}function ede(n){return Gu(),Ee((lNn(),xQn),n)}function tde(n){return YT(),Ee((JDn(),HQn),n)}function ide(n){return cT(),Ee((QDn(),qQn),n)}function rde(n){return NA(),Ee((Jxn(),UQn),n)}function cde(n){return bf(),Ee((fNn(),XQn),n)}function ude(n){return Uu(),Ee((sNn(),WQn),n)}function ode(n){return bu(),Ee((hNn(),QQn),n)}function sde(n){return VA(),Ee((zMn(),kYn),n)}function fde(n){return N0(),Ee((ENn(),jYn),n)}function hde(n){return Vp(),Ee((MNn(),CYn),n)}function lde(n){return A5(),Ee((CNn(),AYn),n)}function ade(n){return YE(),Ee((jDn(),SYn),n)}function dde(n){return uT(),Ee((YDn(),GYn),n)}function bde(n){return i5(),Ee((aNn(),pZn),n)}function wde(n){return Vi(),Ee((u$n(),yZn),n)}function gde(n){return nm(),Ee((ANn(),TZn),n)}function pde(n){return dd(),Ee((TNn(),DZn),n)}function DV(n,e){if(!n)throw M(new Gn(e))}function v4(n){if(!n)throw M(new Or(btn))}function FL(n,e){if(n!=e)throw M(new Bo)}function gSn(n,e,t){this.a=n,this.b=e,this.c=t}function LV(n,e,t){this.a=n,this.b=e,this.c=t}function pSn(n,e,t){this.a=n,this.b=e,this.c=t}function zC(n,e,t){this.b=n,this.a=e,this.c=t}function NV(n,e,t){this.b=n,this.c=e,this.a=t}function $V(n,e,t){this.a=n,this.b=e,this.c=t}function XC(n,e,t){this.e=e,this.b=n,this.d=t}function mSn(n,e,t){this.b=n,this.a=e,this.c=t}function mde(n,e,t){return Xa(),n.a.Yd(e,t),e}function BL(n){var e;return e=new ubn,e.e=n,e}function xV(n){var e;return e=new qyn,e.b=n,e}function $7(){$7=F,CP=new sgn,MP=new fgn}function VC(){VC=F,XZn=new xgn,zZn=new Fgn}function xs(){xs=F,YZn=new G2n,ZZn=new z2n}function vde(n){return D0(),Ee((qLn(),fne),n)}function kde(n){return tr(),Ee((XMn(),HZn),n)}function yde(n){return OT(),Ee((PNn(),GZn),n)}function jde(n){return $f(),Ee((SNn(),tne),n)}function Ede(n){return ow(),Ee((o$n(),rne),n)}function Cde(n){return DA(),Ee(($xn(),hne),n)}function Mde(n){return Yp(),Ee((D$n(),lne),n)}function Tde(n){return QM(),Ee((cLn(),ane),n)}function Ade(n){return u5(),Ee((_Ln(),dne),n)}function Sde(n){return bT(),Ee((HLn(),bne),n)}function Pde(n){return o1(),Ee((s$n(),wne),n)}function Ide(n){return pk(),Ee((eLn(),gne),n)}function Ode(n){return jm(),Ee(($$n(),jne),n)}function Dde(n){return pr(),Ee((aFn(),Ene),n)}function Lde(n){return Z4(),Ee((GLn(),Cne),n)}function Nde(n){return vl(),Ee((zLn(),Tne),n)}function $de(n){return KM(),Ee((nLn(),Ane),n)}function xde(n){return Jk(),Ee((N$n(),yne),n)}function Fde(n){return hd(),Ee((ULn(),mne),n)}function Bde(n){return vA(),Ee((L$n(),vne),n)}function Rde(n){return hk(),Ee((tLn(),kne),n)}function Kde(n){return Yo(),Ee((h$n(),Sne),n)}function _de(n){return a1(),Ee((Xxn(),Yte),n)}function Hde(n){return g5(),Ee((XLn(),Zte),n)}function qde(n){return cw(),Ee((INn(),nie),n)}function Ude(n){return T5(),Ee((f$n(),eie),n)}function Gde(n){return gs(),Ee((dFn(),tie),n)}function zde(n){return lh(),Ee((ONn(),iie),n)}function Xde(n){return wk(),Ee((iLn(),rie),n)}function Vde(n){return gr(),Ee((JLn(),uie),n)}function Wde(n){return ST(),Ee((VLn(),oie),n)}function Jde(n){return d5(),Ee((WLn(),sie),n)}function Qde(n){return om(),Ee((QLn(),fie),n)}function Yde(n){return dT(),Ee((YLn(),hie),n)}function Zde(n){return DT(),Ee((ZLn(),lie),n)}function n0e(n){return O0(),Ee((oNn(),Aie),n)}function e0e(n){return n5(),Ee((rLn(),Die),n)}function t0e(n){return sh(),Ee((sLn(),Rie),n)}function i0e(n){return Sf(),Ee((fLn(),_ie),n)}function r0e(n){return lf(),Ee((hLn(),tre),n)}function c0e(n){return M0(),Ee((lLn(),fre),n)}function u0e(n){return Qp(),Ee((BNn(),hre),n)}function o0e(n){return q5(),Ee((VMn(),lre),n)}function s0e(n){return b5(),Ee((nNn(),are),n)}function f0e(n){return w5(),Ee((FNn(),$re),n)}function h0e(n){return FM(),Ee((uLn(),xre),n)}function l0e(n){return yT(),Ee((oLn(),_re),n)}function a0e(n){return wA(),Ee((l$n(),qre),n)}function d0e(n){return Ok(),Ee((eNn(),Gre),n)}function b0e(n){return ZM(),Ee((aLn(),Ure),n)}function w0e(n){return sA(),Ee((xNn(),lce),n)}function g0e(n){return AT(),Ee((tNn(),ace),n)}function p0e(n){return XT(),Ee((iNn(),dce),n)}function m0e(n){return rA(),Ee((rNn(),wce),n)}function v0e(n){return _T(),Ee((cNn(),mce),n)}function k0e(n){return GM(),Ee((dLn(),Rce),n)}function y0e(n){return V4(),Ee((ZDn(),_Zn),n)}function j0e(n){return Vn(),Ee((x$n(),xZn),n)}function E0e(n){return nT(),Ee((uNn(),Kce),n)}function C0e(n){return N$(),Ee((bLn(),_ce),n)}function M0e(n){return R5(),Ee((a$n(),qce),n)}function T0e(n){return eC(),Ee((IDn(),Gce),n)}function A0e(n){return Fk(),Ee((bNn(),Uce),n)}function S0e(n){return tC(),Ee((ODn(),Xce),n)}function P0e(n){return ck(),Ee((wLn(),Vce),n)}function I0e(n){return Yk(),Ee((d$n(),Wce),n)}function O0e(n){return f6(),Ee((DDn(),lue),n)}function D0e(n){return Ak(),Ee((gLn(),aue),n)}function L0e(n){return gf(),Ee((w$n(),mue),n)}function N0e(n){return l1(),Ee((Lxn(),kue),n)}function $0e(n){return Rh(),Ee((F$n(),yue),n)}function x0e(n){return wd(),Ee((B$n(),Aue),n)}function F0e(n){return ci(),Ee((b$n(),zue),n)}function B0e(n){return Nf(),Ee((wNn(),Xue),n)}function R0e(n){return El(),Ee((RNn(),Vue),n)}function K0e(n){return pA(),Ee((R$n(),Wue),n)}function _0e(n){return jl(),Ee((dNn(),Que),n)}function H0e(n){return To(),Ee((KNn(),Zue),n)}function q0e(n){return lw(),Ee((Wxn(),noe),n)}function U0e(n){return Fg(),Ee((g$n(),eoe),n)}function G0e(n){return Oi(),Ee((K$n(),toe),n)}function z0e(n){return zu(),Ee((_$n(),ioe),n)}function X0e(n){return tn(),Ee((p$n(),roe),n)}function V0e(n){return go(),Ee((_Nn(),foe),n)}function W0e(n){return io(),Ee((Vxn(),hoe),n)}function J0e(n){return Gp(),Ee((gNn(),loe),n)}function Q0e(n,e){return Jn(n),n+(Jn(e),e)}function Y0e(n){return RL(),Ee((pLn(),aoe),n)}function Z0e(n){return qT(),Ee((HNn(),doe),n)}function nbe(n){return LT(),Ee((qNn(),goe),n)}function k4(){k4=F,tln=(tn(),Wn),II=Zn}function RL(){RL=F,vdn=new VSn,kdn=new LPn}function ebe(n){return!n.e&&(n.e=new Z),n.e}function KL(n,e){this.c=n,this.a=e,this.b=e-n}function vSn(n,e,t){this.a=n,this.b=e,this.c=t}function _L(n,e,t){this.a=n,this.b=e,this.c=t}function FV(n,e,t){this.a=n,this.b=e,this.c=t}function BV(n,e,t){this.a=n,this.b=e,this.c=t}function kSn(n,e,t){this.a=n,this.b=e,this.c=t}function ySn(n,e,t){this.a=n,this.b=e,this.c=t}function Xl(n,e,t){this.e=n,this.a=e,this.c=t}function jSn(n,e,t){Ko(),tJ.call(this,n,e,t)}function HL(n,e,t){Ko(),RW.call(this,n,e,t)}function RV(n,e,t){Ko(),RW.call(this,n,e,t)}function KV(n,e,t){Ko(),RW.call(this,n,e,t)}function ESn(n,e,t){Ko(),HL.call(this,n,e,t)}function _V(n,e,t){Ko(),HL.call(this,n,e,t)}function CSn(n,e,t){Ko(),_V.call(this,n,e,t)}function MSn(n,e,t){Ko(),RV.call(this,n,e,t)}function TSn(n,e,t){Ko(),KV.call(this,n,e,t)}function qL(n){rM.call(this,n.d,n.c,n.a,n.b)}function HV(n){rM.call(this,n.d,n.c,n.a,n.b)}function qV(n){this.d=n,c9n(this),this.b=nwe(n.d)}function tbe(n){return Cm(),Ee((Nxn(),Poe),n)}function x7(n,e){return Se(n),Se(e),new NEn(n,e)}function Cp(n,e){return Se(n),Se(e),new RSn(n,e)}function ibe(n,e){return Se(n),Se(e),new KSn(n,e)}function rbe(n,e){return Se(n),Se(e),new qEn(n,e)}function UL(n){return oe(n.b!=0),Xo(n,n.a.a)}function cbe(n){return oe(n.b!=0),Xo(n,n.c.b)}function ube(n){return!n.c&&(n.c=new W3),n.c}function y4(n){var e;return e=new Z,b$(e,n),e}function obe(n){var e;return e=new ni,b$(e,n),e}function ASn(n){var e;return e=new GG,A$(e,n),e}function F7(n){var e;return e=new Ct,A$(e,n),e}function u(n,e){return F6(n==null||Tx(n,e)),n}function sbe(n,e,t){TPn.call(this,e,t),this.a=n}function SSn(n,e){this.c=n,this.b=e,this.a=!1}function PSn(){this.a=";,;",this.b="",this.c=""}function ISn(n,e,t){this.b=n,_Mn.call(this,e,t)}function UV(n,e,t){this.c=n,oC.call(this,e,t)}function GV(n,e,t){d4.call(this,n,e),this.b=t}function zV(n,e,t){Bnn(t,0,n,e,t.length,!1)}function Lh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function XV(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function fbe(n,e){e&&(n.b=e,n.a=(z1(e),e.a))}function B7(n,e){if(!n)throw M(new Gn(e))}function Mp(n,e){if(!n)throw M(new Or(e))}function VV(n,e){if(!n)throw M(new Bjn(e))}function hbe(n,e){return ZE(),jc(n.d.p,e.d.p)}function lbe(n,e){return kl(),bt(n.e.b,e.e.b)}function abe(n,e){return kl(),bt(n.e.a,e.e.a)}function dbe(n,e){return jc(GSn(n.d),GSn(e.d))}function WC(n,e){return e&&vM(n,e.d)?e:null}function bbe(n,e){return e==(tn(),Wn)?n.c:n.d}function WV(n){return Q1(dwe(Vr(n)?ds(n):n))}function wbe(n){return new V(n.c+n.b,n.d+n.a)}function OSn(n){return n!=null&&!lx(n,N9,$9)}function gbe(n,e){return(fBn(n)<<4|fBn(e))&ui}function DSn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function JV(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function QV(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function pbe(n,e){var t;return t=n.c,PQ(n,e),t}function YV(n,e){return e<0?n.g=-1:n.g=e,n}function JC(n,e){return Mme(n),n.a*=e,n.b*=e,n}function LSn(n,e,t){A$n.call(this,e,t),this.d=n}function R7(n,e,t){pX.call(this,n,e),this.c=t}function QC(n,e,t){pX.call(this,n,e),this.c=t}function ZV(n){OV(),ME.call(this),this.ci(n)}function NSn(){$4(),Bwe.call(this,(R1(),Ss))}function $Sn(n){return nt(),new Nh(0,n)}function xSn(){xSn=F,AU=(Dn(),new nD(IK))}function YC(){YC=F,new hZ((bD(),HK),(dD(),_K))}function FSn(){FSn=F,pun=K(Gi,J,17,256,0,1)}function BSn(){this.b=$(R(rn((qs(),y_))))}function GL(n){this.b=n,this.a=Wa(this.b.a).Od()}function RSn(n,e){this.b=n,this.a=e,GO.call(this)}function KSn(n,e){this.a=n,this.b=e,GO.call(this)}function _Sn(n,e,t){this.a=n,gg.call(this,e,t)}function HSn(n,e,t){this.a=n,gg.call(this,e,t)}function j4(n,e,t){var i;i=new qb(t),df(n,e,i)}function nW(n,e,t){var i;return i=n[e],n[e]=t,i}function ZC(n){var e;return e=n.slice(),o$(e,n)}function nM(n){var e;return e=n.n,n.a.b+e.d+e.a}function qSn(n){var e;return e=n.n,n.e.b+e.d+e.a}function eW(n){var e;return e=n.n,n.e.a+e.b+e.c}function tW(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function xe(n,e){return xt(n,e,n.c.b,n.c),!0}function mbe(n){return n.a?n.a:vN(n)}function vbe(n){return Lp(),Kh(n)==At(ia(n))}function kbe(n){return Lp(),ia(n)==At(Kh(n))}function d0(n,e){return O5(n,new d4(e.a,e.b))}function ybe(n,e){return yM(),Nx(n,e),new lIn(n,e)}function jbe(n,e){return n.c=e)throw M(new YG)}function _b(n,e){return $k(n,(Jn(e),new a9n(e)))}function Ap(n,e){return $k(n,(Jn(e),new d9n(e)))}function SPn(n,e,t){return VLe(n,u(e,12),u(t,12))}function PPn(n){return Ou(),u(n,12).g.c.length!=0}function IPn(n){return Ou(),u(n,12).e.c.length!=0}function uwe(n,e){return Hp(),bt(e.a.o.a,n.a.o.a)}function owe(n,e){e.Bb&kc&&!n.a.o&&(n.a.o=e)}function swe(n,e){e.Ug("General 'Rotator",1),jDe(n)}function fwe(n,e,t){e.qf(t,$(R(ee(n.b,t)))*n.a)}function OPn(n,e,t){return Xg(),W4(n,e)&&W4(n,t)}function _6(n){return zu(),!n.Hc(Fl)&&!n.Hc(Pa)}function hwe(n){return n.e?qJ(n.e):null}function H6(n){return Vr(n)?""+n:$qn(n)}function yW(n){var e;for(e=n;e.f;)e=e.f;return e}function lwe(n,e,t){return $t(e,0,oW(e[0],t[0])),e}function Vl(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function q(n,e,t,i){ti.call(this,n,e,t),this.b=i}function Ci(n,e,t,i,r){c$.call(this,n,e,t,i,r,-1)}function q6(n,e,t,i,r){ok.call(this,n,e,t,i,r,-1)}function bM(n,e,t,i){R7.call(this,n,e,t),this.b=i}function DPn(n){PMn.call(this,n,!1),this.a=!1}function LPn(){sMn.call(this,"LOOKAHEAD_LAYOUT",1)}function NPn(n){this.b=n,kp.call(this,n),RTn(this)}function $Pn(n){this.b=n,A7.call(this,n),KTn(this)}function Hb(n,e,t){this.a=n,jp.call(this,e,t,5,6)}function jW(n,e,t,i){this.b=n,ti.call(this,e,t,i)}function xPn(n,e){this.b=n,H8n.call(this,n.b),this.a=e}function FPn(n){this.a=kRn(n.a),this.b=new _u(n.b)}function EW(n,e){m0(),Hhe.call(this,n,FT(new Ku(e)))}function wM(n,e){return nt(),new BW(n,e,0)}function rN(n,e){return nt(),new BW(6,n,e)}function _i(n,e){for(Jn(e);n.Ob();)e.Cd(n.Pb())}function Zc(n,e){return Ai(e)?AN(n,e):!!wr(n.f,e)}function cN(n,e){return e.Vh()?na(n.b,u(e,54)):e}function awe(n,e){return An(n.substr(0,e.length),e)}function $h(n){return new te(new UX(n.a.length,n.a))}function gM(n){return new V(n.c+n.b/2,n.d+n.a/2)}function dwe(n){return Yc(~n.l&ro,~n.m&ro,~n.h&Il)}function uN(n){return typeof n===vy||typeof n===eB}function Hu(n){n.f=new iTn(n),n.i=new rTn(n),++n.g}function BPn(n){if(!n)throw M(new nc);return n.d}function Sp(n){var e;return e=a5(n),oe(e!=null),e}function bwe(n){var e;return e=I5e(n),oe(e!=null),e}function C4(n,e){var t;return t=n.a.gc(),BJ(e,t),t-e}function fi(n,e){var t;return t=n.a.zc(e,n),t==null}function _7(n,e){return n.a.zc(e,(_n(),wa))==null}function CW(n){return new Tn(null,vwe(n,n.length))}function MW(n,e,t){return cGn(n,u(e,42),u(t,176))}function Pp(n,e,t){return Ks(n.a,e),nW(n.b,e.g,t)}function wwe(n,e,t){E4(t,n.a.c.length),Go(n.a,t,e)}function B(n,e,t,i){xFn(e,t,n.length),gwe(n,e,t,i)}function gwe(n,e,t,i){var r;for(r=e;r0?y.Math.log(n/e):-100}function KPn(n,e){return Ec(n,e)<0?-1:Ec(n,e)>0?1:0}function H7(n,e){OTn(n,O(e,160)?e:u(e,2036).Rl())}function PW(n,e){if(n==null)throw M(new sp(e))}function vwe(n,e){return yme(e,n.length),new XSn(n,e)}function IW(n,e){return e?Bi(n,e):!1}function kwe(){return RE(),S(T(uQn,1),G,549,0,[GK])}function G6(n){return n.e==0?n:new Qa(-n.e,n.d,n.a)}function ywe(n,e){return bt(n.c.c+n.c.b,e.c.c+e.c.b)}function q7(n,e){xt(n.d,e,n.b.b,n.b),++n.a,n.c=null}function _Pn(n,e){return n.c?_Pn(n.c,e):nn(n.b,e),n}function jwe(n,e,t){var i;return i=Jb(n,e),qN(n,e,t),i}function HPn(n,e,t){var i;for(i=0;i=n.g}function $t(n,e,t){return dae(t==null||oPe(n,t)),n[e]=t}function $W(n,e){return zn(e,n.length+1),n.substr(e)}function gN(n,e){for(Jn(e);n.c=n?new Dz:Gme(n-1)}function Hi(n){return!n.a&&n.c?n.c.b:n.a}function KW(n){return O(n,616)?n:new oOn(n)}function z1(n){n.c?z1(n.c):(ea(n),n.d=!0)}function V6(n){n.c?n.c.$e():(n.d=!0,fTe(n))}function sIn(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function fIn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function _we(n,e){var t;t=n.Ih(e),t>=0?n.ki(t):Pnn(n,e)}function hIn(n,e){n.c<0||n.b.b0;)n=n<<1|(n<0?1:0);return n}function mIn(n,e){var t;return t=new Lc(n),Bn(e.c,t),t}function vIn(n,e){n.u.Hc((zu(),Fl))&&zEe(n,e),h4e(n,e)}function mc(n,e){return x(n)===x(e)||n!=null&&rt(n,e)}function Cr(n,e){return JL(n.a,e)?n.b[u(e,22).g]:null}function nge(){return YE(),S(T(oon,1),G,489,0,[b_])}function ege(){return eC(),S(T($1n,1),G,490,0,[Bq])}function tge(){return tC(),S(T(zce,1),G,558,0,[Rq])}function ige(){return f6(),S(T(tan,1),G,539,0,[Hj])}function jM(n){return!n.n&&(n.n=new q(Ar,n,1,7)),n.n}function mN(n){return!n.c&&(n.c=new q(Qu,n,9,9)),n.c}function UW(n){return!n.c&&(n.c=new Nn(he,n,5,8)),n.c}function rge(n){return!n.b&&(n.b=new Nn(he,n,4,7)),n.b}function U7(n){return n.j.c.length=0,zW(n.c),xae(n.a),n}function P4(n){return n.e==rv&&jfe(n,Y8e(n.g,n.b)),n.e}function G7(n){return n.f==rv&&Cfe(n,q7e(n.g,n.b)),n.f}function Ve(n,e,t,i){return Hxn(n,e,t,!1),BT(n,i),n}function kIn(n,e){this.b=n,oN.call(this,n,e),RTn(this)}function yIn(n,e){this.b=n,SV.call(this,n,e),KTn(this)}function W6(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function GW(n,e){this.b=n,this.c=e,this.a=new dp(this.b)}function Xi(n,e){return zn(e,n.length),n.charCodeAt(e)}function cge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function uge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function ut(n,e){return ea(n),new Tn(n,new tQ(e,n.a))}function _r(n,e){return ea(n),new Tn(n,new _J(e,n.a))}function Ub(n,e){return ea(n),new uV(n,new ILn(e,n.a))}function EM(n,e){return ea(n),new oV(n,new OLn(e,n.a))}function oge(n,e){return new GIn(u(Se(n),50),u(Se(e),50))}function sge(n,e){return bt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function jIn(n,e,t){t.a?tu(n,e.b-n.f/2):eu(n,e.a-n.g/2)}function fge(n,e){return bt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function hge(n,e){return $z(),bt((Jn(n),n),(Jn(e),e))}function lge(n){return n!=null&&r7(jO,n.toLowerCase())}function zW(n){var e;for(e=n.Kc();e.Ob();)e.Pb(),e.Qb()}function Tg(n){var e;return e=n.b,!e&&(n.b=e=new N8n(n)),e}function vN(n){var e;return e=Wme(n),e||null}function EIn(n,e){var t,i;return t=n/e,i=wi(t),t>i&&++i,i}function age(n,e,t){var i;i=u(n.d.Kb(t),159),i&&i.Nb(e)}function dge(n,e,t){wIe(n.a,t),zve(t),xCe(n.b,t),$Ie(e,t)}function CM(n,e,t,i){this.a=n,this.c=e,this.b=t,this.d=i}function XW(n,e,t,i){this.c=n,this.b=e,this.a=t,this.d=i}function CIn(n,e,t,i){this.c=n,this.b=e,this.d=t,this.a=i}function Ho(n,e,t,i){this.c=n,this.d=e,this.b=t,this.a=i}function MIn(n,e,t,i){this.a=n,this.d=e,this.c=t,this.b=i}function kN(n,e,t,i){this.a=n,this.e=e,this.d=t,this.c=i}function TIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function yN(n,e,t){this.a=ktn,this.d=n,this.b=e,this.c=t}function Op(n,e,t,i){je.call(this,n,e),this.a=t,this.b=i}function AIn(n,e){this.d=(Jn(n),n),this.a=16449,this.c=e}function SIn(n){this.a=new Z,this.e=K(ye,J,53,n,0,2)}function bge(n){n.Ug("No crossing minimization",1),n.Vg()}function PIn(){ec.call(this,"There is no more element.")}function IIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function OIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function Za(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function DIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function LIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function NIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function jN(n,e,t){var i,r;return i=utn(n),r=e.ti(t,i),r}function al(n){var e,t;return t=(e=new Jd,e),K4(t,n),t}function EN(n){var e,t;return t=(e=new Jd,e),fnn(t,n),t}function wge(n,e){var t;return t=ee(n.f,e),HQ(e,t),null}function $In(n){return!n.b&&(n.b=new q(Vt,n,12,3)),n.b}function xIn(n){return F6(n==null||uN(n)&&n.Tm!==J2),n}function MM(n){return n.n&&(n.e!==Fzn&&n.je(),n.j=null),n}function I4(n){if(eo(n.d),n.d.d!=n.c)throw M(new Bo)}function VW(n){return oe(n.b0&&bKn(this)}function FIn(n,e){this.a=n,bae.call(this,n,u(n.d,15).fd(e))}function gge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function pge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function mge(n){return _0(n)&&on(un(z(n,(cn(),Nd))))}function vge(n,e){return Pn(n,u(v(e,(cn(),Cv)),17),e)}function kge(n,e){return u(v(n,(W(),T3)),15).Fc(e),e}function WW(n,e){return n.b=e.b,n.c=e.c,n.d=e.d,n.a=e.a,n}function BIn(n,e,t,i){this.b=n,this.c=i,IC.call(this,e,t)}function yge(n,e,t){n.i=0,n.e=0,e!=t&&yFn(n,e,t)}function jge(n,e,t){n.i=0,n.e=0,e!=t&&jFn(n,e,t)}function Ege(n,e,t){return s6(),J5e(u(ee(n.e,e),529),t)}function Dp(n){var e;return e=n.f,e||(n.f=new h4(n,n.c))}function RIn(n,e){return xg(n.j,e.s,e.c)+xg(e.e,n.s,n.c)}function KIn(n,e){n.e&&!n.e.a&&(Ayn(n.e,e),KIn(n.e,e))}function _In(n,e){n.d&&!n.d.a&&(Ayn(n.d,e),_In(n.d,e))}function Cge(n,e){return-bt(Su(n)*ao(n),Su(e)*ao(e))}function Mge(n){return u(n.ld(),149).Pg()+":"+Jr(n.md())}function HIn(){tF(this,new oG),this.wb=(G1(),Hn),o4()}function qIn(n){this.b=new Z,hi(this.b,this.b),this.a=n}function JW(n,e){new Ct,this.a=new Mu,this.b=n,this.c=e}function j0(){j0=F,Pun=new FU,ZK=new FU,Iun=new D0n}function Dn(){Dn=F,sr=new A0n,Wh=new P0n,hP=new I0n}function QW(){QW=F,RQn=new nbn,_Qn=new aW,KQn=new ebn}function Lp(){Lp=F,mP=new Z,m_=new de,p_=new Z}function TM(n,e){if(n==null)throw M(new sp(e));return n}function AM(n){return!n.a&&(n.a=new q(Qe,n,10,11)),n.a}function ft(n){return!n.q&&(n.q=new q(As,n,11,10)),n.q}function _(n){return!n.s&&(n.s=new q(ku,n,21,17)),n.s}function Tge(n){return Se(n),IRn(new te(re(n.a.Kc(),new En)))}function Age(n,e){return wo(n),wo(e),Fjn(u(n,22),u(e,22))}function nd(n,e,t){var i,r;i=IV(t),r=new AE(i),df(n,e,r)}function MN(n,e,t,i,r,c){ok.call(this,n,e,t,i,r,c?-2:-1)}function UIn(n,e,t,i){pX.call(this,e,t),this.b=n,this.a=i}function GIn(n,e){Vfe.call(this,new iN(n)),this.a=n,this.b=e}function YW(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Sge(n){xs();var e;e=u(n.g,10),e.n.a=n.d.c+e.d.b}function O4(){O4=F;var n,e;e=!$8e(),n=new V3,VK=e?new og:n}function TN(n){return Dn(),O(n,59)?new jD(n):new BC(n)}function SM(n){return O(n,16)?new B6(u(n,16)):obe(n.Kc())}function Pge(n){return new HTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function Ige(n){return new qTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function ZW(n){return n&&n.hashCode?n.hashCode():l0(n)}function AN(n,e){return e==null?!!wr(n.f,null):zbe(n.i,e)}function Oge(n,e){var t;return t=$X(n.a,e),t&&(e.d=null),t}function zIn(n,e,t){return n.f?n.f.ef(e,t):!1}function z7(n,e,t,i){$t(n.c[e.g],t.g,i),$t(n.c[t.g],e.g,i)}function SN(n,e,t,i){$t(n.c[e.g],e.g,t),$t(n.b[e.g],e.g,i)}function Dge(n,e,t){return $(R(t.a))<=n&&$(R(t.b))>=e}function XIn(n,e){this.g=n,this.d=S(T(Qh,1),b1,10,0,[e])}function VIn(n){this.c=n,this.b=new Ul(u(Se(new tbn),50))}function WIn(n){this.c=n,this.b=new Ul(u(Se(new ewn),50))}function JIn(n){this.b=n,this.a=new Ul(u(Se(new Nbn),50))}function QIn(){this.b=new ni,this.d=new Ct,this.e=new ZG}function nJ(){this.c=new Li,this.d=new Li,this.e=new Li}function E0(){this.a=new Mu,this.b=(Co(3,mw),new Gc(3))}function Wl(n,e){this.e=n,this.a=ki,this.b=Qqn(e),this.c=e}function PM(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function YIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function ZIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function X1(n,e,t,i,r,c,s){return new GN(n.e,e,t,i,r,c,s)}function Lge(n,e,t){return t>=0&&An(n.substr(t,e.length),e)}function nOn(n,e){return O(e,149)&&An(n.b,u(e,149).Pg())}function Nge(n,e){return n.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function eOn(n,e){var t;return t=n.b.Qc(e),WDn(t,n.b.gc()),t}function X7(n,e){if(n==null)throw M(new sp(e));return n}function Hr(n){return n.u||(Zu(n),n.u=new NAn(n,n)),n.u}function PN(n){this.a=(Dn(),O(n,59)?new jD(n):new BC(n))}function au(n){var e;return e=u(Un(n,16),29),e||n.ii()}function IM(n,e){var t;return t=za(n.Rm),e==null?t:t+": "+e}function qo(n,e,t){return Fi(e,t,n.length),n.substr(e,t-e)}function tOn(n,e){qC.call(this),lQ(this),this.a=n,this.c=e}function $ge(n){n&&IM(n,n.ie())}function xge(n){HE(),y.setTimeout(function(){throw n},0)}function Fge(){return YT(),S(T(Bun,1),G,436,0,[o_,Fun])}function Bge(){return cT(),S(T(Kun,1),G,435,0,[Run,s_])}function Rge(){return uT(),S(T(bon,1),G,432,0,[v_,vP])}function Kge(){return V4(),S(T(KZn,1),G,517,0,[dj,L_])}function _ge(){return KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])}function Hge(){return pk(),S(T($sn,1),G,428,0,[WP,Nsn])}function qge(){return QM(),S(T(Asn,1),G,431,0,[Tsn,V_])}function Uge(){return wk(),S(T(qhn,1),G,430,0,[UH,GH])}function Gge(){return n5(),S(T(Oie,1),G,531,0,[r9,i9])}function zge(){return yT(),S(T(Rln,1),G,501,0,[RI,D2])}function Xge(){return sh(),S(T(Bie,1),G,523,0,[mb,y1])}function Vge(){return Sf(),S(T(Kie,1),G,522,0,[Rd,zf])}function Wge(){return lf(),S(T(ere,1),G,528,0,[zw,ja])}function Jge(){return hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])}function Qge(){return GM(),S(T(S1n,1),G,491,0,[$q,A1n])}function Yge(){return N$(),S(T(N1n,1),G,492,0,[D1n,L1n])}function Zge(){return FM(),S(T(Bln,1),G,433,0,[dq,Fln])}function n2e(){return ZM(),S(T(_ln,1),G,434,0,[Kln,vq])}function e2e(){return M0(),S(T(sre,1),G,465,0,[Ea,P2])}function t2e(){return ck(),S(T(x1n,1),G,438,0,[Kq,JI])}function i2e(){return Ak(),S(T(ran,1),G,437,0,[YI,ian])}function r2e(){return RL(),S(T(dO,1),G,347,0,[vdn,kdn])}function OM(n,e,t,i){return t>=0?n.Uh(e,t,i):n.Ch(null,t,i)}function V7(n){return n.b.b==0?n.a.sf():UL(n.b)}function c2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.f)}function u2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.k)}function eJ(n){return x(n.a)===x((D$(),CU))&&rOe(n),n.a}function o2e(n,e){n.b=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function s2e(n,e){n.c=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function iOn(n,e){ufe(this,new V(n.a,n.b)),ofe(this,F7(e))}function C0(){Wfe.call(this,new ap(Qb(12))),KX(!0),this.a=2}function IN(n,e,t){nt(),Wd.call(this,n),this.b=e,this.a=t}function tJ(n,e,t){Ko(),LE.call(this,e),this.a=n,this.b=t}function rOn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function f2e(n){return n.b==0?null:(oe(n.b!=0),Xo(n,n.a.a))}function Nc(n,e){return e==null?Kr(wr(n.f,null)):d6(n.i,e)}function cOn(n,e,t,i,r){return new rF(n,(B4(),i_),e,t,i,r)}function DM(n,e){return zDn(e),Lme(n,K(ye,Ke,28,e,15,1),e)}function LM(n,e){return TM(n,"set1"),TM(e,"set2"),new VEn(n,e)}function h2e(n,e){var t=XK[n.charCodeAt(0)];return t??n}function uOn(n,e){var t,i;return t=e,i=new DO,LGn(n,t,i),i.d}function ON(n,e,t,i){var r;r=new FAn,e.a[t.g]=r,Pp(n.b,i,r)}function l2e(n,e){var t;return t=Ime(n.f,e),tt(HC(t),n.f.d)}function W7(n){var e;_me(n.a),dTn(n.a),e=new IE(n.a),HY(e)}function a2e(n,e){_qn(n,!0),nu(n.e.Rf(),new NV(n,!0,e))}function d2e(n,e){return Lp(),n==At(Kh(e))||n==At(ia(e))}function b2e(n,e){return kl(),u(v(e,(lc(),Sh)),17).a==n}function wi(n){return Math.max(Math.min(n,et),-2147483648)|0}function oOn(n){this.a=u(Se(n),277),this.b=(Dn(),new XX(n))}function sOn(n,e,t){this.i=new Z,this.b=n,this.g=e,this.a=t}function iJ(n,e,t){this.a=new Z,this.e=n,this.f=e,this.c=t}function NM(n,e,t){this.c=new Z,this.e=n,this.f=e,this.b=t}function fOn(n){qC.call(this),lQ(this),this.a=n,this.c=!0}function w2e(n){function e(){}return e.prototype=n||{},new e}function g2e(n){if(n.Ae())return null;var e=n.n;return rP[e]}function J7(n){return n.Db>>16!=3?null:u(n.Cb,27)}function Af(n){return n.Db>>16!=9?null:u(n.Cb,27)}function hOn(n){return n.Db>>16!=6?null:u(n.Cb,74)}function M0(){M0=F,Ea=new cX(s3,0),P2=new cX(f3,1)}function sh(){sh=F,mb=new tX(f3,0),y1=new tX(s3,1)}function Sf(){Sf=F,Rd=new iX(_B,0),zf=new iX("UP",1)}function lOn(){lOn=F,oQn=Ce((RE(),S(T(uQn,1),G,549,0,[GK])))}function aOn(n){var e;return e=new zE(Qb(n.length)),eY(e,n),e}function dOn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function p2e(n,e){return Zxn(n,e)?(W$n(n),!0):!1}function dl(n,e){if(e==null)throw M(new ip);return F8e(n,e)}function Q7(n,e){var t;t=n.q.getHours(),n.q.setDate(e),G5(n,t)}function rJ(n,e,t){var i;i=n.Ih(e),i>=0?n.bi(i,t):ten(n,e,t)}function bOn(n,e){var t;return t=n.Ih(e),t>=0?n.Wh(t):hF(n,e)}function wOn(n,e){var t;for(Se(e),t=n.a;t;t=t.c)e.Yd(t.g,t.i)}function DN(n,e,t){var i;i=vFn(n,e,t),n.b=new ET(i.c.length)}function Ag(n,e,t){$M(),n&&Xe(yU,n,e),n&&Xe(hE,n,t)}function m2e(n,e){return VC(),_n(),u(e.a,17).a0}function cJ(n){var e;return e=n.d,e=n.bj(n.f),ve(n,e),e.Ob()}function gOn(n,e){var t;return t=new fW(e),_Kn(t,n),new _u(t)}function y2e(n){if(n.p!=0)throw M(new Cu);return M6(n.f,0)}function j2e(n){if(n.p!=0)throw M(new Cu);return M6(n.k,0)}function pOn(n){return n.Db>>16!=7?null:u(n.Cb,241)}function D4(n){return n.Db>>16!=6?null:u(n.Cb,241)}function mOn(n){return n.Db>>16!=7?null:u(n.Cb,167)}function At(n){return n.Db>>16!=11?null:u(n.Cb,27)}function Gb(n){return n.Db>>16!=17?null:u(n.Cb,29)}function vOn(n){return n.Db>>16!=3?null:u(n.Cb,155)}function uJ(n){var e;return ea(n),e=new ni,ut(n,new M9n(e))}function kOn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function E2e(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),G5(n,t)}function yOn(n,e){xC(this),this.f=e,this.g=n,MM(this),this.je()}function jOn(n,e){this.a=n,this.c=Ki(this.a),this.b=new PM(e)}function EOn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function COn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function MOn(n){this.a=n,this.b=K(Sie,J,2043,n.e.length,0,2)}function TOn(){this.a=new ih,this.e=new ni,this.g=0,this.i=0}function $M(){$M=F,yU=new de,hE=new de,ple(MQn,new wvn)}function AOn(){AOn=F,aie=Pu(new ii,(Vi(),zr),(tr(),bj))}function oJ(){oJ=F,die=Pu(new ii,(Vi(),zr),(tr(),bj))}function SOn(){SOn=F,wie=Pu(new ii,(Vi(),zr),(tr(),bj))}function POn(){POn=F,Lie=Re(new ii,(Vi(),zr),(tr(),x8))}function ko(){ko=F,xie=Re(new ii,(Vi(),zr),(tr(),x8))}function IOn(){IOn=F,Fie=Re(new ii,(Vi(),zr),(tr(),x8))}function NN(){NN=F,Hie=Re(new ii,(Vi(),zr),(tr(),x8))}function J6(n,e,t,i,r,c){return new ml(n.e,e,n.Lj(),t,i,r,c)}function Dr(n,e,t){return e==null?Vc(n.f,null,t):$0(n.i,e,t)}function Zi(n,e){n.c&&du(n.c.g,n),n.c=e,n.c&&nn(n.c.g,n)}function $i(n,e){n.c&&du(n.c.a,n),n.c=e,n.c&&nn(n.c.a,n)}function ic(n,e){n.i&&du(n.i.j,n),n.i=e,n.i&&nn(n.i.j,n)}function Ii(n,e){n.d&&du(n.d.e,n),n.d=e,n.d&&nn(n.d.e,n)}function $N(n,e){n.a&&du(n.a.k,n),n.a=e,n.a&&nn(n.a.k,n)}function xN(n,e){n.b&&du(n.b.f,n),n.b=e,n.b&&nn(n.b.f,n)}function OOn(n,e){$we(n,n.b,n.c),u(n.b.b,68),e&&u(e.b,68).b}function C2e(n,e){return bt(u(n.c,65).c.e.b,u(e.c,65).c.e.b)}function M2e(n,e){return bt(u(n.c,65).c.e.a,u(e.c,65).c.e.a)}function T2e(n){return Y$(),_n(),u(n.a,86).d.e!=0}function xM(n,e){O(n.Cb,184)&&(u(n.Cb,184).tb=null),zc(n,e)}function FN(n,e){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,e)}function A2e(n,e){LY(n,e),O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),2)}function S2e(n,e){var t,i;t=e.c,i=t!=null,i&&Ip(n,new qb(e.c))}function DOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function LOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function NOn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function P2e(n,e,t){return nn(n.a,(yM(),Nx(e,t),new i0(e,t))),n}function $c(n,e){return dr(),a$(e)?new eM(e,n):new j7(e,n)}function Y7(n){return dh(),Ec(n,0)>=0?ta(n):G6(ta(n1(n)))}function I2e(n){var e;return e=u(ZC(n.b),9),new _o(n.a,e,n.c)}function $On(n,e){var t;return t=u(tw(Dp(n.a),e),16),t?t.gc():0}function xOn(n,e,t){var i;oBn(e,t,n.c.length),i=t-e,Pz(n.c,e,i)}function Jl(n,e,t){oBn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function Np(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function BN(n){this.a=y.Math.cos(n),this.b=y.Math.sin(n)}function ed(n,e,t,i){this.c=n,this.d=i,$N(this,e),xN(this,t)}function sJ(n,e){Xfe.call(this,new ap(Qb(n))),Co(e,Ozn),this.a=e}function FOn(n,e,t){return new rF(n,(B4(),t_),null,!1,e,t)}function BOn(n,e,t){return new rF(n,(B4(),r_),e,t,null,!1)}function O2e(){return Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])}function D2e(){return bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])}function L2e(){return Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])}function N2e(){return bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])}function $2e(){return i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])}function x2e(){return D0(),S(T(R_,1),G,372,0,[ub,ma,cb])}function F2e(){return u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])}function B2e(){return bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])}function R2e(){return hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])}function K2e(){return Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])}function _2e(){return vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])}function H2e(){return g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])}function q2e(){return gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])}function U2e(){return ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])}function G2e(){return d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])}function z2e(){return om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])}function X2e(){return dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])}function V2e(){return DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])}function W2e(){return O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])}function Pf(n){return cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a]))}function J2e(){return b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])}function ROn(){ROn=F,Fre=Pu(new ii,(Qp(),u9),(q5(),uln))}function FM(){FM=F,dq=new uX("DFS",0),Fln=new uX("BFS",1)}function KOn(n,e,t){var i;i=new E3n,i.b=e,i.a=t,++e.b,nn(n.d,i)}function Q2e(n,e,t){var i;i=new rr(t.d),tt(i,n),DY(e,i.a,i.b)}function Y2e(n,e){LTn(n,Ae(vi(w0(e,24),YA)),Ae(vi(e,YA)))}function zb(n,e){if(n<0||n>e)throw M(new Ir(Ptn+n+Itn+e))}function Ln(n,e){if(n<0||n>=e)throw M(new Ir(Ptn+n+Itn+e))}function zn(n,e){if(n<0||n>=e)throw M(new gz(Ptn+n+Itn+e))}function In(n,e){this.b=(Jn(n),n),this.a=e&vw?e:e|64|wh}function fJ(n){var e;return ea(n),e=(j0(),j0(),ZK),fT(n,e)}function Z2e(n,e,t){var i;return i=V5(n,e,!1),i.b<=e&&i.a<=t}function npe(){return nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])}function epe(){return _T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])}function tpe(){return XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])}function ipe(){return rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])}function rpe(){return Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])}function cpe(){return AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])}function upe(){return jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])}function ope(){return Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])}function spe(){return Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])}function fpe(){return Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])}function T0(n){return Se(n),O(n,16)?new _u(u(n,16)):y4(n.Kc())}function hJ(n,e){return n&&n.equals?n.equals(e):x(n)===x(e)}function vi(n,e){return Q1(ewe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hf(n,e){return Q1(twe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function RN(n,e){return Q1(iwe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hpe(n,e){var t;return t=(Jn(n),n).g,rV(!!t),Jn(e),t(e)}function _On(n,e){var t,i;return i=C4(n,e),t=n.a.fd(i),new zEn(n,t)}function lpe(n){return n.Db>>16!=6?null:u(dF(n),241)}function ape(n){if(n.p!=2)throw M(new Cu);return Ae(n.f)&ui}function dpe(n){if(n.p!=2)throw M(new Cu);return Ae(n.k)&ui}function E(n){return oe(n.ai?1:0}function GOn(n,e){var t,i;return t=s$(e),i=t,u(ee(n.c,i),17).a}function KN(n,e,t){var i;i=n.d[e.p],n.d[e.p]=n.d[t.p],n.d[t.p]=i}function Cpe(n,e,t){var i;n.n&&e&&t&&(i=new uvn,nn(n.e,i))}function _N(n,e){if(fi(n.a,e),e.d)throw M(new ec(nXn));e.d=n}function dJ(n,e){this.a=new Z,this.d=new Z,this.f=n,this.c=e}function zOn(){this.c=new PTn,this.a=new $Ln,this.b=new Xyn,lCn()}function XOn(){qp(),this.b=new de,this.a=new de,this.c=new Z}function VOn(n,e,t){this.d=n,this.j=e,this.e=t,this.o=-1,this.p=3}function WOn(n,e,t){this.d=n,this.k=e,this.f=t,this.o=-1,this.p=5}function JOn(n,e,t,i,r,c){dQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function QOn(n,e,t,i,r,c){bQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function YOn(n,e,t,i,r,c){OJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function ZOn(n,e,t,i,r,c){pQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function nDn(n,e,t,i,r,c){DJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function eDn(n,e,t,i,r,c){wQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function tDn(n,e,t,i,r,c){gQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function iDn(n,e,t,i,r,c){LJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function rDn(n,e,t,i){LE.call(this,t),this.b=n,this.c=e,this.d=i}function cDn(n,e){this.f=n,this.a=($4(),MO),this.c=MO,this.b=e}function uDn(n,e){this.g=n,this.d=($4(),TO),this.a=TO,this.b=e}function bJ(n,e){!n.c&&(n.c=new Rt(n,0)),HA(n.c,(at(),F9),e)}function Mpe(n,e){return oMe(n,e,O(e,102)&&(u(e,19).Bb&hr)!=0)}function Tpe(n,e){return KPn(vc(n.q.getTime()),vc(e.q.getTime()))}function oDn(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),16,new O8n(n))}function Ape(n){return!!n.u&&Sc(n.u.a).i!=0&&!(n.n&&Ix(n.n))}function Spe(n){return!!n.a&&no(n.a.a).i!=0&&!(n.b&&Ox(n.b))}function wJ(n,e){return e==0?!!n.o&&n.o.f!=0:Cx(n,e)}function Ppe(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Hc(t)}function sDn(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Mc(t)}function fDn(n,e){var t;return t=1-e,n.a[t]=jT(n.a[t],t),jT(n,e)}function hDn(n,e){var t,i;return i=vi(n,mr),t=Fs(e,32),hf(t,i)}function lDn(n,e,t){var i;i=(Se(n),new _u(n)),O7e(new EOn(i,e,t))}function Z7(n,e,t){var i;i=(Se(n),new _u(n)),D7e(new COn(i,e,t))}function fc(n,e,t,i,r,c){return Hxn(n,e,t,c),CY(n,i),MY(n,r),n}function aDn(n,e,t,i){return n.a+=""+qo(e==null?gu:Jr(e),t,i),n}function xi(n,e){this.a=n,Xv.call(this,n),zb(e,n.gc()),this.b=e}function dDn(n){this.a=K(ki,Fn,1,QQ(y.Math.max(8,n))<<1,5,1)}function nk(n){return u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199)}function fh(n){return u(xf(n,K(O_,rR,18,n.c.length,0,1)),483)}function bDn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function Q6(n){for(;n.d>0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function wDn(n){return oe(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function Ipe(n,e,t){n.a=e,n.c=t,n.b.a.$b(),vo(n.d),Pb(n.e.a.c,0)}function gDn(n,e){var t;n.e=new uz,t=aw(e),Yt(t,n.c),Iqn(n,t,0)}function ri(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.a,r)}function Q(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.b,r)}function pDn(n,e,t){if(n<0||et)throw M(new Ir(qje(n,e,t)))}function ek(n,e){if(n<0||n>=e)throw M(new Ir(kEe(n,e)));return n}function Ope(n){if(!("stack"in n))try{throw n}catch{}return n}function Sg(n){return s6(),O(n.g,10)?u(n.g,10):null}function Dpe(n){return Tg(n).dc()?!1:(e1e(n,new Pr),!0)}function id(n){var e;return Vr(n)?(e=n,e==-0?0:e):X4e(n)}function mDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function vDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function kDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function gJ(n){var e;return z1(n),e=new L0n,hg(n.a,new j9n(e)),e}function pJ(){var n,e,t;return e=(t=(n=new Jd,n),t),nn(n0n,e),e}function BM(n){var e;return z1(n),e=new N0n,hg(n.a,new E9n(e)),e}function Lpe(n,e){return n.a<=n.b?(e.Dd(n.a++),!0):!1}function yDn(n){P$.call(this,n,(B4(),e_),null,!1,null,!1)}function jDn(){jDn=F,SYn=Ce((YE(),S(T(oon,1),G,489,0,[b_])))}function EDn(){EDn=F,eln=wIn(Y(1),Y(4)),nln=wIn(Y(1),Y(2))}function Npe(n,e){return new _L(e,N6(Ki(e.e),n,n),(_n(),!0))}function RM(n){return new Gc((Co(n,cB),oT(nr(nr(5,n),n/10|0))))}function $pe(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),273,new I8n(n))}function CDn(n){return u(xf(n,K(FZn,DXn,12,n.c.length,0,1)),2042)}function xpe(n){return ko(),!fr(n)&&!(!fr(n)&&n.c.i.c==n.d.i.c)}function Fpe(n,e){return _p(),u(v(e,(lc(),I2)),17).a>=n.gc()}function Y6(n,e){vLe(e,n),JV(n.d),JV(u(v(n,(cn(),mI)),214))}function HN(n,e){kLe(e,n),QV(n.d),QV(u(v(n,(cn(),mI)),214))}function Bpe(n,e,t){n.d&&du(n.d.e,n),n.d=e,n.d&&b0(n.d.e,t,n)}function Rpe(n,e,t){return t.f.c.length>0?MW(n.a,e,t):MW(n.b,e,t)}function Kpe(n,e,t){var i;i=i9e();try{return Aae(n,e,t)}finally{D3e(i)}}function A0(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.pe()),i}function Z6(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.se()),i}function L4(n,e){var t,i;return t=Jb(n,e),i=null,t&&(i=t.se()),i}function bl(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=gnn(t)),i}function _pe(n,e,t){var i;return i=wm(t),FA(n.g,i,e),FA(n.i,e,t),e}function mJ(n,e,t){this.d=new $7n(this),this.e=n,this.i=e,this.f=t}function MDn(n,e,t,i){this.e=null,this.c=n,this.d=e,this.a=t,this.b=i}function TDn(n,e,t,i){ETn(this),this.c=n,this.e=e,this.f=t,this.b=i}function vJ(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function ADn(n,e,t,i){return O(t,59)?new iAn(n,e,t,i):new vW(n,e,t,i)}function N4(n){return O(n,16)?u(n,16).dc():!n.Kc().Ob()}function SDn(n){if(n.e.g!=n.b)throw M(new Bo);return!!n.c&&n.d>0}function be(n){return oe(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function kJ(n,e){Jn(e),$t(n.a,n.c,e),n.c=n.c+1&n.a.length-1,JRn(n)}function V1(n,e){Jn(e),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,e),JRn(n)}function PDn(n){var e;e=n.Gh(),this.a=O(e,71)?u(e,71).Ii():e.Kc()}function Hpe(n){return new In(Ame(u(n.a.md(),16).gc(),n.a.ld()),16)}function IDn(){IDn=F,Gce=Ce((eC(),S(T($1n,1),G,490,0,[Bq])))}function ODn(){ODn=F,Xce=Ce((tC(),S(T(zce,1),G,558,0,[Rq])))}function DDn(){DDn=F,lue=Ce((f6(),S(T(tan,1),G,539,0,[Hj])))}function qpe(){return dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])}function Upe(){return B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])}function Gpe(){return Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])}function zpe(){return A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])}function Xpe(){return N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])}function Vpe(){return nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])}function Wpe(){return $f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])}function Jpe(){return OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])}function Qpe(){return cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])}function Ype(){return lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])}function Zpe(n){var e;return n.j==(tn(),ae)&&(e=mHn(n),Au(e,Zn))}function n3e(n,e){var t;t=e.a,Zi(t,e.c.d),Ii(t,e.d.d),nw(t.a,n.n)}function yJ(n,e){var t;return t=u(Lf(n.b,e),67),!t&&(t=new Ct),t}function xp(n){return s6(),O(n.g,154)?u(n.g,154):null}function e3e(n){n.a=null,n.e=null,Pb(n.b.c,0),Pb(n.f.c,0),n.c=null}function KM(){KM=F,fH=new Zz(qm,0),Jsn=new Zz("TOP_LEFT",1)}function n5(){n5=F,r9=new eX("UPPER",0),i9=new eX("LOWER",1)}function t3e(n,e){return vp(new V(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function LDn(n,e){return u(ho(_b(u(ot(n.k,e),15).Oc(),b2)),113)}function NDn(n,e){return u(ho(Ap(u(ot(n.k,e),15).Oc(),b2)),113)}function i3e(){return Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])}function r3e(){return w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])}function c3e(){return sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])}function u3e(){return go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])}function o3e(){return To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])}function s3e(){return El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])}function f3e(){return qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])}function h3e(){return LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])}function l3e(n){return $M(),Zc(yU,n)?u(ee(yU,n),341).Qg():null}function Uo(n,e,t){return e<0?hF(n,t):u(t,69).wk().Bk(n,n.hi(),e)}function a3e(n,e,t){var i;return i=wm(t),FA(n.j,i,e),Xe(n.k,e,t),e}function d3e(n,e,t){var i;return i=wm(t),FA(n.d,i,e),Xe(n.e,e,t),e}function $Dn(n){var e,t;return e=(B1(),t=new HO,t),n&&AA(e,n),e}function jJ(n){var e;return e=n.aj(n.i),n.i>0&&Ic(n.g,0,e,0,n.i),e}function xDn(n,e){var t;for(t=n.j.c.length;t>24}function w3e(n){if(n.p!=1)throw M(new Cu);return Ae(n.k)<<24>>24}function g3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.k)<<16>>16}function p3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.f)<<16>>16}function Pg(n,e){return e.e==0||n.e==0?O8:(Am(),vF(n,e))}function RDn(n,e){return x(e)===x(n)?"(this Map)":e==null?gu:Jr(e)}function m3e(n,e,t){return tN(R(Kr(wr(n.f,e))),R(Kr(wr(n.f,t))))}function v3e(n,e,t){var i;i=u(ee(n.g,t),60),nn(n.a.c,new bi(e,i))}function KDn(n,e,t){n.i=0,n.e=0,e!=t&&(jFn(n,e,t),yFn(n,e,t))}function k3e(n,e,t,i,r){var c;c=yMe(r,t,i),nn(e,dEe(r,c)),rje(n,r,e)}function EJ(n,e,t,i,r){this.i=n,this.a=e,this.e=t,this.j=i,this.f=r}function _Dn(n,e){nJ.call(this),this.a=n,this.b=e,nn(this.a.b,this)}function HDn(n){this.b=new de,this.c=new de,this.d=new de,this.a=n}function qDn(n,e){var t;return t=new lp,n.Gd(t),t.a+="..",e.Hd(t),t.a}function UDn(n,e){var t;for(t=e;t;)a0(n,t.i,t.j),t=At(t);return n}function GDn(n,e,t){var i;return i=wm(t),Xe(n.b,i,e),Xe(n.c,e,t),e}function wl(n){var e;for(e=0;n.Ob();)n.Pb(),e=nr(e,1);return oT(e)}function Fh(n,e){dr();var t;return t=u(n,69).vk(),kje(t,e),t.xl(e)}function y3e(n,e,t){if(t){var i=t.oe();n.a[e]=i(t)}else delete n.a[e]}function CJ(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+fa),G5(n,t)}function j3e(n,e){return u(e==null?Kr(wr(n.f,null)):d6(n.i,e),288)}function MJ(n,e){return n==(Vn(),zt)&&e==zt?4:n==zt||e==zt?8:32}function _M(n,e,t){return RA(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function E3e(n,e,t){return Om(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function C3e(n,e,t){return bMe(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function TJ(n){n.b!=n.c&&(n.a=K(ki,Fn,1,8,5,1),n.b=0,n.c=0)}function e5(n){return oe(n.a=0&&n.a[t]===e[t];t--);return t<0}function HM(n){var e;return n?new fW(n):(e=new ih,A$(e,n),e)}function O3e(n,e){var t,i;i=!1;do t=lFn(n,e),i=i|t;while(t);return i}function D3e(n){n&&rme((az(),sun)),--cP,n&&uP!=-1&&(Ele(uP),uP=-1)}function qM(n){nnn(),LTn(this,Ae(vi(w0(n,24),YA)),Ae(vi(n,YA)))}function JDn(){JDn=F,HQn=Ce((YT(),S(T(Bun,1),G,436,0,[o_,Fun])))}function QDn(){QDn=F,qQn=Ce((cT(),S(T(Kun,1),G,435,0,[Run,s_])))}function YDn(){YDn=F,GYn=Ce((uT(),S(T(bon,1),G,432,0,[v_,vP])))}function ZDn(){ZDn=F,_Zn=Ce((V4(),S(T(KZn,1),G,517,0,[dj,L_])))}function nLn(){nLn=F,Ane=Ce((KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])))}function eLn(){eLn=F,gne=Ce((pk(),S(T($sn,1),G,428,0,[WP,Nsn])))}function tLn(){tLn=F,kne=Ce((hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])))}function iLn(){iLn=F,rie=Ce((wk(),S(T(qhn,1),G,430,0,[UH,GH])))}function rLn(){rLn=F,Die=Ce((n5(),S(T(Oie,1),G,531,0,[r9,i9])))}function cLn(){cLn=F,ane=Ce((QM(),S(T(Asn,1),G,431,0,[Tsn,V_])))}function uLn(){uLn=F,xre=Ce((FM(),S(T(Bln,1),G,433,0,[dq,Fln])))}function oLn(){oLn=F,_re=Ce((yT(),S(T(Rln,1),G,501,0,[RI,D2])))}function sLn(){sLn=F,Rie=Ce((sh(),S(T(Bie,1),G,523,0,[mb,y1])))}function fLn(){fLn=F,_ie=Ce((Sf(),S(T(Kie,1),G,522,0,[Rd,zf])))}function hLn(){hLn=F,tre=Ce((lf(),S(T(ere,1),G,528,0,[zw,ja])))}function lLn(){lLn=F,fre=Ce((M0(),S(T(sre,1),G,465,0,[Ea,P2])))}function aLn(){aLn=F,Ure=Ce((ZM(),S(T(_ln,1),G,434,0,[Kln,vq])))}function dLn(){dLn=F,Rce=Ce((GM(),S(T(S1n,1),G,491,0,[$q,A1n])))}function bLn(){bLn=F,_ce=Ce((N$(),S(T(N1n,1),G,492,0,[D1n,L1n])))}function wLn(){wLn=F,Vce=Ce((ck(),S(T(x1n,1),G,438,0,[Kq,JI])))}function gLn(){gLn=F,aue=Ce((Ak(),S(T(ran,1),G,437,0,[YI,ian])))}function pLn(){pLn=F,aoe=Ce((RL(),S(T(dO,1),G,347,0,[vdn,kdn])))}function L3e(){return ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])}function N3e(){return tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])}function $3e(n,e,t){return u(e==null?Vc(n.f,null,t):$0(n.i,e,t),288)}function x3e(n){return(n.k==(Vn(),zt)||n.k==Zt)&&kt(n,(W(),H8))}function XN(n){return n.c&&n.d?aJ(n.c)+"->"+aJ(n.d):"e_"+l0(n)}function qi(n,e){var t,i;for(Jn(e),i=n.Kc();i.Ob();)t=i.Pb(),e.Cd(t)}function F3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function B3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function mLn(n,e){var t;for(t=e;t;)a0(n,-t.i,-t.j),t=At(t);return n}function SJ(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function Go(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function PJ(n,e,t){n.a.c.length=0,fOe(n,e,t),n.a.c.length==0||xSe(n,e)}function tk(n){n.i=0,s7(n.b,null),s7(n.c,null),n.a=null,n.e=null,++n.g}function UM(){UM=F,qf=!0,DQn=!1,LQn=!1,$Qn=!1,NQn=!1}function VN(n){UM(),!qf&&(this.c=n,this.e=!0,this.a=new Z)}function vLn(n,e){this.c=0,this.b=e,HMn.call(this,n,17493),this.a=this.c}function kLn(n){jzn(),Syn(this),this.a=new Ct,sY(this,n),xe(this.a,n)}function yLn(){pL(this),this.b=new V(St,St),this.a=new V(li,li)}function GM(){GM=F,$q=new fX(cin,0),A1n=new fX("TARGET_WIDTH",1)}function Ig(n,e){return(ea(n),s4(new Tn(n,new tQ(e,n.a)))).Bd(v3)}function R3e(){return Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])}function K3e(){return ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])}function _3e(){return o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])}function H3e(){return T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])}function q3e(){return Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])}function U3e(){return wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])}function G3e(){return R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])}function z3e(){return Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])}function X3e(){return gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])}function V3e(){return Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])}function W3e(n){return HE(),function(){return Kpe(n,this,arguments)}}function fr(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function IJ(n,e){return O(e,143)?An(n.c,u(e,143).c):!1}function Zu(n){return n.t||(n.t=new myn(n),k5(new Njn(n),0,n.t)),n.t}function jLn(n){this.b=n,ne.call(this,n),this.a=u(Un(this.b.a,4),129)}function ELn(n){this.b=n,yp.call(this,n),this.a=u(Un(this.b.a,4),129)}function Bs(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.b=t}function OJ(n,e,t,i,r){VOn.call(this,e,i,r),this.c=n,this.a=t}function DJ(n,e,t,i,r){WOn.call(this,e,i,r),this.c=n,this.a=t}function LJ(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.a=t}function WN(n,e){var t;return t=u(Lf(n.d,e),23),t||u(Lf(n.e,e),23)}function CLn(n,e){var t,i;return t=e.ld(),i=n.Fe(t),!!i&&mc(i.e,e.md())}function MLn(n,e){var t;return t=e.ld(),new i0(t,n.e.pc(t,u(e.md(),16)))}function J3e(n,e){var t;return t=n.a.get(e),t??K(ki,Fn,1,0,5,1)}function TLn(n){var e;return e=n.length,An(Yn.substr(Yn.length-e,e),n)}function fe(n){if(pe(n))return n.c=n.a,n.a.Pb();throw M(new nc)}function NJ(n,e){return e==0||n.e==0?n:e>0?wqn(n,e):RBn(n,-e)}function Fp(n,e){return e==0||n.e==0?n:e>0?RBn(n,e):wqn(n,-e)}function $J(n){ole.call(this,n==null?gu:Jr(n),O(n,82)?u(n,82):null)}function ALn(n){var e;return n.c||(e=n.r,O(e,90)&&(n.c=u(e,29))),n.c}function JN(n){var e;return e=new E0,Ur(e,n),U(e,(cn(),Fr),null),e}function SLn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Vn(),Zt)&&t.k==Zt}function QN(n){var e,t,i;return e=n&ro,t=n>>22&ro,i=n<0?Il:0,Yc(e,t,i)}function Q3e(n){var e,t,i,r;for(t=n,i=0,r=t.length;i=0?n.Lh(i,t,!0):H0(n,e,t)}function Z3e(n,e,t){return bt(vp(pm(n),Ki(e.b)),vp(pm(n),Ki(t.b)))}function n4e(n,e,t){return bt(vp(pm(n),Ki(e.e)),vp(pm(n),Ki(t.e)))}function e4e(n,e){return y.Math.min(W1(e.a,n.d.d.c),W1(e.b,n.d.d.c))}function ik(n,e){n._i(n.i+1),O6(n,n.i,n.Zi(n.i,e)),n.Mi(n.i++,e),n.Ni()}function t5(n){var e,t;++n.j,e=n.g,t=n.i,n.g=null,n.i=0,n.Oi(t,e),n.Ni()}function PLn(n,e,t){var i;i=new NX(n.a),f5(i,n.a.a),Vc(i.f,e,t),n.a.a=i}function xJ(n,e,t,i){var r;for(r=0;re)throw M(new Ir(Mnn(n,e,"index")));return n}function Yl(n,e){var t;return t=(Ln(e,n.c.length),n.c[e]),Pz(n.c,e,1),t}function RJ(n,e){var t,i;return t=(Jn(n),n),i=(Jn(e),e),t==i?0:te.p?-1:0}function FLn(n){var e;return n.a||(e=n.r,O(e,156)&&(n.a=u(e,156))),n.a}function o4e(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].gd(t),136),i.md()}function s4e(n){var e,t;return e=n.ld(),t=u(n.md(),16),x7(t.Nc(),new L8n(e))}function BLn(n,e){return Zc(n.a,e)?(Bp(n.a,e),!0):!1}function Rp(n,e,t){return ek(e,n.e.Rd().gc()),ek(t,n.c.Rd().gc()),n.a[e][t]}function XM(n,e,t){this.a=n,this.b=e,this.c=t,nn(n.t,this),nn(e.i,this)}function VM(n,e,t,i){this.f=n,this.e=e,this.d=t,this.b=i,this.c=i?i.d:null}function rk(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function $4(){$4=F;var n,e;MO=(o4(),e=new xE,e),TO=(n=new fD,n)}function f4e(n){var e;return ea(n),e=new ISn(n,n.a.e,n.a.d|4),new uV(n,e)}function RLn(n){var e;for(z1(n),e=0;n.a.Bd(new W0n);)e=nr(e,1);return e}function WM(n,e){return Jn(e),n.c=0,"Initial capacity must not be negative")}function JM(){JM=F,p9=new lt("org.eclipse.elk.labels.labelManager")}function KLn(){KLn=F,ysn=new Dt("separateLayerConnections",(OT(),F_))}function lf(){lf=F,zw=new rX("REGULAR",0),ja=new rX("CRITICAL",1)}function ck(){ck=F,Kq=new lX("FIXED",0),JI=new lX("CENTER_NODE",1)}function QM(){QM=F,Tsn=new Jz("QUADRATIC",0),V_=new Jz("SCANLINE",1)}function _Ln(){_Ln=F,dne=Ce((u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])))}function HLn(){HLn=F,bne=Ce((bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])))}function qLn(){qLn=F,fne=Ce((D0(),S(T(R_,1),G,372,0,[ub,ma,cb])))}function ULn(){ULn=F,mne=Ce((hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])))}function GLn(){GLn=F,Cne=Ce((Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])))}function zLn(){zLn=F,Tne=Ce((vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])))}function XLn(){XLn=F,Zte=Ce((g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])))}function VLn(){VLn=F,oie=Ce((ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])))}function WLn(){WLn=F,sie=Ce((d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])))}function JLn(){JLn=F,uie=Ce((gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])))}function QLn(){QLn=F,fie=Ce((om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])))}function YLn(){YLn=F,hie=Ce((dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])))}function ZLn(){ZLn=F,lie=Ce((DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])))}function nNn(){nNn=F,are=Ce((b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])))}function eNn(){eNn=F,Gre=Ce((Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])))}function tNn(){tNn=F,ace=Ce((AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])))}function iNn(){iNn=F,dce=Ce((XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])))}function rNn(){rNn=F,wce=Ce((rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])))}function cNn(){cNn=F,mce=Ce((_T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])))}function uNn(){uNn=F,Kce=Ce((nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])))}function oNn(){oNn=F,Aie=Ce((O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])))}function sNn(){sNn=F,WQn=Ce((Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])))}function fNn(){fNn=F,XQn=Ce((bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])))}function hNn(){hNn=F,QQn=Ce((bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])))}function lNn(){lNn=F,xQn=Ce((Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])))}function aNn(){aNn=F,pZn=Ce((i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])))}function dNn(){dNn=F,Que=Ce((jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])))}function bNn(){bNn=F,Uce=Ce((Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])))}function wNn(){wNn=F,Xue=Ce((Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])))}function gNn(){gNn=F,loe=Ce((Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])))}function Df(n,e){return!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),wx(n.o,e)}function h4e(n,e){var t;n.C&&(t=u(Cr(n.b,e),127).n,t.d=n.C.d,t.a=n.C.a)}function UJ(n){var e,t,i,r;r=n.d,e=n.a,t=n.b,i=n.c,n.d=t,n.a=i,n.b=r,n.c=e}function l4e(n){return!n.g&&(n.g=new CE),!n.g.b&&(n.g.b=new byn(n)),n.g.b}function uk(n){return!n.g&&(n.g=new CE),!n.g.c&&(n.g.c=new pyn(n)),n.g.c}function a4e(n){return!n.g&&(n.g=new CE),!n.g.d&&(n.g.d=new wyn(n)),n.g.d}function d4e(n){return!n.g&&(n.g=new CE),!n.g.a&&(n.g.a=new gyn(n)),n.g.a}function b4e(n,e,t,i){return t&&(i=t.Rh(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function w4e(n,e,t,i){return t&&(i=t.Th(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function e$(n,e,t,i){var r;return r=K(ye,Ke,28,e+1,15,1),vPe(r,n,e,t,i),r}function K(n,e,t,i,r,c){var s;return s=_Rn(r,i),r!=10&&S(T(n,c),e,t,r,s),s}function g4e(n,e,t){var i,r;for(r=new Y4(e,n),i=0;it||e=0?n.Lh(t,!0,!0):H0(n,e,!0)}function L4e(n,e,t){var i;return i=vFn(n,e,t),n.b=new ET(i.c.length),den(n,i)}function N4e(n){if(n.b<=0)throw M(new nc);return--n.b,n.a-=n.c.c,Y(n.a)}function $4e(n){var e;if(!n.a)throw M(new PIn);return e=n.a,n.a=At(n.a),e}function x4e(n){for(;!n.a;)if(!eSn(n.c,new C9n(n)))return!1;return!0}function Kp(n){var e;return Se(n),O(n,204)?(e=u(n,204),e):new _8n(n)}function F4e(n){YM(),u(n.of((qe(),Ww)),181).Fc((zu(),tE)),n.qf(sU,null)}function YM(){YM=F,wue=new Emn,pue=new Cmn,gue=M6e((qe(),sU),wue,Ma,pue)}function ZM(){ZM=F,Kln=new sX("LEAF_NUMBER",0),vq=new sX("NODE_SIZE",1)}function u$(n){n.a=K(ye,Ke,28,n.b+1,15,1),n.c=K(ye,Ke,28,n.b,15,1),n.d=0}function B4e(n,e){n.a.Ne(e.d,n.b)>0&&(nn(n.c,new GV(e.c,e.d,n.d)),n.b=e.d)}function nQ(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.g[e]}function kNn(n,e,t){if(rm(n,t),t!=null&&!n.fk(t))throw M(new uD);return t}function o$(n,e){return gk(e)!=10&&S(wo(e),e.Sm,e.__elementTypeId$,gk(e),n),n}function F4(n,e,t,i){var r;i=(j0(),i||Pun),r=n.slice(e,t),Tnn(r,n,e,t,-e,i)}function zo(n,e,t,i,r){return e<0?H0(n,t,i):u(t,69).wk().yk(n,n.hi(),e,i,r)}function R4e(n,e){return bt($(R(v(n,(W(),fb)))),$(R(v(e,fb))))}function yNn(){yNn=F,IQn=Ce((B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])))}function B4(){B4=F,e_=new uC("All",0),t_=new lTn,i_=new kTn,r_=new hTn}function Uu(){Uu=F,Mh=new FD(s3,0),ga=new FD(qm,1),Gs=new FD(f3,2)}function jNn(){jNn=F,KA(),s0n=St,mse=li,f0n=new V9(St),vse=new V9(li)}function ENn(){ENn=F,jYn=Ce((N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])))}function CNn(){CNn=F,AYn=Ce((A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])))}function MNn(){MNn=F,CYn=Ce((Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])))}function TNn(){TNn=F,DZn=Ce((dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])))}function ANn(){ANn=F,TZn=Ce((nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])))}function SNn(){SNn=F,tne=Ce(($f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])))}function PNn(){PNn=F,GZn=Ce((OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])))}function INn(){INn=F,nie=Ce((cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])))}function ONn(){ONn=F,iie=Ce((lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])))}function hk(){hk=F,Fsn=new Yz(kh,0),QP=new Yz("IMPROVE_STRAIGHTNESS",1)}function DNn(n,e){var t,i;return i=e/n.c.Rd().gc()|0,t=e%n.c.Rd().gc(),Rp(n,i,t)}function LNn(n){var e;if(n.nl())for(e=n.i-1;e>=0;--e)L(n,e);return jJ(n)}function eQ(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function NNn(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[1];)t=e;return t}function K4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function _4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function $Nn(n,e){if(e.a)throw M(new ec(nXn));fi(n.a,e),e.a=n,!n.j&&(n.j=e)}function tQ(n,e){IC.call(this,e.zd(),e.yd()&-16449),Jn(n),this.a=n,this.c=e}function H4e(n,e){return new _L(e,a0(Ki(e.e),e.f.a+n,e.f.b+n),(_n(),!1))}function q4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function U4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function xNn(){xNn=F,lce=Ce((sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])))}function FNn(){FNn=F,$re=Ce((w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])))}function BNn(){BNn=F,hre=Ce((Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])))}function RNn(){RNn=F,Vue=Ce((El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])))}function KNn(){KNn=F,Zue=Ce((To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])))}function _Nn(){_Nn=F,foe=Ce((go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])))}function HNn(){HNn=F,doe=Ce((qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])))}function qNn(){qNn=F,goe=Ce((LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])))}function nT(){nT=F,xq=new oL(mVn,0),I1n=new oL(Crn,1),P1n=new oL(kh,2)}function Wb(n,e,t,i,r){return Jn(n),Jn(e),Jn(t),Jn(i),Jn(r),new AW(n,e,i)}function UNn(n,e){var t;return t=u(Bp(n.e,e),400),t?(tW(t),t.e):null}function du(n,e){var t;return t=qr(n,e,0),t==-1?!1:(Yl(n,t),!0)}function GNn(n,e,t){var i;return z1(n),i=new LO,i.a=e,n.a.Nb(new TCn(i,t)),i.a}function G4e(n){var e;return z1(n),e=K(Pi,Tr,28,0,15,1),hg(n.a,new y9n(e)),e}function iQ(n){var e;if(!E$(n))throw M(new nc);return n.e=1,e=n.d,n.d=null,e}function n1(n){var e;return Vr(n)&&(e=0-n,!isNaN(e))?e:Q1(tm(n))}function qr(n,e,t){for(;t=0?tA(n,t,!0,!0):H0(n,e,!0)}function cQ(n){var e;return e=cd(Un(n,32)),e==null&&(iu(n),e=cd(Un(n,32))),e}function uQ(n){var e;return n.Oh()||(e=se(n.Dh())-n.ji(),n.$h().Mk(e)),n.zh()}function QNn(n,e){con=new kE,MYn=e,L8=n,u(L8.b,68),XJ(L8,con,null),aGn(L8)}function i5(){i5=F,E_=new RD("XY",0),j_=new RD("X",1),C_=new RD("Y",2)}function bu(){bu=F,vf=new BD("TOP",0),pa=new BD(qm,1),zs=new BD(Ftn,2)}function vl(){vl=F,vj=new GD(kh,0),v2=new GD("TOP",1),E3=new GD(Ftn,2)}function wk(){wk=F,UH=new nX("INPUT_ORDER",0),GH=new nX("PORT_DEGREE",1)}function R4(){R4=F,hun=Yc(ro,ro,524287),bQn=Yc(0,0,Ty),lun=QN(1),QN(2),aun=QN(0)}function a$(n){var e;return n.d!=n.r&&(e=ws(n),n.e=!!e&&e.lk()==bJn,n.d=e),n.e}function d$(n,e,t){var i;return i=n.g[e],O6(n,e,n.Zi(e,t)),n.Ri(e,t,i),n.Ni(),i}function rT(n,e){var t;return t=n.dd(e),t>=0?(n.gd(t),!0):!1}function b$(n,e){var t;for(Se(n),Se(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function Lf(n,e){var t;return t=u(ee(n.e,e),400),t?(DTn(n,t),t.e):null}function YNn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function Jb(n,e){var t=n.a[e],i=(K$(),WK)[typeof t];return i?i(t):wY(typeof t)}function rc(n,e){var t,i;return ea(n),i=new _J(e,n.a),t=new rSn(i),new Tn(n,t)}function w$(n){var e;return e=n.b.c.length==0?null:sn(n.b,0),e!=null&&M$(n,0),e}function W4e(n,e){var t,i,r;r=e.c.i,t=u(ee(n.f,r),60),i=t.d.c-t.e.c,BQ(e.a,i,0)}function oQ(n,e){var t;for(++n.d,++n.c[e],t=e+1;t=0;)++e[0]}function J4e(n,e){eu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Q4e(n,e){tu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Y4e(n,e){I0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Z4e(n,e){P0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function nme(n,e,t){return vp(new V(t.e.a+t.f.a/2,t.e.b+t.f.b/2),n)==(Jn(e),e)}function eme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function tme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function gk(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function e$n(n,e){return e==(xL(),xL(),AQn)?n.toLocaleLowerCase():n.toLowerCase()}function t$n(n){if(!n.e)throw M(new nc);return n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function sQ(n){if(!n.c)throw M(new nc);return n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function i$n(n){var e;for(++n.a,e=n.c.a.length;n.an.a[i]&&(i=t);return i}function r$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.a==n:!1}function c$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.i==n:!1}function u$n(){u$n=F,yZn=Ce((Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])))}function o$n(){o$n=F,rne=Ce((ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])))}function s$n(){s$n=F,wne=Ce((o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])))}function f$n(){f$n=F,eie=Ce((T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])))}function h$n(){h$n=F,Sne=Ce((Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])))}function l$n(){l$n=F,qre=Ce((wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])))}function a$n(){a$n=F,qce=Ce((R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])))}function d$n(){d$n=F,Wce=Ce((Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])))}function b$n(){b$n=F,zue=Ce((ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])))}function w$n(){w$n=F,mue=Ce((gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])))}function g$n(){g$n=F,eoe=Ce((Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])))}function p$n(){p$n=F,roe=Ce((tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])))}function cT(){cT=F,Run=new Uz("BY_SIZE",0),s_=new Uz("BY_SIZE_AND_SHAPE",1)}function uT(){uT=F,v_=new Xz("EADES",0),vP=new Xz("FRUCHTERMAN_REINGOLD",1)}function pk(){pk=F,WP=new Qz("READING_DIRECTION",0),Nsn=new Qz("ROTATION",1)}function r5(){r5=F,PZn=new rwn,IZn=new own,AZn=new swn,SZn=new uwn,OZn=new fwn}function m$n(n){this.b=new Z,this.a=new Z,this.c=new Z,this.d=new Z,this.e=n}function v$n(n){this.g=n,this.f=new Z,this.a=y.Math.min(this.g.c.c,this.g.d.c)}function k$n(n,e,t){qC.call(this),lQ(this),this.a=n,this.c=t,this.b=e.d,this.f=e.e}function sme(n,e,t){var i,r;for(r=new C(t);r.a=0&&e0?e-1:e,eEn($he(U$n(YV(new up,t),n.n),n.j),n.k)}function Nr(n){var e,t;t=(e=new hD,e),ve((!n.q&&(n.q=new q(As,n,11,10)),n.q),t)}function fQ(n){return(n.i&2?"interface ":n.i&1?"":"class ")+(ll(n),n.o)}function oT(n){return Ec(n,et)>0?et:Ec(n,Wi)<0?Wi:Ae(n)}function Qb(n){return n<3?(Co(n,$zn),n+1):n=-.01&&n.a<=Kf&&(n.a=0),n.b>=-.01&&n.b<=Kf&&(n.b=0),n}function Og(n){Xg();var e,t;for(t=Arn,e=0;et&&(t=n[e]);return t}function C$n(n,e){var t;if(t=oy(n.Dh(),e),!t)throw M(new Gn(da+e+sK));return t}function Yb(n,e){var t;for(t=n;At(t);)if(t=At(t),t==e)return!0;return!1}function vme(n,e){var t,i,r;for(i=e.a.ld(),t=u(e.a.md(),16).gc(),r=0;rn||n>e)throw M(new pz("fromIndex: 0, toIndex: "+n+Mtn+e))}function S0(n){if(n<0)throw M(new Gn("Illegal Capacity: "+n));this.g=this.aj(n)}function hQ(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)}function m$(n,e){var t,i,r,c;for(i=n.d,r=0,c=i.length;r0&&(n.a/=e,n.b/=e),n}function jo(n){var e;return n.w?n.w:(e=lpe(n),e&&!e.Vh()&&(n.w=e),e)}function K4(n,e){var t,i;i=n.a,t=w5e(n,e,null),i!=e&&!n.e&&(t=Nm(n,e,t)),t&&t.oj()}function P$n(n,e,t){var i,r;i=e;do r=$(n.p[i.p])+t,n.p[i.p]=r,i=n.a[i.p];while(i!=e)}function I$n(n,e,t){var i=function(){return n.apply(i,arguments)};return e.apply(i,t),i}function Tme(n){var e;return n==null?null:(e=u(n,195),Bye(e,e.length))}function L(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.Wi(e,n.g[e])}function Ame(n,e){Dn();var t,i;for(i=new Z,t=0;t=14&&e<=16))),n}function Ee(n,e){var t;return Jn(e),t=n[":"+e],B7(!!t,"Enum constant undefined: "+e),t}function we(n,e,t,i,r,c){var s;return s=bN(n,e),G$n(t,s),s.i=r?8:0,s.f=i,s.e=r,s.g=c,s}function dQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=t}function bQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=t}function wQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=t}function gQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=t}function pQ(n,e,t,i,r){this.d=e,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=t}function z$n(n,e){var t,i,r,c;for(i=e,r=0,c=i.length;r=0))throw M(new Gn("tolerance ("+n+") must be >= 0"));return n}function V$n(n,e){var t;return O(e,44)?n.c.Mc(e):(t=wx(n,e),VT(n,e),t)}function Mr(n,e,t){return ad(n,e),zc(n,t),e1(n,0),Zb(n,1),u1(n,!0),c1(n,!0),n}function vk(n,e){var t;if(t=n.gc(),e<0||e>t)throw M(new Kb(e,t));return new SV(n,e)}function wT(n,e){n.b=y.Math.max(n.b,e.d),n.e+=e.r+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W$n(n){Fb(n.c>=0),_8e(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function gT(n){var e,t;for(t=n.c.Cc().Kc();t.Ob();)e=u(t.Pb(),16),e.$b();n.c.$b(),n.d=0}function Fme(n){var e,t,i,r;for(t=n.a,i=0,r=t.length;i=0}function CQ(n,e){n.r>0&&n.c0&&n.g!=0&&CQ(n.i,e/n.r*n.i.d))}function MQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function y$(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,t,n.c))}function X4(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.k))}function j$(n,e){var t;t=n.D,n.D=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.D))}function mT(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.f))}function vT(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,t,n.i))}function TQ(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.a))}function AQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function SQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function PQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function IQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.d))}function Ume(n,e,t){var i;n.b=e,n.a=t,i=(n.a&512)==512?new gjn:new rG,n.c=rAe(i,n.b,n.a)}function oxn(n,e){return Sl(n.e,e)?(dr(),a$(e)?new eM(e,n):new j7(e,n)):new $Mn(e,n)}function Gme(n){var e,t;return 0>n?new Dz:(e=n+1,t=new vLn(e,n),new oV(null,t))}function zme(n,e){Dn();var t;return t=new ap(1),Ai(n)?Dr(t,n,e):Vc(t.f,n,e),new eD(t)}function Xme(n,e){var t,i;return t=n.c,i=e.e[n.p],i>0?u(sn(t.a,i-1),10):null}function Vme(n,e){var t,i;return t=n.o+n.p,i=e.o+e.p,te?(e<<=1,e>0?e:Y5):e}function E$(n){switch(_X(n.e!=3),n.e){case 2:return!1;case 0:return!0}return i4e(n)}function fxn(n,e){var t;return O(e,8)?(t=u(e,8),n.a==t.a&&n.b==t.b):!1}function Jme(n,e){var t;t=new kE,u(e.b,68),u(e.b,68),u(e.b,68),nu(e.a,new BV(n,t,e))}function hxn(n,e){var t,i;for(i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),Vk(n,t.ld(),t.md())}function OQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,t,n.d))}function kT(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,13,t,n.j))}function DQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,21,t,n.b))}function Qme(n,e){(UM(),qf?null:e.c).length==0&&TAn(e,new BU),Dr(n.a,qf?null:e.c,e)}function Yme(n,e){e.Ug("Hierarchical port constraint processing",1),g9e(n),xLe(n),e.Vg()}function D0(){D0=F,ub=new KD("START",0),ma=new KD("MIDDLE",1),cb=new KD("END",2)}function yT(){yT=F,RI=new oX("P1_NODE_PLACEMENT",0),D2=new oX("P2_EDGE_ROUTING",1)}function J1(){J1=F,y3=new lt(Jtn),jP=new lt(MXn),$8=new lt(TXn),lj=new lt(AXn)}function L0(n){var e;return FL(n.f.g,n.d),oe(n.b),n.c=n.a,e=u(n.a.Pb(),44),n.b=GQ(n),e}function LQ(n){var e;return n.b==null?(Gl(),Gl(),dE):(e=n.ul()?n.tl():n.sl(),e)}function lxn(n,e){var t;return t=e==null?-1:qr(n.b,e,0),t<0?!1:(M$(n,t),!0)}function Ks(n,e){var t;return Jn(e),t=e.g,n.b[t]?!1:($t(n.b,t,e),++n.c,!0)}function jT(n,e){var t,i;return t=1-e,i=n.a[t],n.a[t]=i.a[e],i.a[e]=n,n.b=!0,i.b=!1,i}function Zme(n,e){var t,i;for(i=e.Kc();i.Ob();)t=u(i.Pb(),272),n.b=!0,fi(n.e,t),t.b=n}function nve(n,e){var t,i;return t=u(v(n,(cn(),Hw)),8),i=u(v(e,Hw),8),bt(t.b,i.b)}function C$(n,e,t){var i,r,c;return c=e>>5,r=e&31,i=vi(U1(n.n[t][c],Ae(Fs(r,1))),3),i}function axn(n,e,t){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i0?1:0:(!n.c&&(n.c=Y7(vc(n.f))),n.c).e}function yxn(n,e){e?n.B==null&&(n.B=n.D,n.D=null):n.B!=null&&(n.D=n.B,n.B=null)}function rve(n,e){return nm(),n==rb&&e==Iw||n==Iw&&e==rb||n==a2&&e==Pw||n==Pw&&e==a2}function cve(n,e){return nm(),n==rb&&e==Pw||n==rb&&e==a2||n==Iw&&e==a2||n==Iw&&e==Pw}function jxn(n,e){return Mf(),Rs(Kf),y.Math.abs(0-e)<=Kf||e==0||isNaN(0)&&isNaN(e)?0:n/e}function Exn(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new I7n(n)),e))))}function FQ(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new P7n(n)),e))))}function uve(){return pr(),S(T(cH,1),G,259,0,[ZP,cs,K8,nI,yv,m2,_8,vv,kv,eI])}function ove(){return gs(),S(T(Khn,1),G,243,0,[AI,Sj,Pj,Fhn,Bhn,xhn,Rhn,SI,pb,Uw])}function sve(n,e){var t;e.Ug("General Compactor",1),t=d8e(u(z(n,(ua(),yq)),393)),t.Cg(n)}function fve(n,e){var t,i;return t=u(z(n,(ua(),_I)),17),i=u(z(e,_I),17),jc(t.a,i.a)}function BQ(n,e,t){var i,r;for(r=ge(n,0);r.b!=r.d.c;)i=u(be(r),8),i.a+=e,i.b+=t;return n}function o5(n,e,t){var i;for(i=n.b[t&n.f];i;i=i.b)if(t==i.a&&oh(e,i.g))return i;return null}function s5(n,e,t){var i;for(i=n.c[t&n.f];i;i=i.d)if(t==i.f&&oh(e,i.i))return i;return null}function hve(n,e,t){var i,r,c;for(i=0,r=0;r>>31;i!=0&&(n[t]=i)}function P$(n,e,t,i,r,c){var s;this.c=n,s=new Z,pZ(n,s,e,n.b,t,i,r,c),this.a=new xi(s,0)}function Cxn(){this.c=new XE(0),this.b=new XE(Trn),this.d=new XE(lVn),this.a=new XE(QB)}function Vo(n,e,t,i,r,c,s){je.call(this,n,e),this.d=t,this.e=i,this.c=r,this.b=c,this.a=If(s)}function Ut(n,e,t,i,r,c,s,f,h,l,a,d,g){return P_n(n,e,t,i,r,c,s,f,h,l,a,d,g),sx(n,!1),n}function lve(n){return n.b.c.i.k==(Vn(),Zt)?u(v(n.b.c.i,(W(),st)),12):n.b.c}function Mxn(n){return n.b.d.i.k==(Vn(),Zt)?u(v(n.b.d.i,(W(),st)),12):n.b.d}function ave(n){var e;return e=BM(n),o0(e.a,0)?(QE(),QE(),SQn):(QE(),new uAn(e.b))}function I$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.b))}function O$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.c))}function Txn(n){switch(n.g){case 2:return tn(),Wn;case 4:return tn(),Zn;default:return n}}function Axn(n){switch(n.g){case 1:return tn(),ae;case 3:return tn(),Xn;default:return n}}function Sxn(n){switch(n.g){case 0:return new hmn;case 1:return new lmn;default:return null}}function Hp(){Hp=F,x_=new Dt("edgelabelcenterednessanalysis.includelabel",(_n(),wa))}function RQ(){RQ=F,Mie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function Pxn(){Pxn=F,Pie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function D$(){D$=F,x9=new ljn,CU=S(T(ku,1),s2,179,0,[]),Joe=S(T(As,1),Gcn,62,0,[])}function V4(){V4=F,dj=new Vz("TO_INTERNAL_LTR",0),L_=new Vz("TO_INPUT_DIRECTION",1)}function Ou(){Ou=F,Ron=new wwn,Fon=new gwn,Bon=new pwn,xon=new mwn,Kon=new vwn,_on=new kwn}function dve(n,e){e.Ug(HXn,1),HY(Qhe(new IE((o6(),new kN(n,!1,!1,new qU))))),e.Vg()}function bve(n,e,t){t.Ug("DFS Treeifying phase",1),O8e(n,e),PTe(n,e),n.a=null,n.b=null,t.Vg()}function kk(n,e){return _n(),Ai(n)?RJ(n,Oe(e)):$b(n)?tN(n,R(e)):Nb(n)?rwe(n,un(e)):n.Fd(e)}function f5(n,e){var t,i;for(Jn(e),i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),n.zc(t.ld(),t.md())}function wve(n,e,t){var i;for(i=t.Kc();i.Ob();)if(!_M(n,e,i.Pb()))return!1;return!0}function gve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Rh(e,-1-(c==-1?i:c),null,r)),r}function pve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Th(e,-1-(c==-1?i:c),null,r)),r}function Ixn(n){var e;if(n.b==-2){if(n.e==0)e=-1;else for(e=0;n.a[e]==0;e++);n.b=e}return n.b}function mve(n){if(Jn(n),n.length==0)throw M(new eh("Zero length BigInteger"));ESe(this,n)}function KQ(n){this.i=n.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Oxn(n,e,t){this.g=n,this.d=e,this.e=t,this.a=new Z,IEe(this),Dn(),Yt(this.a,null)}function _Q(n,e){e.q=n,n.d=y.Math.max(n.d,e.r),n.b+=e.d+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W4(n,e){var t,i,r,c;return r=n.c,t=n.c+n.b,c=n.d,i=n.d+n.a,e.a>r&&e.ac&&e.br?t=r:zn(e,t+1),n.a=qo(n.a,0,e)+(""+i)+$W(n.a,t)}function Kxn(n,e){n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d=nr(n.d,e)}function Mve(n,e){return e1||n.Ob())return++n.a,n.g=0,e=n.i,n.Ob(),e;throw M(new nc)}function Uxn(n){switch(n.a.g){case 1:return new WCn;case 3:return new WRn;default:return new s8n}}function qQ(n,e){switch(e){case 1:return!!n.n&&n.n.i!=0;case 2:return n.k!=null}return wJ(n,e)}function vc(n){return Ay>22),r=n.h+e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function Yxn(n,e){var t,i,r;return t=n.l-e.l,i=n.m-e.m+(t>>22),r=n.h-e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function zve(n){var e,t;for(RDe(n),t=new C(n.d);t.ai)throw M(new Kb(e,i));return n.Si()&&(t=gOn(n,t)),n.Ei(e,t)}function em(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)Rg(n,c,s)||xA(n,c,s,!0,!1)}function u6e(n){Xg();var e,t,i;for(t=K(Ei,J,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,t[e]=Z9e(i,n);return t}function tm(n){var e,t,i;return e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,Yc(e,t,i)}function QQ(n){var e;if(n<0)return Wi;if(n==0)return 0;for(e=Y5;!(e&n);e>>=1);return e}function R$(n,e,t){return n>=128?!1:n<64?M6(vi(Fs(1,n),t),0):M6(vi(Fs(1,n-64),e),0)}function Pk(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function U(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function fFn(n){var e,t;return t=new zM,Ur(t,n),U(t,(J1(),y3),n),e=new de,$Pe(n,t,e),fDe(n,t,e),t}function hFn(n){var e,t;return e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,e||t}function lFn(n,e){var t,i,r,c;for(t=!1,i=n.a[e].length,c=0;c=0,"Negative initial capacity"),B7(e>=0,"Non-positive load factor"),Hu(this)}function s6e(n,e,t,i,r){var c,s;if(s=n.length,c=t.length,e<0||i<0||r<0||e+r>s||i+r>c)throw M(new qG)}function eY(n,e){Dn();var t,i,r,c,s;for(s=!1,i=e,r=0,c=i.length;r1||e>=0&&n.b<3)}function H$(n){var e,t,i;e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,n.l=e,n.m=t,n.h=i}function rY(n){Dn();var e,t,i;for(i=1,t=n.Kc();t.Ob();)e=t.Pb(),i=31*i+(e!=null?mt(e):0),i=i|0;return i}function d6e(n,e,t,i,r){var c;return c=Xnn(n,e),t&&H$(c),r&&(n=u7e(n,e),i?ba=tm(n):ba=Yc(n.l,n.m,n.h)),c}function yFn(n,e,t){n.g=uF(n,e,(tn(),Zn),n.b),n.d=uF(n,t,Zn,n.b),!(n.g.c==0||n.d.c==0)&&YKn(n)}function jFn(n,e,t){n.g=uF(n,e,(tn(),Wn),n.j),n.d=uF(n,t,Wn,n.j),!(n.g.c==0||n.d.c==0)&&YKn(n)}function cY(n,e){switch(e){case 7:return!!n.e&&n.e.i!=0;case 8:return!!n.d&&n.d.i!=0}return qY(n,e)}function b6e(n,e){switch(e.g){case 0:O(n.b,641)||(n.b=new Rxn);break;case 1:O(n.b,642)||(n.b=new BSn)}}function EFn(n){switch(n.g){case 0:return new gmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function CFn(n){switch(n.g){case 0:return new wmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function w6e(n,e,t){return!s4(ut(new Tn(null,new In(n.c,16)),new Z3(new hMn(e,t)))).Bd((Xa(),v3))}function MFn(n,e){return vp(pm(u(v(e,(lc(),vb)),88)),new V(n.c.e.a-n.b.e.a,n.c.e.b-n.b.e.b))<=0}function g6e(n,e){for(;n.g==null&&!n.c?cJ(n):n.g==null||n.i!=0&&u(n.g[n.i-1],51).Ob();)kle(e,CA(n))}function ld(n){var e,t;for(t=new C(n.a.b);t.ai?1:0}function v6e(n){return nn(n.c,(qp(),bue)),hQ(n.a,$(R(rn((bx(),EI)))))?new tvn:new $kn(n)}function k6e(n){for(;!n.d||!n.d.Ob();)if(n.b&&!i6(n.b))n.d=u(Sp(n.b),51);else return null;return n.d}function oY(n){switch(n.g){case 1:return lVn;default:case 2:return 0;case 3:return QB;case 4:return Trn}}function y6e(){nt();var n;return IU||(n=_1e(oa("M",!0)),n=uM(oa("M",!1),n),IU=n,IU)}function LT(){LT=F,gU=new CC("ELK",0),Tdn=new CC("JSON",1),Mdn=new CC("DOT",2),Adn=new CC("SVG",3)}function d5(){d5=F,VH=new WD("STACKED",0),XH=new WD("REVERSE_STACKED",1),Ij=new WD("SEQUENCED",2)}function b5(){b5=F,wln=new eL(kh,0),nq=new eL("MIDDLE_TO_MIDDLE",1),Lj=new eL("AVOID_OVERLAP",2)}function cm(){cm=F,Esn=new Ygn,Csn=new Zgn,JZn=new Jgn,WZn=new n2n,VZn=new Qgn,jsn=(Jn(VZn),new O0n)}function NT(){NT=F,hdn=new f0(15),Jue=new Ni((qe(),C1),hdn),C9=N3,udn=Pue,odn=Hd,fdn=K2,sdn=Vw}function Lg(n,e){var t,i,r,c,s;for(i=e,r=0,c=i.length;r=n.b.c.length||(fY(n,2*e+1),t=2*e+2,t0&&(e.Cd(t),t.i&&E5e(t))}function hY(n,e,t){var i;for(i=t-1;i>=0&&n[i]===e[i];i--);return i<0?0:ND(vi(n[i],mr),vi(e[i],mr))?-1:1}function SFn(n,e,t){var i,r;this.g=n,this.c=e,this.a=this,this.d=this,r=sxn(t),i=K(sQn,Cy,227,r,0,1),this.b=i}function X$(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)if(Rg(n,c,s))return!0;return!1}function A6e(n,e){var t,i;for(i=n.Zb().Cc().Kc();i.Ob();)if(t=u(i.Pb(),16),t.Hc(e))return!0;return!1}function PFn(n,e,t){var i,r,c,s;for(Jn(t),s=!1,c=n.fd(e),r=t.Kc();r.Ob();)i=r.Pb(),c.Rb(i),s=!0;return s}function V$(n,e){var t,i;return i=u(Un(n.a,4),129),t=K(jU,MK,424,e,0,1),i!=null&&Ic(i,0,t,0,i.length),t}function IFn(n,e){var t;return t=new jF((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e),n.e!=null||(t.c=n),t}function S6e(n,e){var t;return n===e?!0:O(e,85)?(t=u(e,85),dnn(Wa(n),t.vc())):!1}function OFn(n,e,t){var i,r;for(r=t.Kc();r.Ob();)if(i=u(r.Pb(),44),n.Be(e,i.md()))return!0;return!1}function DFn(n,e,t){return n.d[e.p][t.p]||(O9e(n,e,t),n.d[e.p][t.p]=!0,n.d[t.p][e.p]=!0),n.a[e.p][t.p]}function P6e(n,e){var t;return!n||n==e||!kt(e,(W(),sb))?!1:(t=u(v(e,(W(),sb)),10),t!=n)}function W$(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.$l()}}function LFn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n._l()}}function NFn(n){yOn.call(this,"The given string does not match the expected format for individual spacings.",n)}function I6e(n,e){var t;e.Ug("Min Size Preprocessing",1),t=jnn(n),ht(n,(_h(),a9),t.a),ht(n,UI,t.b),e.Vg()}function O6e(n){var e,t,i;for(e=0,i=K(Ei,J,8,n.b,0,1),t=ge(n,0);t.b!=t.d.c;)i[e++]=u(be(t),8);return i}function J$(n,e,t){var i,r,c;for(i=new Ct,c=ge(t,0);c.b!=c.d.c;)r=u(be(c),8),xe(i,new rr(r));PFn(n,e,i)}function D6e(n,e){var t;return t=nr(n,e),ND(RN(n,e),0)|AC(RN(n,t),0)?t:nr(Ey,RN(U1(t,63),1))}function L6e(n,e){var t,i;return t=u(n.d.Bc(e),16),t?(i=n.e.hc(),i.Gc(t),n.e.d-=t.gc(),t.$b(),i):null}function $Fn(n){var e;if(e=n.a.c.length,e>0)return E4(e-1,n.a.c.length),Yl(n.a,e-1);throw M(new $yn)}function xFn(n,e,t){if(n>e)throw M(new Gn(ZA+n+Qzn+e));if(n<0||e>t)throw M(new pz(ZA+n+Stn+e+Mtn+t))}function um(n,e){n.D==null&&n.B!=null&&(n.D=n.B,n.B=null),j$(n,e==null?null:(Jn(e),e)),n.C&&n.hl(null)}function N6e(n,e){var t;t=rn((bx(),EI))!=null&&e.Sg()!=null?$(R(e.Sg()))/$(R(rn(EI))):1,Xe(n.b,e,t)}function lY(n,e){var t,i;if(i=n.c[e],i!=0)for(n.c[e]=0,n.d-=i,t=e+1;tPS?n-t>PS:t-n>PS}function XFn(n,e){var t;for(t=0;tr&&(EKn(e.q,r),i=t!=e.q.d)),i}function VFn(n,e){var t,i,r,c,s,f,h,l;return h=e.i,l=e.j,i=n.f,r=i.i,c=i.j,s=h-r,f=l-c,t=y.Math.sqrt(s*s+f*f),t}function pY(n,e){var t,i;return i=WT(n),i||(t=(UF(),$Hn(e)),i=new Cyn(t),ve(i.El(),n)),i}function Lk(n,e){var t,i;return t=u(n.c.Bc(e),16),t?(i=n.hc(),i.Gc(t),n.d-=t.gc(),t.$b(),n.mc(i)):n.jc()}function G6e(n,e){var t,i;for(i=to(n.d,1)!=0,t=!0;t;)t=!1,t=e.c.mg(e.e,i),t=t|sy(n,e,i,!1),i=!i;$Q(n)}function WFn(n,e,t,i){var r,c;n.a=e,c=i?0:1,n.f=(r=new s_n(n.c,n.a,t,c),new Kqn(t,n.a,r,n.e,n.b,n.c==(O0(),t9)))}function xT(n){var e;return oe(n.a!=n.b),e=n.d.a[n.a],EAn(n.b==n.d.c&&e!=null),n.c=n.a,n.a=n.a+1&n.d.a.length-1,e}function JFn(n){var e;if(n.c!=0)return n.c;for(e=0;e=n.c.b:n.a<=n.c.b))throw M(new nc);return e=n.a,n.a+=n.c.c,++n.b,Y(e)}function ex(n){var e;return e=new DX(n.a),Ur(e,n),U(e,(W(),st),n),e.o.a=n.g,e.o.b=n.f,e.n.a=n.i,e.n.b=n.j,e}function tx(n){return(tn(),mu).Hc(n.j)?$(R(v(n,(W(),jv)))):cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a])).b}function X6e(n){var e;return e=DC(Cie),u(v(n,(W(),Hc)),21).Hc((pr(),yv))&&Re(e,(Vi(),Oc),(tr(),FP)),e}function V6e(n){var e,t,i,r;for(r=new ni,i=new C(n);i.a=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function Z6e(n,e){var t,i,r;for(r=1,t=n,i=e>=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function na(n,e){var t,i,r,c;return c=(r=n?WT(n):null,O_n((i=e,r&&r.Gl(),i))),c==e&&(t=WT(n),t&&t.Gl()),c}function QFn(n,e,t){var i,r;return r=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,0,r,e),t?t.nj(i):t=i),t}function YFn(n,e,t){var i,r;return r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,3,r,e),t?t.nj(i):t=i),t}function vY(n,e,t){var i,r;return r=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,1,r,e),t?t.nj(i):t=i),t}function ZFn(n){var e,t;if(n!=null)for(t=0;t=i||e-129&&n<128?(FSn(),e=n+128,t=pun[e],!t&&(t=pun[e]=new vG(n)),t):new vG(n)}function sm(n){var e,t;return n>-129&&n<128?(nPn(),e=n+128,t=yun[e],!t&&(t=yun[e]=new yG(n)),t):new yG(n)}function tBn(n,e){var t;n.a.c.length>0&&(t=u(sn(n.a,n.a.c.length-1),579),sY(t,e))||nn(n.a,new kLn(e))}function c5e(n){xs();var e,t;e=n.d.c-n.e.c,t=u(n.g,154),nu(t.b,new p7n(e)),nu(t.c,new m7n(e)),qi(t.i,new v7n(e))}function iBn(n){var e;return e=new x1,e.a+="VerticalSegment ",Dc(e,n.e),e.a+=" ",Be(e,RX(new yD,new C(n.k))),e.a}function ix(n,e){var t,i,r;for(t=0,r=uc(n,e).Kc();r.Ob();)i=u(r.Pb(),12),t+=v(i,(W(),Xu))!=null?1:0;return t}function xg(n,e,t){var i,r,c;for(i=0,c=ge(n,0);c.b!=c.d.c&&(r=$(R(be(c))),!(r>t));)r>=e&&++i;return i}function rBn(n,e){Se(n);try{return n._b(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function yY(n,e){Se(n);try{return n.Hc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function u5e(n,e){Se(n);try{return n.Mc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function tw(n,e){Se(n);try{return n.xc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function o5e(n,e){Se(n);try{return n.Bc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function p5(n,e){switch(e.g){case 2:case 1:return uc(n,e);case 3:case 4:return Qo(uc(n,e))}return Dn(),Dn(),sr}function m5(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (name: ",Er(e,n.zb),e.a+=")",e.a)}function s5e(n){var e;return e=u(Lf(n.c.c,""),233),e||(e=new Np(u4(c4(new ep,""),"Other")),s1(n.c.c,"",e)),e}function jY(n,e,t){var i,r;return r=n.sb,n.sb=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),t}function EY(n,e,t){var i,r;return r=n.r,n.r=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,8,r,n.r),t?t.nj(i):t=i),t}function f5e(n,e,t){var i,r;return i=new ml(n.e,4,13,(r=e.c,r||(On(),Yf)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function h5e(n,e,t){var i,r;return i=new ml(n.e,3,13,null,(r=e.c,r||(On(),Yf)),f1(n,e),!1),t?t.nj(i):t=i,t}function r1(n,e){var t,i;return t=u(e,691),i=t.el(),!i&&t.fl(i=O(e,90)?new xMn(n,u(e,29)):new cDn(n,u(e,156))),i}function Nk(n,e,t){var i;n._i(n.i+1),i=n.Zi(e,t),e!=n.i&&Ic(n.g,e,n.g,e+1,n.i-e),$t(n.g,e,i),++n.i,n.Mi(e,t),n.Ni()}function l5e(n,e){var t;return e.a&&(t=e.a.a.length,n.a?Be(n.a,n.b):n.a=new mo(n.d),aDn(n.a,e.a,e.d.length,t)),n}function a5e(n,e){var t;n.c=e,n.a=p8e(e),n.a<54&&(n.f=(t=e.d>1?hDn(e.a[0],e.a[1]):hDn(e.a[0],0),id(e.e>0?t:n1(t))))}function $k(n,e){var t;return t=new LO,n.a.Bd(t)?(b4(),new wD(Jn(GNn(n,t.a,e)))):(z1(n),b4(),b4(),Dun)}function cBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new rgn),Y_n(t,e))}function uBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new cgn),Y_n(t,e))}function rt(n,e){return Ai(n)?An(n,e):$b(n)?nSn(n,e):Nb(n)?(Jn(n),x(n)===x(e)):pW(n)?n.Fb(e):hW(n)?YMn(n,e):hJ(n,e)}function Wo(n,e,t){if(e<0)Pnn(n,t);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ek(n,n.hi(),e)}}function oBn(n,e,t){if(n<0||e>t)throw M(new Ir(ZA+n+Stn+e+", size: "+t));if(n>e)throw M(new Gn(ZA+n+Qzn+e))}function sBn(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (source: ",Er(e,n.d),e.a+=")",e.a)}function fBn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function d5e(n){VA();var e,t,i,r;for(t=jx(),i=0,r=t.length;i=0?ta(n):G6(ta(n1(n))))}function aBn(n,e,t,i,r,c){this.e=new Z,this.f=(gr(),n9),nn(this.e,n),this.d=e,this.a=t,this.b=i,this.f=r,this.c=c}function g5e(n,e,t){n.n=Va(xa,[J,SB],[376,28],14,[t,wi(y.Math.ceil(e/32))],2),n.o=e,n.p=t,n.j=e-1>>1,n.k=t-1>>1}function dBn(n){return n-=n>>1&1431655765,n=(n>>2&858993459)+(n&858993459),n=(n>>4)+n&252645135,n+=n>>8,n+=n>>16,n&63}function bBn(n,e){var t,i;for(i=new ne(n);i.e!=i.i.gc();)if(t=u(ce(i),142),x(e)===x(t))return!0;return!1}function p5e(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Qnn(n,i,e,t):null}function rx(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Ynn(n,i,e,t):null}function m5e(n,e){var t;if(t=Dg(n.i,e),t==null)throw M(new nh("Node did not exist in input."));return HQ(e,t),null}function v5e(n,e){var t;if(t=oy(n,e),O(t,331))return u(t,35);throw M(new Gn(da+e+"' is not a valid attribute"))}function k5(n,e,t){var i;if(i=n.gc(),e>i)throw M(new Kb(e,i));if(n.Si()&&n.Hc(t))throw M(new Gn(Vy));n.Gi(e,t)}function k5e(n,e){e.Ug("Sort end labels",1),qt(ut(rc(new Tn(null,new In(n.b,16)),new Hwn),new qwn),new Uwn),e.Vg()}function ci(){ci=F,Wf=new v7(i8,0),Xr=new v7(f3,1),Br=new v7(s3,2),Vf=new v7(_B,3),us=new v7("UP",4)}function Fk(){Fk=F,XI=new sL("P1_STRUCTURE",0),VI=new sL("P2_PROCESSING_ORDER",1),WI=new sL("P3_EXECUTION",2)}function wBn(){wBn=F,Rre=ah(ah(l6(ah(ah(l6(Re(new ii,(Qp(),c9),(q5(),ZH)),u9),lln),dln),o9),oln),bln)}function y5e(n){switch(u(v(n,(W(),Od)),311).g){case 1:U(n,Od,(vl(),E3));break;case 2:U(n,Od,(vl(),v2))}}function j5e(n){switch(n){case 0:return new rjn;case 1:return new tjn;case 2:return new ijn;default:throw M(new Q9)}}function gBn(n){switch(n.g){case 2:return Xr;case 1:return Br;case 4:return Vf;case 3:return us;default:return Wf}}function AY(n,e){switch(n.b.g){case 0:case 1:return e;case 2:case 3:return new Ho(e.d,0,e.a,e.b);default:return null}}function SY(n){switch(n.g){case 1:return Wn;case 2:return Xn;case 3:return Zn;case 4:return ae;default:return sc}}function Bk(n){switch(n.g){case 1:return ae;case 2:return Wn;case 3:return Xn;case 4:return Zn;default:return sc}}function RT(n){switch(n.g){case 1:return Zn;case 2:return ae;case 3:return Wn;case 4:return Xn;default:return sc}}function PY(n,e,t,i){switch(e){case 1:return!n.n&&(n.n=new q(Ar,n,1,7)),n.n;case 2:return n.k}return yZ(n,e,t,i)}function y5(n,e,t){var i,r;return n.Pj()?(r=n.Qj(),i=lF(n,e,t),n.Jj(n.Ij(7,Y(t),i,e,r)),i):lF(n,e,t)}function cx(n,e){var t,i,r;n.d==null?(++n.e,--n.f):(r=e.ld(),t=e.Bi(),i=(t&et)%n.d.length,o4e(n,i,RHn(n,i,t,r)))}function fm(n,e){var t;t=(n.Bb&Us)!=0,e?n.Bb|=Us:n.Bb&=-1025,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,10,t,e))}function hm(n,e){var t;t=(n.Bb&vw)!=0,e?n.Bb|=vw:n.Bb&=-4097,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,12,t,e))}function lm(n,e){var t;t=(n.Bb&$u)!=0,e?n.Bb|=$u:n.Bb&=-8193,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,15,t,e))}function am(n,e){var t;t=(n.Bb&Tw)!=0,e?n.Bb|=Tw:n.Bb&=-2049,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,11,t,e))}function E5e(n){var e;n.g&&(e=n.c.kg()?n.f:n.a,len(e.a,n.o,!0),len(e.a,n.o,!1),U(n.o,(cn(),Kt),(Oi(),Ud)))}function C5e(n){var e;if(!n.a)throw M(new Or("Cannot offset an unassigned cut."));e=n.c-n.b,n.b+=e,_In(n,e),KIn(n,e)}function M5e(n,e){var t;if(t=ee(n.k,e),t==null)throw M(new nh("Port did not exist in input."));return HQ(e,t),null}function T5e(n){var e,t;for(t=xHn(jo(n)).Kc();t.Ob();)if(e=Oe(t.Pb()),U5(n,e))return A3e((mCn(),Boe),e);return null}function pBn(n){var e,t;for(t=n.p.a.ec().Kc();t.Ob();)if(e=u(t.Pb(),218),e.f&&n.b[e.c]<-1e-10)return e;return null}function A5e(n){var e,t;for(t=Ya(new x1,91),e=!0;n.Ob();)e||(t.a+=ur),e=!1,Dc(t,n.Pb());return(t.a+="]",t).a}function S5e(n){var e,t,i;for(e=new Z,i=new C(n.b);i.ae?1:n==e?n==0?bt(1/n,1/e):0:isNaN(n)?isNaN(e)?0:1:-1}function I5e(n){var e;return e=n.a[n.c-1&n.a.length-1],e==null?null:(n.c=n.c-1&n.a.length-1,$t(n.a,n.c,null),e)}function O5e(n){var e,t,i;for(i=0,t=n.length,e=0;e=1?Xr:Vf):t}function $5e(n){switch(u(v(n,(cn(),$l)),223).g){case 1:return new Ppn;case 3:return new Npn;default:return new Spn}}function ea(n){if(n.c)ea(n.c);else if(n.d)throw M(new Or("Stream already terminated, can't be modified or used"))}function $0(n,e,t){var i;return i=n.a.get(e),n.a.set(e,t===void 0?null:t),i===void 0?(++n.c,++n.b.g):++n.d,i}function x5e(n,e,t){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),10),Mk(t,u(sn(e,i.p),16)))return i;return null}function OY(n,e,t){var i;return i=0,e&&(mg(n.a)?i+=e.f.a/2:i+=e.f.b/2),t&&(mg(n.a)?i+=t.f.a/2:i+=t.f.b/2),i}function F5e(n,e,t){var i;i=t,!i&&(i=YV(new up,0)),i.Ug(PXn,2),jRn(n.b,e,i.eh(1)),YIe(n,e,i.eh(1)),eLe(e,i.eh(1)),i.Vg()}function DY(n,e,t){var i,r;return i=(B1(),r=new yE,r),aT(i,e),lT(i,t),n&&ve((!n.a&&(n.a=new ti(xo,n,5)),n.a),i),i}function ox(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (identifier: ",Er(e,n.k),e.a+=")",e.a)}function sx(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function LY(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function dm(n,e){var t;t=(n.Bb&wh)!=0,e?n.Bb|=wh:n.Bb&=-16385,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,16,t,e))}function NY(n,e){var t;t=(n.Bb&hr)!=0,e?n.Bb|=hr:n.Bb&=-65537,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,20,t,e))}function $Y(n){var e;return e=K(fs,gh,28,2,15,1),n-=hr,e[0]=(n>>10)+Sy&ui,e[1]=(n&1023)+56320&ui,hh(e,0,e.length)}function B5e(n){var e;return e=sw(n),e>34028234663852886e22?St:e<-34028234663852886e22?li:e}function nr(n,e){var t;return Vr(n)&&Vr(e)&&(t=n+e,Ay"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function _5e(n,e){return An(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function x0(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e))}function El(){El=F,lU=new kC(i8,0),Yj=new kC("POLYLINE",1),Kv=new kC("ORTHOGONAL",2),F3=new kC("SPLINES",3)}function _T(){_T=F,l1n=new uL("ASPECT_RATIO_DRIVEN",0),Oq=new uL("MAX_SCALE_DRIVEN",1),h1n=new uL("AREA_DRIVEN",2)}function H5e(n,e,t){var i;try{l6e(n,e,t)}catch(r){throw r=It(r),O(r,606)?(i=r,M(new $J(i))):M(r)}return e}function q5e(n){var e,t,i;for(t=0,i=n.length;te&&i.Ne(n[c-1],n[c])>0;--c)s=n[c],$t(n,c,n[c-1]),$t(n,c-1,s)}function vn(n,e){var t,i,r,c,s;if(t=e.f,s1(n.c.d,t,e),e.g!=null)for(r=e.g,c=0,s=r.length;ce){wDn(t);break}}q7(t,e)}function X5e(n,e){var t,i,r;i=Sg(e),r=$(R(rw(i,(cn(),Vs)))),t=y.Math.max(0,r/2-.5),I5(e,t,1),nn(n,new NCn(e,t))}function V5e(n,e,t){var i;t.Ug("Straight Line Edge Routing",1),t.dh(e,xrn),i=u(z(e,(Mg(),O2)),27),iGn(n,i),t.dh(e,DS)}function xY(n,e){n.n.c.length==0&&nn(n.n,new NM(n.s,n.t,n.i)),nn(n.b,e),gZ(u(sn(n.n,n.n.c.length-1),209),e),RUn(n,e)}function j5(n){var e;this.a=(e=u(n.e&&n.e(),9),new _o(e,u($s(e,e.length),9),0)),this.b=K(ki,Fn,1,this.a.a.length,5,1)}function Jr(n){var e;return Array.isArray(n)&&n.Tm===J2?za(wo(n))+"@"+(e=mt(n)>>>0,e.toString(16)):n.toString()}function W5e(n,e){return n.h==Ty&&n.m==0&&n.l==0?(e&&(ba=Yc(0,0,0)),nTn((R4(),lun))):(e&&(ba=Yc(n.l,n.m,n.h)),Yc(0,0,0))}function J5e(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function yBn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function FY(n,e,t,i){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return PY(n,e,t,i)}function HT(n,e){if(e==n.d)return n.e;if(e==n.e)return n.d;throw M(new Gn("Node "+e+" not part of edge "+n))}function Q5e(n,e){var t;if(t=oy(n.Dh(),e),O(t,102))return u(t,19);throw M(new Gn(da+e+"' is not a valid reference"))}function Jo(n,e,t,i){if(e<0)ten(n,t,i);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ck(n,n.hi(),e,i)}}function eo(n){var e;if(n.b){if(eo(n.b),n.b.d!=n.c)throw M(new Bo)}else n.d.dc()&&(e=u(n.f.c.xc(n.e),16),e&&(n.d=e))}function Y5e(n){Bb();var e,t,i,r;for(e=n.o.b,i=u(u(ot(n.r,(tn(),ae)),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r=t.e,r.b+=e}function Z5e(n){var e,t,i;for(this.a=new ih,i=new C(n);i.a=r)return e.c+t;return e.c+e.b.gc()}function e8e(n,e){m4();var t,i,r,c;for(i=LNn(n),r=e,F4(i,0,i.length,r),t=0;t0&&(i+=r,++t);return t>1&&(i+=n.d*(t-1)),i}function i8e(n){var e,t,i,r,c;return c=enn(n),t=e7(n.c),i=!t,i&&(r=new Ka,df(c,"knownLayouters",r),e=new lyn(r),qi(n.c,e)),c}function KY(n){var e,t,i;for(i=new Hl,i.a+="[",e=0,t=n.gc();e0&&(zn(e-1,n.length),n.charCodeAt(e-1)==58)&&!lx(n,N9,$9))}function _Y(n,e){var t;return x(n)===x(e)?!0:O(e,92)?(t=u(e,92),n.e==t.e&&n.d==t.d&&I3e(n,t.a)):!1}function zp(n){switch(tn(),n.g){case 4:return Xn;case 1:return Zn;case 3:return ae;case 2:return Wn;default:return sc}}function o8e(n){var e,t;if(n.b)return n.b;for(t=qf?null:n.d;t;){if(e=qf?null:t.b,e)return e;t=qf?null:t.d}return a4(),$un}function HY(n){var e,t,i;for(i=$(R(n.a.of((qe(),iO)))),t=new C(n.a.Sf());t.a>5,e=n&31,i=K(ye,Ke,28,t+1,15,1),i[t]=1<3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ot(n,e){var t,i,r;if(t=(n.i==null&&bh(n),n.i),i=e.Lj(),i!=-1){for(r=t.length;i=0;--i)for(e=t[i],r=0;r>1,this.k=e-1>>1}function j8e(n){YM(),u(n.of((qe(),Ma)),181).Hc((io(),hO))&&(u(n.of(Ww),181).Fc((zu(),B3)),u(n.of(Ma),181).Mc(hO))}function SBn(n){var e,t;e=n.d==(Yp(),dv),t=GZ(n),e&&!t||!e&&t?U(n.a,(cn(),Th),(Rh(),Uj)):U(n.a,(cn(),Th),(Rh(),qj))}function bx(){bx=F,nC(),EI=(cn(),gb),Qte=If(S(T(Xq,1),Ern,149,0,[Tj,Vs,M2,wb,qw,IH,Av,Sv,OH,J8,C2,Bd,T2]))}function E8e(n,e){var t;return t=u(Wr(n,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),t.Qc(WSn(t.gc()))}function PBn(n,e){var t,i;if(i=new Y3(n.a.ad(e,!0)),i.a.gc()<=1)throw M(new ip);return t=i.a.ec().Kc(),t.Pb(),u(t.Pb(),40)}function C8e(n,e,t){var i,r;return i=$(n.p[e.i.p])+$(n.d[e.i.p])+e.n.b+e.a.b,r=$(n.p[t.i.p])+$(n.d[t.i.p])+t.n.b+t.a.b,r-i}function WY(n,e){var t;return n.i>0&&(e.lengthn.i&&$t(e,n.i,null),e}function UT(n){var e;return n.Db&64?m5(n):(e=new ls(m5(n)),e.a+=" (instanceClassName: ",Er(e,n.D),e.a+=")",e.a)}function GT(n){var e,t,i,r;for(r=0,t=0,i=n.length;t0?(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=RHn(n,r,i,e),t!=-1):!1}function IBn(n,e){var t,i;n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d+=e,t=e-n.f,i=n.e+t,n.f=i-n.e-t,n.e=i}function JY(n,e){switch(e){case 3:P0(n,0);return;case 4:I0(n,0);return;case 5:eu(n,0);return;case 6:tu(n,0);return}kY(n,e)}function F0(n,e){switch(e.g){case 1:return Cp(n.j,(Ou(),Fon));case 2:return Cp(n.j,(Ou(),Ron));default:return Dn(),Dn(),sr}}function QY(n){m0();var e;switch(e=n.Pc(),e.length){case 0:return qK;case 1:return new VL(Se(e[0]));default:return new PN(q5e(e))}}function OBn(n,e){n.Xj();try{n.d.bd(n.e++,e),n.f=n.d.j,n.g=-1}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function gx(){gx=F,TU=new Tvn,zdn=new Avn,Xdn=new Svn,Vdn=new Pvn,Wdn=new Ivn,Jdn=new Ovn,Qdn=new Dvn,Ydn=new Lvn,Zdn=new Nvn}function zT(n,e){kX();var t,i;return t=D7((KE(),KE(),P8)),i=null,e==t&&(i=u(Nc(fun,n),624)),i||(i=new JPn(n),e==t&&Dr(fun,n,i)),i}function DBn(n){cw();var e;return(n.q?n.q:(Dn(),Dn(),Wh))._b((cn(),db))?e=u(v(n,db),203):e=u(v(Hi(n),W8),203),e}function rw(n,e){var t,i;return i=null,kt(n,(cn(),yI))&&(t=u(v(n,yI),96),t.pf(e)&&(i=t.of(e))),i==null&&(i=v(Hi(n),e)),i}function LBn(n,e){var t,i,r;return O(e,44)?(t=u(e,44),i=t.ld(),r=tw(n.Rc(),i),oh(r,t.md())&&(r!=null||n.Rc()._b(i))):!1}function wf(n,e){var t,i,r;return n.f>0&&(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t)?t.md():null}function Xc(n,e,t){var i,r,c;return n.Pj()?(i=n.i,c=n.Qj(),Nk(n,i,e),r=n.Ij(3,null,e,i,c),t?t.nj(r):t=r):Nk(n,n.i,e),t}function T8e(n,e,t){var i,r;return i=new ml(n.e,4,10,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function A8e(n,e,t){var i,r;return i=new ml(n.e,3,10,null,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),f1(n,e),!1),t?t.nj(i):t=i,t}function NBn(n){Bb();var e;return e=new rr(u(n.e.of((qe(),K2)),8)),n.B.Hc((io(),Hv))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function ta(n){dh();var e,t;return t=Ae(n),e=Ae(U1(n,32)),e!=0?new HOn(t,e):t>10||t<0?new gl(1,t):kQn[t]}function Kk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n%e,Ay=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Hk(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.Ne(e,c.d),t&&i==0)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function L8e(n,e,t,i){var r,c,s;return r=!1,xOe(n.f,t,i)&&(e9e(n.f,n.a[e][t],n.a[e][i]),c=n.a[e],s=c[i],c[i]=c[t],c[t]=s,r=!0),r}function BBn(n,e,t){var i,r,c,s;for(r=u(ee(n.b,t),183),i=0,s=new C(e.j);s.a>5,e&=31,r=n.d+t+(e==0?0:1),i=K(ye,Ke,28,r,15,1),Oye(i,n.a,t,e),c=new Qa(n.e,r,i),Q6(c),c}function N8e(n,e){var t,i,r;for(i=new te(re(Qt(n).a.Kc(),new En));pe(i);)if(t=u(fe(i),18),r=t.d.i,r.c==e)return!1;return!0}function nZ(n,e,t){var i,r,c,s,f;return s=n.k,f=e.k,i=t[s.g][f.g],r=R(rw(n,i)),c=R(rw(e,i)),y.Math.max((Jn(r),r),(Jn(c),c))}function $8e(){return Error.stackTraceLimit>0?(y.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function x8e(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))>0}function eZ(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<0}function KBn(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<=0}function mx(n,e){for(var t=0;!e[t]||e[t]=="";)t++;for(var i=e[t++];t0&&this.b>0&&(this.g=cM(this.c,this.b,this.a))}function F8e(n,e){var t=n.a,i;e=String(e),t.hasOwnProperty(e)&&(i=t[e]);var r=(K$(),WK)[typeof i],c=r?r(i):wY(typeof i);return c}function wm(n){var e,t,i;if(i=null,e=Eh in n.a,t=!e,t)throw M(new nh("Every element must have an id."));return i=Zp(dl(n,Eh)),i}function B0(n){var e,t;for(t=a_n(n),e=null;n.c==2;)Ye(n),e||(e=(nt(),nt(),new P6(2)),pd(e,t),t=e),t.Jm(a_n(n));return t}function VT(n,e){var t,i,r;return n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t?(V$n(n,t),t.md()):null}function XBn(n,e){return n.e>e.e?1:n.ee.d?n.e:n.d=48&&n<48+y.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function B8e(n,e){if(e.c==n)return e.d;if(e.d==n)return e.c;throw M(new Gn("Input edge is not connected to the input port."))}function R8e(n){if(JT(nv,n))return _n(),ov;if(JT(cK,n))return _n(),wa;throw M(new Gn("Expecting true or false"))}function rZ(n){switch(typeof n){case nB:return t1(n);case dtn:return pp(n);case i3:return SAn(n);default:return n==null?0:l0(n)}}function ah(n,e){if(n.a<0)throw M(new Or("Did not call before(...) or after(...) before calling add(...)."));return YX(n,n.a,e),n}function cZ(n){return $M(),O(n,162)?u(ee(hE,MQn),295).Rg(n):Zc(hE,wo(n))?u(ee(hE,wo(n)),295).Rg(n):null}function iu(n){var e,t;return n.Db&32||(t=(e=u(Un(n,16),29),se(e||n.ii())-se(n.ii())),t!=0&&Xp(n,32,K(ki,Fn,1,t,5,1))),n}function Xp(n,e,t){var i;n.Db&e?t==null?jCe(n,e):(i=Rx(n,e),i==-1?n.Eb=t:$t(cd(n.Eb),i,t)):t!=null&>e(n,e,t)}function K8e(n,e,t,i){var r,c;e.c.length!=0&&(r=$Me(t,i),c=xEe(e),qt(fT(new Tn(null,new In(c,1)),new L3n),new MIn(n,t,r,i)))}function _8e(n,e){var t,i,r,c;return i=n.a.length-1,t=e-n.b&i,c=n.c-e&i,r=n.c-n.b&i,EAn(t=c?(R6e(n,e),-1):(B6e(n,e),1)}function WT(n){var e,t,i;if(i=n.Jh(),!i)for(e=0,t=n.Ph();t;t=t.Ph()){if(++e>PB)return t.Qh();if(i=t.Jh(),i||t==n)break}return i}function WBn(n,e){var t;return x(e)===x(n)?!0:!O(e,21)||(t=u(e,21),t.gc()!=n.gc())?!1:n.Ic(t)}function H8e(n,e){return n.ee.e?1:n.fe.f?1:mt(n)-mt(e)}function JT(n,e){return Jn(n),e==null?!1:An(n,e)?!0:n.length==e.length&&An(n.toLowerCase(),e.toLowerCase())}function Ml(n){var e,t;return Ec(n,-129)>0&&Ec(n,128)<0?(ZSn(),e=Ae(n)+128,t=mun[e],!t&&(t=mun[e]=new kG(n)),t):new kG(n)}function dd(){dd=F,Ow=new aC(kh,0),Don=new aC("INSIDE_PORT_SIDE_GROUPS",1),P_=new aC("GROUP_MODEL_ORDER",2),I_=new aC(tin,3)}function q8e(n){var e;return n.b||xhe(n,(e=$ae(n.e,n.a),!e||!An(cK,wf((!e.b&&(e.b=new lo((On(),ar),pc,e)),e.b),"qualified")))),n.c}function U8e(n,e){var t,i;for(t=(zn(e,n.length),n.charCodeAt(e)),i=e+1;i2e3&&(hQn=n,uP=y.setTimeout(_he,10))),cP++==0?(ime((az(),sun)),!0):!1}function r9e(n,e,t){var i;(DQn?(o8e(n),!0):LQn||$Qn?(a4(),!0):NQn&&(a4(),!1))&&(i=new aSn(e),i.b=t,aje(n,i))}function kx(n,e){var t;t=!n.A.Hc((go(),Gd))||n.q==(Oi(),qc),n.u.Hc((zu(),Fl))?t?XDe(n,e):UGn(n,e):n.u.Hc(Pa)&&(t?dDe(n,e):czn(n,e))}function eRn(n){var e;x(z(n,(qe(),B2)))===x((jl(),uO))&&(At(n)?(e=u(z(At(n),B2),346),ht(n,B2,e)):ht(n,B2,M9))}function c9e(n){var e,t;return kt(n.d.i,(cn(),Cv))?(e=u(v(n.c.i,Cv),17),t=u(v(n.d.i,Cv),17),jc(e.a,t.a)>0):!1}function tRn(n,e,t){return new Ho(y.Math.min(n.a,e.a)-t/2,y.Math.min(n.b,e.b)-t/2,y.Math.abs(n.a-e.a)+t,y.Math.abs(n.b-e.b)+t)}function iRn(n){var e;this.d=new Z,this.j=new Li,this.g=new Li,e=n.g.b,this.f=u(v(Hi(e),(cn(),Do)),88),this.e=$(R(nA(e,qw)))}function rRn(n){this.d=new Z,this.e=new Ql,this.c=K(ye,Ke,28,(tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=n}function sZ(n,e,t){var i;switch(i=t[n.g][e],n.g){case 1:case 3:return new V(0,i);case 2:case 4:return new V(i,0);default:return null}}function cRn(n,e,t){var i,r;r=u(V7(e.f),205);try{r.rf(n,t),hIn(e.f,r)}catch(c){throw c=It(c),O(c,103)?(i=c,M(i)):M(c)}}function uRn(n,e,t){var i,r,c,s,f,h;return i=null,f=Zen(z4(),e),c=null,f&&(r=null,h=Qen(f,t),s=null,h!=null&&(s=n.qf(f,h)),r=s,c=r),i=c,i}function yx(n,e,t,i){var r;if(r=n.length,e>=r)return r;for(e=e>0?e:0;ei&&$t(e,i,null),e}function oRn(n,e){var t,i;for(i=n.a.length,e.lengthi&&$t(e,i,null),e}function gm(n,e){var t,i;if(++n.j,e!=null&&(t=(i=n.a.Cb,O(i,99)?u(i,99).th():null),hCe(e,t))){Xp(n.a,4,t);return}Xp(n.a,4,u(e,129))}function u9e(n){var e;if(n==null)return null;if(e=lMe(Fc(n,!0)),e==null)throw M(new kD("Invalid hexBinary value: '"+n+"'"));return e}function QT(n,e,t){var i;e.a.length>0&&(nn(n.b,new SSn(e.a,t)),i=e.a.length,0i&&(e.a+=ITn(K(fs,gh,28,-i,15,1))))}function sRn(n,e,t){var i,r,c;if(!t[e.d])for(t[e.d]=!0,r=new C($g(e));r.a=n.b>>1)for(i=n.c,t=n.b;t>e;--t)i=i.b;else for(i=n.a.a,t=0;t=0?n.Wh(r):hF(n,i)):t<0?hF(n,i):u(i,69).wk().Bk(n,n.hi(),t)}function aRn(n){var e,t,i;for(i=(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o),t=i.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),44),e.md();return uk(i)}function rn(n){var e;if(O(n.a,4)){if(e=cZ(n.a),e==null)throw M(new Or(NVn+n.b+"'. "+LVn+(ll(lE),lE.k)+bcn));return e}else return n.a}function b9e(n,e){var t,i;if(n.j.length!=e.j.length)return!1;for(t=0,i=n.j.length;t=64&&e<128&&(r=hf(r,Fs(1,e-64)));return r}function nA(n,e){var t,i;return i=null,kt(n,(qe(),$3))&&(t=u(v(n,$3),96),t.pf(e)&&(i=t.of(e))),i==null&&Hi(n)&&(i=v(Hi(n),e)),i}function w9e(n,e){var t;return t=u(v(n,(cn(),Fr)),75),yL(e,LZn)?t?vo(t):(t=new Mu,U(n,Fr,t)):t&&U(n,Fr,null),t}function M5(){M5=F,aon=(qe(),qan),g_=Ean,DYn=$2,lon=C1,xYn=(aA(),Uun),$Yn=Hun,FYn=zun,NYn=_un,LYn=(Q$(),son),w_=PYn,hon=IYn,pP=OYn}function eA(n){switch($z(),this.c=new Z,this.d=n,n.g){case 0:case 2:this.a=qW(Oon),this.b=St;break;case 3:case 1:this.a=Oon,this.b=li}}function g9e(n){var e;Ep(u(v(n,(cn(),Kt)),101))&&(e=n.b,nHn((Ln(0,e.c.length),u(e.c[0],30))),nHn(u(sn(e,e.c.length-1),30)))}function p9e(n,e){e.Ug("Self-Loop post-processing",1),qt(ut(ut(rc(new Tn(null,new In(n.b,16)),new s2n),new f2n),new h2n),new l2n),e.Vg()}function dRn(n,e,t){var i,r;if(n.c)eu(n.c,n.c.i+e),tu(n.c,n.c.j+t);else for(r=new C(n.b);r.a=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}n.C&&(t.b=n.C.b,t.c=n.C.c)}function T5(){T5=F,Nhn=new d7(Crn,0),KH=new d7(sR,1),_H=new d7("LINEAR_SEGMENTS",2),Y8=new d7("BRANDES_KOEPF",3),Z8=new d7(sVn,4)}function A5(){A5=F,fj=new hC(eS,0),wP=new hC(HB,1),gP=new hC(qB,2),hj=new hC(UB,3),fj.a=!1,wP.a=!0,gP.a=!1,hj.a=!0}function Vp(){Vp=F,uj=new fC(eS,0),cj=new fC(HB,1),oj=new fC(qB,2),sj=new fC(UB,3),uj.a=!1,cj.a=!0,oj.a=!1,sj.a=!0}function Wp(n,e,t,i){var r;return t>=0?n.Sh(e,t,i):(n.Ph()&&(i=(r=n.Fh(),r>=0?n.Ah(i):n.Ph().Th(n,-1-r,null,i))),n.Ch(e,t,i))}function fZ(n,e){switch(e){case 7:!n.e&&(n.e=new Nn(Vt,n,7,4)),me(n.e);return;case 8:!n.d&&(n.d=new Nn(Vt,n,8,5)),me(n.d);return}JY(n,e)}function ht(n,e,t){return t==null?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),VT(n.o,e)):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),Vk(n.o,e,t)),n}function pRn(n,e){Dn();var t,i,r,c;for(t=n,c=e,O(n,21)&&!O(e,21)&&(t=e,c=n),r=t.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function j9e(n,e,t,i){if(e.at.b)return!0}return!1}function Tx(n,e){return Ai(n)?!!iQn[e]:n.Sm?!!n.Sm[e]:$b(n)?!!tQn[e]:Nb(n)?!!eQn[e]:!1}function E9e(n){var e;e=n.a;do e=u(fe(new te(re(ji(e).a.Kc(),new En))),18).c.i,e.k==(Vn(),Mi)&&n.b.Fc(e);while(e.k==(Vn(),Mi));n.b=Qo(n.b)}function mRn(n,e){var t,i,r;for(r=n,i=new te(re(ji(e).a.Kc(),new En));pe(i);)t=u(fe(i),18),t.c.i.c&&(r=y.Math.max(r,t.c.i.c.p));return r}function C9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.d+t.b.Mf().b+t.d.a,i.Ob()&&(r+=n.w);return r}function M9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.b+t.b.Mf().a+t.d.c,i.Ob()&&(r+=n.w);return r}function vRn(n){var e,t,i,r;if(i=0,r=aw(n),r.c.length==0)return 1;for(t=new C(r);t.a=0?n.Lh(s,t,!0):H0(n,c,t)):u(c,69).wk().yk(n,n.hi(),r,t,i)}function P9e(n,e,t,i){var r,c;c=e.pf((qe(),R2))?u(e.of(R2),21):n.j,r=d5e(c),r!=(VA(),l_)&&(t&&!tZ(r)||bnn(aMe(n,r,i),e))}function I9e(n){switch(n.g){case 1:return N0(),rj;case 3:return N0(),ij;case 2:return N0(),d_;case 4:return N0(),a_;default:return null}}function O9e(n,e,t){if(n.e)switch(n.b){case 1:yge(n.c,e,t);break;case 0:jge(n.c,e,t)}else KDn(n.c,e,t);n.a[e.p][t.p]=n.c.i,n.a[t.p][e.p]=n.c.e}function kRn(n){var e,t;if(n==null)return null;for(t=K(Qh,J,199,n.length,0,2),e=0;e=0)return r;if(n.ol()){for(i=0;i=r)throw M(new Kb(e,r));if(n.Si()&&(i=n.dd(t),i>=0&&i!=e))throw M(new Gn(Vy));return n.Xi(e,t)}function hZ(n,e){if(this.a=u(Se(n),253),this.b=u(Se(e),253),n.Ed(e)>0||n==(dD(),_K)||e==(bD(),HK))throw M(new Gn("Invalid range: "+qDn(n,e)))}function yRn(n){var e,t;for(this.b=new Z,this.c=n,this.a=!1,t=new C(n.a);t.a0),(e&-e)==e)return wi(e*to(n,31)*4656612873077393e-25);do t=to(n,31),i=t%e;while(t-i+(e-1)<0);return wi(i)}function F9e(n,e,t){switch(t.g){case 1:n.a=e.a/2,n.b=0;break;case 2:n.a=e.a,n.b=e.b/2;break;case 3:n.a=e.a/2,n.b=e.b;break;case 4:n.a=0,n.b=e.b/2}}function qk(n,e,t,i){var r,c;for(r=e;r1&&(c=L9e(n,e)),c}function CRn(n){var e;return e=$(R(z(n,(qe(),Qj))))*y.Math.sqrt((!n.a&&(n.a=new q(Qe,n,10,11)),n.a).i),new V(e,e/$(R(z(n,rO))))}function Sx(n){var e;return n.f&&n.f.Vh()&&(e=u(n.f,54),n.f=u(na(n,e),84),n.f!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.f))),n.f}function Px(n){var e;return n.i&&n.i.Vh()&&(e=u(n.i,54),n.i=u(na(n,e),84),n.i!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,7,e,n.i))),n.i}function br(n){var e;return n.b&&n.b.Db&64&&(e=n.b,n.b=u(na(n,e),19),n.b!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,21,e,n.b))),n.b}function uA(n,e){var t,i,r;n.d==null?(++n.e,++n.f):(i=e.Bi(),uTe(n,n.f+1),r=(i&et)%n.d.length,t=n.d[r],!t&&(t=n.d[r]=n.dk()),t.Fc(e),++n.f)}function dZ(n,e,t){var i;return e.tk()?!1:e.Ik()!=-2?(i=e.ik(),i==null?t==null:rt(i,t)):e.qk()==n.e.Dh()&&t==null}function oA(){var n;Co(16,$zn),n=sxn(16),this.b=K(UK,Cy,303,n,0,1),this.c=K(UK,Cy,303,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function Tl(n){vV.call(this),this.k=(Vn(),zt),this.j=(Co(6,mw),new Gc(6)),this.b=(Co(2,mw),new Gc(2)),this.d=new sD,this.f=new nz,this.a=n}function R9e(n){var e,t;n.c.length<=1||(e=Sqn(n,(tn(),ae)),w_n(n,u(e.a,17).a,u(e.b,17).a),t=Sqn(n,Wn),w_n(n,u(t.a,17).a,u(t.b,17).a))}function K9e(n,e,t){var i,r;for(r=n.a.b,i=r.c.length;i102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function Nx(n,e){if(n==null)throw M(new sp("null key in entry: null="+e));if(e==null)throw M(new sp("null value in entry: "+n+"=null"))}function q9e(n,e){for(var t,i;n.Ob();)if(!e.Ob()||(t=n.Pb(),i=e.Pb(),!(x(t)===x(i)||t!=null&&rt(t,i))))return!1;return!e.Ob()}function ARn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[Z$(n.a[0],e),Z$(n.a[1],e),Z$(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function SRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[$T(n.a[0],e),$T(n.a[1],e),$T(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function wZ(n,e,t){Ep(u(v(e,(cn(),Kt)),101))||(PJ(n,e,h1(e,t)),PJ(n,e,h1(e,(tn(),ae))),PJ(n,e,h1(e,Xn)),Dn(),Yt(e.j,new N7n(n)))}function PRn(n){var e,t;for(n.c||sOe(n),t=new Mu,e=new C(n.a),E(e);e.a0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function i7e(n){var e;return n==null?null:new H1((e=Fc(n,!0),e.length>0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function pZ(n,e,t,i,r,c,s,f){var h,l;i&&(h=i.a[0],h&&pZ(n,e,t,h,r,c,s,f),qx(n,t,i.d,r,c,s,f)&&e.Fc(i),l=i.a[1],l&&pZ(n,e,t,l,r,c,s,f))}function Rg(n,e,t){try{return o0(C$(n,e,t),1)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function NRn(n,e,t){try{return o0(C$(n,e,t),0)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function $Rn(n,e,t){try{return o0(C$(n,e,t),2)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function xRn(n,e){if(n.g==-1)throw M(new Cu);n.Xj();try{n.d.hd(n.g,e),n.f=n.d.j}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function r7e(n){var e,t,i,r,c;for(i=new C(n.b);i.ac&&$t(e,c,null),e}function c7e(n,e){var t,i;if(i=n.gc(),e==null){for(t=0;t0&&(h+=r),l[a]=s,s+=f*(h+i)}function BRn(n){var e,t,i;for(i=n.f,n.n=K(Pi,Tr,28,i,15,1),n.d=K(Pi,Tr,28,i,15,1),e=0;e0?n.c:0),++r;n.b=i,n.d=c}function qRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[aZ(n,(bf(),bc),e),aZ(n,Wc,e),aZ(n,wc,e)]),n.f&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function d7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!1,!0)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function b7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!0,!1)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function URn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Js))?(e.Mc(Js),e.Fc(Qs)):e.Hc(Qs)&&(e.Mc(Qs),e.Fc(Js)))}function GRn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Zs))?(e.Mc(Zs),e.Fc(Cs)):e.Hc(Cs)&&(e.Mc(Cs),e.Fc(Zs)))}function Kx(n,e,t,i){var r,c,s,f;return n.a==null&&gje(n,e),s=e.b.j.c.length,c=t.d.p,f=i.d.p,r=f-1,r<0&&(r=s-1),c<=r?n.a[r]-n.a[c]:n.a[s-1]-n.a[c]+n.a[r]}function w7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,27).kh().i),t=new ne(u(n.f,27).kh());t.e!=t.i.gc();)e=u(ce(t),135),nn(n.b,new pD(e));return n.b}function g7e(n){var e,t;if(!n.e)for(n.e=RM(mN(u(n.f,27)).i),t=new ne(mN(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),123),nn(n.e,new Bkn(e));return n.e}function zRn(n){var e,t;if(!n.a)for(n.a=RM(AM(u(n.f,27)).i),t=new ne(AM(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),27),nn(n.a,new ML(n,e));return n.a}function K0(n){var e;if(!n.C&&(n.D!=null||n.B!=null))if(e=iDe(n),e)n.hl(e);else try{n.hl(null)}catch(t){if(t=It(t),!O(t,63))throw M(t)}return n.C}function p7e(n){switch(n.q.g){case 5:gKn(n,(tn(),Xn)),gKn(n,ae);break;case 4:mGn(n,(tn(),Xn)),mGn(n,ae);break;default:y_n(n,(tn(),Xn)),y_n(n,ae)}}function m7e(n){switch(n.q.g){case 5:pKn(n,(tn(),Zn)),pKn(n,Wn);break;case 4:vGn(n,(tn(),Zn)),vGn(n,Wn);break;default:j_n(n,(tn(),Zn)),j_n(n,Wn)}}function Kg(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,r.a,0),r.a+=t.f.a+e,r.b=y.Math.max(r.b,t.f.b);return r.b>0&&(r.b+=e),r}function hA(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,0,r.b),r.b+=t.f.b+e,r.a=y.Math.max(r.a,t.f.a);return r.a>0&&(r.a+=e),r}function XRn(n){var e,t,i;for(i=et,t=new C(n.a);t.a>16==6?n.Cb.Th(n,5,jf,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function v7e(n){O4();var e=n.e;if(e&&e.stack){var t=e.stack,i=e+` +`;return t.substring(0,i.length)==i&&(t=t.substring(i.length)),t.split(` +`)}return[]}function k7e(n){var e;return e=(Q$n(),wQn),e[n>>>28]|e[n>>24&15]<<4|e[n>>20&15]<<8|e[n>>16&15]<<12|e[n>>12&15]<<16|e[n>>8&15]<<20|e[n>>4&15]<<24|e[n&15]<<28}function JRn(n){var e,t,i;n.b==n.c&&(i=n.a.length,t=QQ(y.Math.max(8,i))<<1,n.b!=0?(e=$s(n.a,t),axn(n,e,i),n.a=e,n.b=0):Pb(n.a,t),n.c=i)}function y7e(n,e){var t;return t=n.b,t.pf((qe(),oo))?t.ag()==(tn(),Wn)?-t.Mf().a-$(R(t.of(oo))):e+$(R(t.of(oo))):t.ag()==(tn(),Wn)?-t.Mf().a:e}function Gk(n){var e;return n.b.c.length!=0&&u(sn(n.b,0),72).a?u(sn(n.b,0),72).a:(e=vN(n),e??""+(n.c?qr(n.c.a,n,0):-1))}function lA(n){var e;return n.f.c.length!=0&&u(sn(n.f,0),72).a?u(sn(n.f,0),72).a:(e=vN(n),e??""+(n.i?qr(n.i.j,n,0):-1))}function j7e(n,e){var t,i;if(e<0||e>=n.gc())return null;for(t=e;t0?n.c:0),r=y.Math.max(r,e.d),++i;n.e=c,n.b=r}function C7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,123).kh().i),t=new ne(u(n.f,123).kh());t.e!=t.i.gc();)e=u(ce(t),135),nn(n.b,new pD(e));return n.b}function M7e(n,e){var t,i,r;if(e.dc())return m4(),m4(),aE;for(t=new LAn(n,e.gc()),r=new ne(n);r.e!=r.i.gc();)i=ce(r),e.Hc(i)&&ve(t,i);return t}function yZ(n,e,t,i){return e==0?i?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),uk(n.o)):tA(n,e,t,i)}function Hx(n){var e,t;if(n.rb)for(e=0,t=n.rb.i;e>22),r+=i>>22,r<0)?!1:(n.l=t&ro,n.m=i&ro,n.h=r&Il,!0)}function qx(n,e,t,i,r,c,s){var f,h;return!(e.Te()&&(h=n.a.Ne(t,i),h<0||!r&&h==0)||e.Ue()&&(f=n.a.Ne(t,c),f>0||!s&&f==0))}function P7e(n,e){cm();var t;if(t=n.j.g-e.j.g,t!=0)return 0;switch(n.j.g){case 2:return fx(e,Csn)-fx(n,Csn);case 4:return fx(n,Esn)-fx(e,Esn)}return 0}function I7e(n){switch(n.g){case 0:return Z_;case 1:return nH;case 2:return eH;case 3:return tH;case 4:return JP;case 5:return iH;default:return null}}function $r(n,e,t){var i,r;return i=(r=new lD,ad(r,e),zc(r,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),r),r),e1(i,0),Zb(i,1),u1(i,!0),c1(i,!0),i}function Jp(n,e){var t,i;if(e>=n.i)throw M(new aL(e,n.i));return++n.j,t=n.g[e],i=n.i-e-1,i>0&&Ic(n.g,e+1,n.g,e,i),$t(n.g,--n.i,null),n.Qi(e,t),n.Ni(),t}function QRn(n,e){var t,i;return n.Db>>16==17?n.Cb.Th(n,21,Ts,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function O7e(n){var e,t,i,r;for(Dn(),Yt(n.c,n.a),r=new C(n.c);r.at.a.c.length))throw M(new Gn("index must be >= 0 and <= layer node count"));n.c&&du(n.c.a,n),n.c=t,t&&b0(t.a,e,n)}function tKn(n,e){var t,i,r;for(i=new te(re(Cl(n).a.Kc(),new En));pe(i);)return t=u(fe(i),18),r=u(e.Kb(t),10),new TE(Se(r.n.b+r.o.b/2));return n6(),n6(),KK}function iKn(n,e){this.c=new de,this.a=n,this.b=e,this.d=u(v(n,(W(),j2)),312),x(v(n,(cn(),shn)))===x((hk(),QP))?this.e=new Yyn:this.e=new Qyn}function P5(n,e){var t,i;return i=null,n.pf((qe(),$3))&&(t=u(n.of($3),96),t.pf(e)&&(i=t.of(e))),i==null&&n.Tf()&&(i=n.Tf().of(e)),i==null&&(i=rn(e)),i}function Ux(n,e){var t,i;t=n.fd(e);try{return i=t.Pb(),t.Qb(),i}catch(r){throw r=It(r),O(r,112)?M(new Ir("Can't remove element "+e)):M(r)}}function R7e(n,e){var t,i,r;if(i=new JE,r=new nY(i.q.getFullYear()-fa,i.q.getMonth(),i.q.getDate()),t=JPe(n,e,r),t==0||t0?e:0),++t;return new V(i,r)}function TZ(n,e){var t,i;return n.Db>>16==6?n.Cb.Th(n,6,Vt,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),bO)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function AZ(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,1,oE,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Pdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function SZ(n,e){var t,i;return n.Db>>16==9?n.Cb.Th(n,9,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Odn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function uKn(n,e){var t,i;return n.Db>>16==5?n.Cb.Th(n,9,EO,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),S1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function oKn(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,6,jf,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),I1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function PZ(n,e){var t,i;return n.Db>>16==3?n.Cb.Th(n,0,fE,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),A1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function sKn(){this.a=new dvn,this.g=new oA,this.j=new oA,this.b=new de,this.d=new oA,this.i=new oA,this.k=new de,this.c=new de,this.e=new de,this.f=new de}function H7e(n,e,t){var i,r,c;for(t<0&&(t=0),c=n.i,r=t;rPB)return mm(n,i);if(i==n)return!0}}return!1}function U7e(n){switch(KC(),n.q.g){case 5:U_n(n,(tn(),Xn)),U_n(n,ae);break;case 4:GHn(n,(tn(),Xn)),GHn(n,ae);break;default:VGn(n,(tn(),Xn)),VGn(n,ae)}}function G7e(n){switch(KC(),n.q.g){case 5:fHn(n,(tn(),Zn)),fHn(n,Wn);break;case 4:bRn(n,(tn(),Zn)),bRn(n,Wn);break;default:WGn(n,(tn(),Zn)),WGn(n,Wn)}}function z7e(n){var e,t;e=u(v(n,(qs(),nZn)),17),e?(t=e.a,t==0?U(n,(J1(),jP),new dx):U(n,(J1(),jP),new qM(t))):U(n,(J1(),jP),new qM(1))}function X7e(n,e){var t;switch(t=n.i,e.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-t.o.a;case 3:return n.n.b-t.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function V7e(n,e){switch(n.g){case 0:return e==(Yo(),ka)?HP:qP;case 1:return e==(Yo(),ka)?HP:wj;case 2:return e==(Yo(),ka)?wj:qP;default:return wj}}function Xk(n,e){var t,i,r;for(du(n.a,e),n.e-=e.r+(n.a.c.length==0?0:n.c),r=Frn,i=new C(n.a);i.a>16==3?n.Cb.Th(n,12,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Sdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function OZ(n,e){var t,i;return n.Db>>16==11?n.Cb.Th(n,10,Qe,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Idn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function fKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,11,Ts,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),P1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function hKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,12,As,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),ig)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function ws(n){var e;return!(n.Bb&1)&&n.r&&n.r.Vh()&&(e=u(n.r,54),n.r=u(na(n,e),142),n.r!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.r))),n.r}function Gx(n,e,t){var i;return i=S(T(Pi,1),Tr,28,15,[inn(n,(bf(),bc),e,t),inn(n,Wc,e,t),inn(n,wc,e,t)]),n.f&&(i[0]=y.Math.max(i[0],i[2]),i[2]=i[0]),i}function W7e(n,e){var t,i,r;if(r=v9e(n,e),r.c.length!=0)for(Yt(r,new Pgn),t=r.c.length,i=0;i>19,l=e.h>>19,h!=l?l-h:(r=n.h,f=e.h,r!=f?r-f:(i=n.m,s=e.m,i!=s?i-s:(t=n.l,c=e.l,t-c)))}function aA(){aA=F,Xun=(NA(),f_),zun=new Mn(Otn,Xun),Gun=(cT(),s_),Uun=new Mn(Dtn,Gun),qun=(YT(),o_),Hun=new Mn(Ltn,qun),_un=new Mn(Ntn,(_n(),!0))}function I5(n,e,t){var i,r;i=e*t,O(n.g,154)?(r=xp(n),r.f.d?r.f.a||(n.d.a+=i+Kf):(n.d.d-=i+Kf,n.d.a+=i+Kf)):O(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function lKn(n,e,t){var i,r,c,s,f;for(r=n[t.g],f=new C(e.d);f.a0?n.b:0),++t;e.b=i,e.e=r}function aKn(n){var e,t,i;if(i=n.b,iCn(n.i,i.length)){for(t=i.length*2,n.b=K(UK,Cy,303,t,0,1),n.c=K(UK,Cy,303,t,0,1),n.f=t-1,n.i=0,e=n.a;e;e=e.c)ty(n,e,e);++n.g}}function tke(n,e,t,i){var r,c,s,f;for(r=0;rs&&(f=s/i),r>c&&(h=c/r),rh(n,y.Math.min(f,h)),n}function rke(){KA();var n,e;try{if(e=u(HZ((R1(),Ss),tv),2113),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new fvn}function cke(){KA();var n,e;try{if(e=u(HZ((R1(),Ss),vs),2040),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new $vn}function uke(){jNn();var n,e;try{if(e=u(HZ((R1(),Ss),Sd),2122),e)return e}catch(t){if(t=It(t),O(t,103))n=t,OW((Ie(),n));else throw M(t)}return new S6n}function oke(n,e,t){var i,r;return r=n.e,n.e=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),r!=e&&(e?t=Nm(n,MA(n,e),t):t=Nm(n,n.a,t)),t}function dKn(){JE.call(this),this.e=-1,this.a=!1,this.p=Wi,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Wi}function ske(n,e){var t,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=e.b.d.d,e.a||(r+=e.b.d.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function fke(n,e){var t,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=e.b.b.d,e.a||(r+=e.b.b.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function hke(n,e){var t,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=e.b.g.d,e.a||(r+=e.b.g.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function LZ(){LZ=F,mZn=Pu(Re(Re(Re(new ii,(Vi(),Kc),(tr(),fsn)),Kc,hsn),zr,lsn),zr,Yon),kZn=Re(Re(new ii,Kc,Gon),Kc,Zon),vZn=Pu(new ii,zr,esn)}function lke(n){var e,t,i,r,c;for(e=u(v(n,(W(),H8)),85),c=n.n,i=e.Cc().Kc();i.Ob();)t=u(i.Pb(),314),r=t.i,r.c+=c.a,r.d+=c.b,t.c?Dqn(t):Lqn(t);U(n,H8,null)}function ake(n,e,t){var i,r;switch(r=n.b,i=r.d,e.g){case 1:return-i.d-t;case 2:return r.o.a+i.c+t;case 3:return r.o.b+i.a+t;case 4:return-i.b-t;default:return-1}}function dke(n,e,t){var i,r;for(t.Ug("Interactive node placement",1),n.a=u(v(e,(W(),j2)),312),r=new C(e.b);r.a0&&(s=(c&et)%n.d.length,r=xnn(n,s,c,e),r)?(f=r.nd(t),f):(i=n.ck(c,e,t),n.c.Fc(i),null)}function xZ(n,e){var t,i,r,c;switch(r1(n,e).Kl()){case 3:case 2:{for(t=Wg(e),r=0,c=t.i;r=0;i--)if(An(n[i].d,e)||An(n[i].d,t)){n.length>=i+1&&n.splice(0,i+1);break}return n}function Wk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n/e,Ay0&&(n.b+=2,n.a+=i):(n.b+=1,n.a+=y.Math.min(i,r))}function kKn(n){var e;e=u(v(u(Zo(n.b,0),40),(lc(),Iln)),107),U(n,(pt(),Dv),new V(0,0)),lUn(new rk,n,e.b+e.c-$(R(v(n,rq))),e.d+e.a-$(R(v(n,cq))))}function yKn(n,e){var t,i;if(i=!1,Ai(e)&&(i=!0,Ip(n,new qb(Oe(e)))),i||O(e,242)&&(i=!0,Ip(n,(t=IV(u(e,242)),new AE(t)))),!i)throw M(new vD(Lcn))}function Ike(n,e,t,i){var r,c,s;return r=new ml(n.e,1,10,(s=e.c,O(s,90)?u(s,29):(On(),Ps)),(c=t.c,O(c,90)?u(c,29):(On(),Ps)),f1(n,e),!1),i?i.nj(r):i=r,i}function RZ(n){var e,t;switch(u(v(Hi(n),(cn(),ehn)),429).g){case 0:return e=n.n,t=n.o,new V(e.a+t.a/2,e.b+t.b/2);case 1:return new rr(n.n);default:return null}}function Jk(){Jk=F,YP=new m6(kh,0),Ksn=new m6("LEFTUP",1),Hsn=new m6("RIGHTUP",2),Rsn=new m6("LEFTDOWN",3),_sn=new m6("RIGHTDOWN",4),rH=new m6("BALANCED",5)}function Oke(n,e,t){var i,r,c;if(i=bt(n.a[e.p],n.a[t.p]),i==0){if(r=u(v(e,(W(),T3)),15),c=u(v(t,T3),15),r.Hc(t))return-1;if(c.Hc(e))return 1}return i}function Dke(n){switch(n.g){case 1:return new U4n;case 2:return new G4n;case 3:return new q4n;case 0:return null;default:throw M(new Gn(GR+(n.f!=null?n.f:""+n.g)))}}function KZ(n,e,t){switch(e){case 1:!n.n&&(n.n=new q(Ar,n,1,7)),me(n.n),!n.n&&(n.n=new q(Ar,n,1,7)),Bt(n.n,u(t,16));return;case 2:X4(n,Oe(t));return}uY(n,e,t)}function _Z(n,e,t){switch(e){case 3:P0(n,$(R(t)));return;case 4:I0(n,$(R(t)));return;case 5:eu(n,$(R(t)));return;case 6:tu(n,$(R(t)));return}KZ(n,e,t)}function dA(n,e,t){var i,r,c;c=(i=new lD,i),r=Ff(c,e,null),r&&r.oj(),zc(c,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),c),e1(c,0),Zb(c,1),u1(c,!0),c1(c,!0)}function HZ(n,e){var t,i,r;return t=d6(n.i,e),O(t,241)?(r=u(t,241),r.zi()==null,r.wi()):O(t,507)?(i=u(t,2037),r=i.b,r):null}function Lke(n,e,t,i){var r,c;return Se(e),Se(t),c=u(x6(n.d,e),17),VNn(!!c,"Row %s not in %s",e,n.e),r=u(x6(n.b,t),17),VNn(!!r,"Column %s not in %s",t,n.c),cFn(n,c.a,r.a,i)}function jKn(n,e,t,i,r,c,s){var f,h,l,a,d;if(a=r[c],l=c==s-1,f=l?i:0,d=_Rn(f,a),i!=10&&S(T(n,s-c),e[c],t[c],f,d),!l)for(++c,h=0;h1||f==-1?(c=u(h,15),r.Wb(g8e(n,c))):r.Wb(IF(n,u(h,58)))))}function Kke(n,e,t,i){DEn();var r=RK;function c(){for(var s=0;s0)return!1;return!0}function qke(n){var e,t,i,r,c;for(i=new sd(new qa(n.b).a);i.b;)t=L0(i),e=u(t.ld(),10),c=u(u(t.md(),42).a,10),r=u(u(t.md(),42).b,8),tt(sf(e.n),tt(Ki(c.n),r))}function Uke(n){switch(u(v(n.b,(cn(),Vfn)),387).g){case 1:qt(_r(rc(new Tn(null,new In(n.d,16)),new ypn),new jpn),new Epn);break;case 2:RAe(n);break;case 0:pEe(n)}}function Gke(n,e,t){var i,r,c;for(i=t,!i&&(i=new up),i.Ug("Layout",n.a.c.length),c=new C(n.a);c.a_R)return t;r>-1e-6&&++t}return t}function UZ(n,e){var t;e!=n.b?(t=null,n.b&&(t=OM(n.b,n,-4,t)),e&&(t=Wp(e,n,-4,t)),t=YFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function MKn(n,e){var t;e!=n.f?(t=null,n.f&&(t=OM(n.f,n,-1,t)),e&&(t=Wp(e,n,-1,t)),t=QFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,e,e))}function Wke(n,e,t,i){var r,c,s,f;return fo(n.e)&&(r=e.Lk(),f=e.md(),c=t.md(),s=X1(n,1,r,f,c,r.Jk()?Om(n,r,c,O(r,102)&&(u(r,19).Bb&hr)!=0):-1,!0),i?i.nj(s):i=s),i}function TKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function AKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function Jke(n,e,t){var i,r;return i=n.c[e.c.p][e.p],r=n.c[t.c.p][t.p],i.a!=null&&r.a!=null?tN(i.a,r.a):i.a!=null?-1:r.a!=null?1:0}function Qke(n,e,t){return t.Ug("Tree layout",1),U7(n.b),ff(n.b,(Qp(),LI),LI),ff(n.b,c9,c9),ff(n.b,u9,u9),ff(n.b,o9,o9),n.a=gy(n.b,e),Gke(n,e,t.eh(1)),t.Vg(),e}function Yke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Ja(c),f=(t.b-t.a)*t.c<0?(K1(),$a):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Vkn(n),uge(i.a,r)}function Zke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Ja(c),f=(t.b-t.a)*t.c<0?(K1(),$a):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Rkn(n),cge(i.a,r)}function nye(n){var e;if(n!=null&&n.length>0&&Xi(n,n.length-1)==33)try{return e=$Hn(qo(n,0,n.length-1)),e.e==null}catch(t){if(t=It(t),!O(t,33))throw M(t)}return!1}function eye(n,e,t){var i,r,c;switch(i=Hi(e),r=KT(i),c=new Pc,ic(c,e),t.g){case 1:gi(c,Bk(zp(r)));break;case 2:gi(c,zp(r))}return U(c,(cn(),Kw),R(v(n,Kw))),c}function GZ(n){var e,t;return e=u(fe(new te(re(ji(n.a).a.Kc(),new En))),18),t=u(fe(new te(re(Qt(n.a).a.Kc(),new En))),18),on(un(v(e,(W(),Gf))))||on(un(v(t,Gf)))}function ow(){ow=F,gj=new h7("ONE_SIDE",0),zP=new h7("TWO_SIDES_CORNER",1),XP=new h7("TWO_SIDES_OPPOSING",2),GP=new h7("THREE_SIDES",3),UP=new h7("FOUR_SIDES",4)}function SKn(n,e){var t,i,r,c;for(c=new Z,r=0,i=e.Kc();i.Ob();){for(t=Y(u(i.Pb(),17).a+r);t.a=n.f)break;Bn(c.c,t)}return c}function tye(n,e){var t,i,r,c,s;for(c=new C(e.a);c.a0&&YRn(this,this.c-1,(tn(),Zn)),this.c0&&n[0].length>0&&(this.c=on(un(v(Hi(n[0][0]),(W(),ifn))))),this.a=K(jie,J,2117,n.length,0,2),this.b=K(Eie,J,2118,n.length,0,2),this.d=new zFn}function oye(n){return n.c.length==0?!1:(Ln(0,n.c.length),u(n.c[0],18)).c.i.k==(Vn(),Mi)?!0:Ig(_r(new Tn(null,new In(n,16)),new t3n),new i3n)}function OKn(n,e){var t,i,r,c,s,f,h;for(f=aw(e),c=e.f,h=e.g,s=y.Math.sqrt(c*c+h*h),r=0,i=new C(f);i.a=0?(t=Wk(n,QA),i=Kk(n,QA)):(e=U1(n,1),t=Wk(e,5e8),i=Kk(e,5e8),i=nr(Fs(i,1),vi(n,1))),hf(Fs(i,32),vi(t,mr))}function NKn(n,e,t){var i,r;switch(i=(oe(e.b!=0),u(Xo(e,e.a.a),8)),t.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return r=ge(e,0),q7(r,i),e}function $Kn(n,e,t,i){var r,c,s,f,h;switch(h=n.b,c=e.d,s=c.j,f=sZ(s,h.d[s.g],t),r=tt(Ki(c.n),c.a),c.j.g){case 1:case 3:f.a+=r.a;break;case 2:case 4:f.b+=r.b}xt(i,f,i.c.b,i.c)}function vye(n,e,t){var i,r,c,s;for(s=qr(n.e,e,0),c=new QG,c.b=t,i=new xi(n.e,s);i.b1;e>>=1)e&1&&(i=Pg(i,t)),t.d==1?t=Pg(t,t):t=new QBn(pUn(t.a,t.d,K(ye,Ke,28,t.d<<1,15,1)));return i=Pg(i,t),i}function nnn(){nnn=F;var n,e,t,i;for(Lun=K(Pi,Tr,28,25,15,1),Nun=K(Pi,Tr,28,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Nun[e]=i,i*=.5;for(t=1,n=24;n>=0;n--)Lun[n]=t,t*=.5}function Mye(n){var e,t;if(on(un(z(n,(cn(),Rw))))){for(t=new te(re(Al(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),74),_0(e)&&on(un(z(e,Nd))))return!0}return!1}function xKn(n,e){var t,i,r;fi(n.f,e)&&(e.b=n,i=e.c,qr(n.j,i,0)!=-1||nn(n.j,i),r=e.d,qr(n.j,r,0)!=-1||nn(n.j,r),t=e.a.b,t.c.length!=0&&(!n.i&&(n.i=new iRn(n)),Ive(n.i,t)))}function Tye(n){var e,t,i,r,c;return t=n.c.d,i=t.j,r=n.d.d,c=r.j,i==c?t.p=0&&An(n.substr(e,3),"GMT")||e>=0&&An(n.substr(e,3),"UTC"))&&(t[0]=e+3),Len(n,t,i)}function Sye(n,e){var t,i,r,c,s;for(c=n.g.a,s=n.g.b,i=new C(n.d);i.at;c--)n[c]|=e[c-t-1]>>>s,n[c-1]=e[c-t-1]<0&&Ic(n.g,e,n.g,e+i,f),s=t.Kc(),n.i+=i,r=0;r>4&15,c=n[i]&15,s[r++]=Ddn[t],s[r++]=Ddn[c];return hh(s,0,s.length)}function wu(n){var e,t;return n>=hr?(e=Sy+(n-hr>>10&1023)&ui,t=56320+(n-hr&1023)&ui,String.fromCharCode(e)+(""+String.fromCharCode(t))):String.fromCharCode(n&ui)}function Rye(n,e){Bb();var t,i,r,c;return r=u(u(ot(n.r,e),21),87),r.gc()>=2?(i=u(r.Kc().Pb(),117),t=n.u.Hc((zu(),P9)),c=n.u.Hc(B3),!i.a&&!t&&(r.gc()==2||c)):!1}function RKn(n,e,t,i,r){var c,s,f;for(c=Cqn(n,e,t,i,r),f=!1;!c;)EA(n,r,!0),f=!0,c=Cqn(n,e,t,i,r);f&&EA(n,r,!1),s=B$(r),s.c.length!=0&&(n.d&&n.d.Gg(s),RKn(n,r,t,i,s))}function pA(){pA=F,dU=new j6(kh,0),tdn=new j6("DIRECTED",1),rdn=new j6("UNDIRECTED",2),ndn=new j6("ASSOCIATION",3),idn=new j6("GENERALIZATION",4),edn=new j6("DEPENDENCY",5)}function Kye(n,e){var t;if(!Af(n))throw M(new Or(eWn));switch(t=Af(n),e.g){case 1:return-(n.j+n.f);case 2:return n.i-t.g;case 3:return n.j-t.f;case 4:return-(n.i+n.g)}return 0}function _ye(n,e,t){var i,r,c;return i=e.Lk(),c=e.md(),r=i.Jk()?X1(n,4,i,c,null,Om(n,i,c,O(i,102)&&(u(i,19).Bb&hr)!=0),!0):X1(n,i.tk()?2:1,i,c,i.ik(),-1,!0),t?t.nj(r):t=r,t}function ym(n,e){var t,i;for(Jn(e),i=n.b.c.length,nn(n.b,e);i>0;){if(t=i,i=(i-1)/2|0,n.a.Ne(sn(n.b,i),e)<=0)return Go(n.b,t,e),!0;Go(n.b,t,sn(n.b,i))}return Go(n.b,i,e),!0}function inn(n,e,t,i){var r,c;if(r=0,t)r=$T(n.a[t.g][e.g],i);else for(c=0;c=f)}function KKn(n){switch(n.g){case 0:return new cmn;case 1:return new umn;default:throw M(new Gn("No implementation is available for the width approximator "+(n.f!=null?n.f:""+n.g)))}}function rnn(n,e,t,i){var r;if(r=!1,Ai(i)&&(r=!0,j4(e,t,Oe(i))),r||Nb(i)&&(r=!0,rnn(n,e,t,i)),r||O(i,242)&&(r=!0,nd(e,t,u(i,242))),!r)throw M(new vD(Lcn))}function qye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=wf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),ms),r!=null)){for(i=1;i<(Du(),t0n).length;++i)if(An(t0n[i],r))return i}return 0}function Uye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=wf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),ms),r!=null)){for(i=1;i<(Du(),i0n).length;++i)if(An(i0n[i],r))return i}return 0}function _Kn(n,e){var t,i,r,c;if(Jn(e),c=n.a.gc(),c0?1:0;c.a[r]!=t;)c=c.a[r],r=n.a.Ne(t.d,c.d)>0?1:0;c.a[r]=i,i.b=t.b,i.a[0]=t.a[0],i.a[1]=t.a[1],t.a[0]=null,t.a[1]=null}function Xye(n){var e,t,i,r;for(e=new Z,t=K(so,Xh,28,n.a.c.length,16,1),TW(t,t.length),r=new C(n.a);r.a0&&dUn((Ln(0,t.c.length),u(t.c[0],30)),n),t.c.length>1&&dUn(u(sn(t,t.c.length-1),30),n),e.Vg()}function Wye(n){zu();var e,t;return e=yt(Fl,S(T(oO,1),G,279,0,[Pa])),!(jk(LM(e,n))>1||(t=yt(P9,S(T(oO,1),G,279,0,[S9,B3])),jk(LM(t,n))>1))}function unn(n,e){var t;t=Nc((R1(),Ss),n),O(t,507)?Dr(Ss,n,new LMn(this,e)):Dr(Ss,n,this),tF(this,e),e==(o4(),Udn)?(this.wb=u(this,2038),u(e,2040)):this.wb=(G1(),Hn)}function Jye(n){var e,t,i;if(n==null)return null;for(e=null,t=0;t=d1?"error":i>=900?"warn":i>=800?"info":"log"),nIn(t,n.a),n.b&&sen(e,t,n.b,"Exception: ",!0))}function v(n,e){var t,i;return i=(!n.q&&(n.q=new de),ee(n.q,e)),i??(t=e.Sg(),O(t,4)&&(t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t))),t)}function Vi(){Vi=F,Xs=new f7("P1_CYCLE_BREAKING",0),Jh=new f7("P2_LAYERING",1),Oc=new f7("P3_NODE_ORDERING",2),Kc=new f7("P4_NODE_PLACEMENT",3),zr=new f7("P5_EDGE_ROUTING",4)}function Qye(n,e){r5();var t;if(n.c==e.c){if(n.b==e.b||rve(n.b,e.b)){if(t=Ple(n.b)?1:-1,n.a&&!e.a)return t;if(!n.a&&e.a)return-t}return jc(n.b.g,e.b.g)}else return bt(n.c,e.c)}function zKn(n,e){var t,i,r;if(snn(n,e))return!0;for(i=new C(e);i.a=r||e<0)throw M(new Ir(vK+e+Td+r));if(t>=r||t<0)throw M(new Ir(kK+t+Td+r));return e!=t?i=(c=n.Cj(t),n.qj(e,c),c):i=n.xj(t),i}function WKn(n){var e,t,i;if(i=n,n)for(e=0,t=n.Eh();t;t=t.Eh()){if(++e>PB)return WKn(t);if(i=t,t==n)throw M(new Or("There is a cycle in the containment hierarchy of "+n))}return i}function ra(n){var e,t,i;for(i=new fd(ur,"[","]"),t=n.Kc();t.Ob();)e=t.Pb(),pl(i,x(e)===x(n)?"(this Collection)":e==null?gu:Jr(e));return i.a?i.e.length==0?i.a.a:i.a.a+(""+i.e):i.c}function snn(n,e){var t,i;if(i=!1,e.gc()<2)return!1;for(t=0;t1&&(n.j.b+=n.e)):(n.j.a+=t.a,n.j.b=y.Math.max(n.j.b,t.b),n.d.c.length>1&&(n.j.a+=n.e))}function ca(){ca=F,une=S(T(lr,1),Mc,64,0,[(tn(),Xn),Zn,ae]),cne=S(T(lr,1),Mc,64,0,[Zn,ae,Wn]),one=S(T(lr,1),Mc,64,0,[ae,Wn,Xn]),sne=S(T(lr,1),Mc,64,0,[Wn,Xn,Zn])}function Zye(n,e,t,i){var r,c,s,f,h,l,a;if(s=n.c.d,f=n.d.d,s.j!=f.j)for(a=n.b,r=s.j,h=null;r!=f.j;)h=e==0?RT(r):SY(r),c=sZ(r,a.d[r.g],t),l=sZ(h,a.d[h.g],t),xe(i,tt(c,l)),r=h}function nje(n,e,t,i){var r,c,s,f,h;return s=ZRn(n.a,e,t),f=u(s.a,17).a,c=u(s.b,17).a,i&&(h=u(v(e,(W(),Xu)),10),r=u(v(t,Xu),10),h&&r&&(KDn(n.b,h,r),f+=n.b.i,c+=n.b.e)),f>c}function QKn(n){var e,t,i,r,c,s,f,h,l;for(this.a=kRn(n),this.b=new Z,t=n,i=0,r=t.length;iOL(n.d).c?(n.i+=n.g.c,px(n.d)):OL(n.d).c>OL(n.g).c?(n.e+=n.d.c,px(n.g)):(n.i+=sPn(n.g),n.e+=sPn(n.d),px(n.g),px(n.d))}function rje(n,e,t){var i,r,c,s;for(c=e.q,s=e.r,new ed((lf(),ja),e,c,1),new ed(ja,c,s,1),r=new C(t);r.af&&(h=f/i),r>c&&(l=c/r),s=y.Math.min(h,l),n.a+=s*(e.a-n.a),n.b+=s*(e.b-n.b)}function sje(n,e,t,i,r){var c,s;for(s=!1,c=u(sn(t.b,0),27);FPe(n,e,c,i,r)&&(s=!0,Bke(t,c),t.b.c.length!=0);)c=u(sn(t.b,0),27);return t.b.c.length==0&&Xk(t.j,t),s&&fA(e.q),s}function fje(n,e){Xg();var t,i,r,c;if(e.b<2)return!1;for(c=ge(e,0),t=u(be(c),8),i=t;c.b!=c.d.c;){if(r=u(be(c),8),mF(n,i,r))return!0;i=r}return!!mF(n,i,t)}function hnn(n,e,t,i){var r,c;return t==0?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),UC(n.o,e,i)):(c=u($n((r=u(Un(n,16),29),r||n.ii()),t),69),c.wk().Ak(n,iu(n),t-se(n.ii()),e,i))}function tF(n,e){var t;e!=n.sb?(t=null,n.sb&&(t=u(n.sb,54).Th(n,1,D9,t)),e&&(t=u(e,54).Rh(n,1,D9,t)),t=jY(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,e,e))}function hje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Gkn(n),_4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new zkn(n),q4(i.a,(Jn(c),c));else throw M(new nh("All edge sections need an end point."))}function lje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Hkn(n),H4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new qkn(n),U4(i.a,(Jn(c),c));else throw M(new nh("All edge sections need a start point."))}function aje(n,e){var t,i,r,c,s,f,h;for(i=AFn(n),c=0,f=i.length;c>22-e,r=n.h<>22-e):e<44?(t=0,i=n.l<>44-e):(t=0,i=0,r=n.l<n)throw M(new Gn("k must be smaller than n"));return e==0||e==n?1:n==0?0:FZ(n)/(FZ(e)*FZ(n-e))}function lnn(n,e){var t,i,r,c;for(t=new AX(n);t.g==null&&!t.c?cJ(t):t.g==null||t.i!=0&&u(t.g[t.i-1],51).Ob();)if(c=u(CA(t),58),O(c,167))for(i=u(c,167),r=0;r>4],e[t*2+1]=SO[c&15];return hh(e,0,e.length)}function Sje(n){yM();var e,t,i;switch(i=n.c.length,i){case 0:return rQn;case 1:return e=u(B_n(new C(n)),44),ybe(e.ld(),e.md());default:return t=u(xf(n,K(Pd,WA,44,n.c.length,0,1)),173),new hz(t)}}function Pje(n){var e,t,i,r,c,s;for(e=new Eg,t=new Eg,V1(e,n),V1(t,n);t.b!=t.c;)for(r=u(Sp(t),36),s=new C(r.a);s.a0&&hy(n,t,e),r):pCe(n,e,t)}function ua(){ua=F,fce=(qe(),N3),hce=qd,cce=Hd,uce=K2,oce=Ma,rce=R2,Jln=Wj,sce=Ww,kq=(Men(),Xre),yq=Vre,Yln=Yre,jq=ece,Zln=Zre,n1n=nce,Qln=Wre,_I=Jre,HI=Qre,Fj=tce,e1n=ice,Wln=zre}function c_n(n,e){var t,i,r,c,s;if(n.e<=e||Z2e(n,n.g,e))return n.g;for(c=n.r,i=n.g,s=n.r,r=(c-i)/2+i;i+11&&(n.e.b+=n.a)):(n.e.a+=t.a,n.e.b=y.Math.max(n.e.b,t.b),n.d.c.length>1&&(n.e.a+=n.a))}function Nje(n){var e,t,i,r;switch(r=n.i,e=r.b,i=r.j,t=r.g,r.a.g){case 0:t.a=(n.g.b.o.a-i.a)/2;break;case 1:t.a=e.d.n.a+e.d.a.a;break;case 2:t.a=e.d.n.a+e.d.a.a-i.a;break;case 3:t.b=e.d.n.b+e.d.a.b}}function $je(n,e,t){var i,r,c;for(r=new te(re(Cl(t).a.Kc(),new En));pe(r);)i=u(fe(r),18),!fr(i)&&!(!fr(i)&&i.c.i.c==i.d.i.c)&&(c=WHn(n,i,t,new Zyn),c.c.length>1&&Bn(e.c,c))}function o_n(n,e,t,i,r){if(ii&&(n.a=i),n.br&&(n.b=r),n}function xje(n){if(O(n,143))return dTe(u(n,143));if(O(n,233))return i8e(u(n,233));if(O(n,23))return bje(u(n,23));throw M(new Gn(Ncn+ra(new Ku(S(T(ki,1),Fn,1,5,[n])))))}function Fje(n,e,t,i,r){var c,s,f;for(c=!0,s=0;s>>r|t[s+i+1]<>>r,++s}return c}function wnn(n,e,t,i){var r,c,s;if(e.k==(Vn(),Mi)){for(c=new te(re(ji(e).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),s=r.c.i.k,s==Mi&&n.c.a[r.c.i.c.p]==i&&n.c.a[e.c.p]==t)return!0}return!1}function Bje(n,e){var t,i,r,c;return e&=63,t=n.h&Il,e<22?(c=t>>>e,r=n.m>>e|t<<22-e,i=n.l>>e|n.m<<22-e):e<44?(c=0,r=t>>>e-22,i=n.m>>e-22|n.h<<44-e):(c=0,r=0,i=t>>>e-44),Yc(i&ro,r&ro,c&Il)}function s_n(n,e,t,i){var r;this.b=i,this.e=n==(O0(),t9),r=e[t],this.d=Va(so,[J,Xh],[183,28],16,[r.length,r.length],2),this.a=Va(ye,[J,Ke],[53,28],15,[r.length,r.length],2),this.c=new JZ(e,t)}function Rje(n){var e,t,i;for(n.k=new sJ((tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,n.j.c.length),i=new C(n.j);i.a=t)return Em(n,e,i.p),!0;return!1}function qg(n,e,t,i){var r,c,s,f,h,l;for(s=t.length,c=0,r=-1,l=e$n((zn(e,n.length+1),n.substr(e)),(xL(),Oun)),f=0;fc&&awe(l,e$n(t[f],Oun))&&(r=f,c=h);return r>=0&&(i[0]=e+c),r}function h_n(n){var e;return n.Db&64?iF(n):(e=new mo(Ecn),!n.a||Be(Be((e.a+=' "',e),n.a),'"'),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function l_n(n,e,t){var i,r,c,s,f;for(f=ru(n.e.Dh(),e),r=u(n.g,124),i=0,s=0;st?Mnn(n,t,"start index"):e<0||e>t?Mnn(e,t,"end index"):H5("end index (%s) must not be less than start index (%s)",S(T(ki,1),Fn,1,5,[Y(e),Y(n)]))}function d_n(n,e){var t,i,r,c;for(i=0,r=n.length;i0&&b_n(n,c,t));e.p=0}function ln(n){var e;this.c=new Ct,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=(e=u(uf(Zh),9),new _o(e,u($s(e,e.length),9),0)),this.g=n.f}function Gje(n){var e,t,i,r;for(e=Ya(Be(new mo("Predicates."),"and"),40),t=!0,r=new Xv(n);r.b0?f[s-1]:K(Qh,b1,10,0,0,1),r=f[s],l=s=0?n.ki(r):Pnn(n,i);else throw M(new Gn(da+i.xe()+p8));else throw M(new Gn(aWn+e+dWn));else Wo(n,t,i)}function gnn(n){var e,t;if(t=null,e=!1,O(n,211)&&(e=!0,t=u(n,211).a),e||O(n,263)&&(e=!0,t=""+u(n,263).a),e||O(n,493)&&(e=!0,t=""+u(n,493).a),!e)throw M(new vD(Lcn));return t}function pnn(n,e,t){var i,r,c,s,f,h;for(h=ru(n.e.Dh(),e),i=0,f=n.i,r=u(n.g,124),s=0;s=n.d.b.c.length&&(e=new Lc(n.d),e.p=i.p-1,nn(n.d.b,e),t=new Lc(n.d),t.p=i.p,nn(n.d.b,t)),$i(i,u(sn(n.d.b,i.p),30))}function knn(n,e,t){var i,r,c;if(!n.b[e.g]){for(n.b[e.g]=!0,i=t,!i&&(i=new rk),xe(i.b,e),c=n.a[e.g].Kc();c.Ob();)r=u(c.Pb(),65),r.b!=e&&knn(n,r.b,i),r.c!=e&&knn(n,r.c,i),xe(i.a,r);return i}return null}function Wje(n){switch(n.g){case 0:case 1:case 2:return tn(),Xn;case 3:case 4:case 5:return tn(),ae;case 6:case 7:case 8:return tn(),Wn;case 9:case 10:case 11:return tn(),Zn;default:return tn(),sc}}function Jje(n,e){var t;return n.c.length==0?!1:(t=DBn((Ln(0,n.c.length),u(n.c[0],18)).c.i),ko(),t==(cw(),S2)||t==A2?!0:Ig(_r(new Tn(null,new In(n,16)),new r3n),new Y7n(e)))}function oF(n,e){if(O(e,207))return Ule(n,u(e,27));if(O(e,193))return Gle(n,u(e,123));if(O(e,452))return qle(n,u(e,166));throw M(new Gn(Ncn+ra(new Ku(S(T(ki,1),Fn,1,5,[e])))))}function k_n(n,e,t){var i,r;if(this.f=n,i=u(ee(n.b,e),260),r=i?i.a:0,BJ(t,r),t>=(r/2|0))for(this.e=i?i.c:null,this.d=r;t++0;)sQ(this);this.b=e,this.a=null}function Qje(n,e){var t,i;e.a?OTe(n,e):(t=u(ID(n.b,e.b),60),t&&t==n.a[e.b.f]&&t.a&&t.a!=e.b.a&&t.c.Fc(e.b),i=u(PD(n.b,e.b),60),i&&n.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),EL(n.b,e.b))}function y_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.b=0,t.n.c=0;return}t.n.b=n.C.b,t.n.c=n.C.c,n.A.Hc((go(),Gd))&&Xqn(n,e),i=M9e(n,e),kF(n,e)==(Fg(),Aa)&&(i+=2*n.w),t.a.a=i}function j_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.d=0,t.n.a=0;return}t.n.d=n.C.d,t.n.a=n.C.a,n.A.Hc((go(),Gd))&&Vqn(n,e),i=C9e(n,e),kF(n,e)==(Fg(),Aa)&&(i+=2*n.w),t.a.b=i}function Yje(n,e){var t,i,r,c;for(c=new Z,i=new C(e);i.ai&&(zn(e-1,n.length),n.charCodeAt(e-1)<=32);)--e;return i>0||et.a&&(i.Hc((wd(),m9))?r=(e.a-t.a)/2:i.Hc(v9)&&(r=e.a-t.a)),e.b>t.b&&(i.Hc((wd(),y9))?c=(e.b-t.b)/2:i.Hc(k9)&&(c=e.b-t.b)),cnn(n,r,c)}function P_n(n,e,t,i,r,c,s,f,h,l,a,d,g){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,t),n.f=s,hm(n,f),am(n,h),fm(n,l),lm(n,a),u1(n,d),dm(n,g),c1(n,!0),e1(n,r),n.Zk(c),ad(n,e),i!=null&&(n.i=null,kT(n,i))}function Mnn(n,e,t){if(n<0)return H5(Tzn,S(T(ki,1),Fn,1,5,[t,Y(n)]));if(e<0)throw M(new Gn(Azn+e));return H5("%s (%s) must not be greater than size (%s)",S(T(ki,1),Fn,1,5,[t,Y(n),Y(e)]))}function Tnn(n,e,t,i,r,c){var s,f,h,l;if(s=i-t,s<7){z5e(e,t,i,c);return}if(h=t+r,f=i+r,l=h+(f-h>>1),Tnn(e,n,h,l,-r,c),Tnn(e,n,l,f,-r,c),c.Ne(n[l-1],n[l])<=0){for(;t=0?n.bi(c,t):ten(n,r,t);else throw M(new Gn(da+r.xe()+p8));else throw M(new Gn(aWn+e+dWn));else Jo(n,i,r,t)}function I_n(n){var e,t;if(n.f){for(;n.n>0;){if(e=u(n.k.Xb(n.n-1),76),t=e.Lk(),O(t,102)&&u(t,19).Bb&kc&&(!n.e||t.pk()!=qv||t.Lj()!=0)&&e.md()!=null)return!0;--n.n}return!1}else return n.n>0}function O_n(n){var e,t,i,r;if(t=u(n,54)._h(),t)try{if(i=null,e=Mm((R1(),Ss),gUn(r8e(t))),e&&(r=e.ai(),r&&(i=r.Fl(che(t.e)))),i&&i!=n)return O_n(i)}catch(c){if(c=It(c),!O(c,63))throw M(c)}return n}function bEe(n,e,t){var i,r,c;t.Ug("Remove overlaps",1),t.dh(e,xrn),i=u(z(e,(Mg(),O2)),27),n.f=i,n.a=Ax(u(z(e,(ua(),Fj)),300)),r=R(z(e,(qe(),qd))),mG(n,(Jn(r),r)),c=aw(i),BGn(n,e,c,t),t.dh(e,DS)}function wEe(n){var e,t,i;if(on(un(z(n,(qe(),Xj))))){for(i=new Z,t=new te(re(Al(n).a.Kc(),new En));pe(t);)e=u(fe(t),74),_0(e)&&on(un(z(e,eU)))&&Bn(i.c,e);return i}else return Dn(),Dn(),sr}function D_n(n){if(!n)return Djn(),dQn;var e=n.valueOf?n.valueOf():n;if(e!==n){var t=WK[typeof e];return t?t(e):wY(typeof e)}else return n instanceof Array||n instanceof y.Array?new aG(n):new z9(n)}function L_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=$5(i),r.a=N5(i),r.b=y.Math.max(r.b,c.a),r.b>c.a&&!e&&(r.b=c.a),r.c=-(r.b-c.a)/2,t.g){case 1:r.d=-r.a;break;case 3:r.d=c.b}LF(i),NF(i)}function N_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=$5(i),r.a=N5(i),r.a=y.Math.max(r.a,c.b),r.a>c.b&&!e&&(r.a=c.b),r.d=-(r.a-c.b)/2,t.g){case 4:r.c=-r.b;break;case 2:r.c=c.a}LF(i),NF(i)}function gEe(n,e){var t,i,r,c,s;if(!e.dc()){if(r=u(e.Xb(0),131),e.gc()==1){lqn(n,r,r,1,0,e);return}for(t=1;t0)try{r=Ao(e,Wi,et)}catch(c){throw c=It(c),O(c,130)?(i=c,M(new eT(i))):M(c)}return t=(!n.a&&(n.a=new iD(n)),n.a),r=0?u(L(t,r),58):null}function kEe(n,e){if(n<0)return H5(Tzn,S(T(ki,1),Fn,1,5,["index",Y(n)]));if(e<0)throw M(new Gn(Azn+e));return H5("%s (%s) must be less than size (%s)",S(T(ki,1),Fn,1,5,["index",Y(n),Y(e)]))}function yEe(n){var e,t,i,r,c;if(n==null)return gu;for(c=new fd(ur,"[","]"),t=n,i=0,r=t.length;i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Zl(e);else throw M(new Gn(da+e.xe()+p8))}function Inn(n){var e,t;return n>-0x800000000000&&n<0x800000000000?n==0?0:(e=n<0,e&&(n=-n),t=wi(y.Math.floor(y.Math.log(n)/.6931471805599453)),(!e||n!=y.Math.pow(2,t))&&++t,t):Qxn(vc(n))}function xEe(n){var e,t,i,r,c,s,f;for(c=new ih,t=new C(n);t.a2&&f.e.b+f.j.b<=2&&(r=f,i=s),c.a.zc(r,c),r.q=i);return c}function FEe(n,e,t){t.Ug("Eades radial",1),t.dh(e,DS),n.d=u(z(e,(Mg(),O2)),27),n.c=$(R(z(e,(ua(),HI)))),n.e=Ax(u(z(e,Fj),300)),n.a=a8e(u(z(e,e1n),434)),n.b=Dke(u(z(e,Qln),354)),bke(n),t.dh(e,DS)}function BEe(n,e){if(e.Ug("Target Width Setter",1),Df(n,(Bf(),Nq)))ht(n,(_h(),Xw),R(z(n,Nq)));else throw M(new _l("A target width has to be set if the TargetWidthWidthApproximator should be used."));e.Vg()}function R_n(n,e){var t,i,r;return i=new Tl(n),Ur(i,e),U(i,(W(),cI),e),U(i,(cn(),Kt),(Oi(),qc)),U(i,Th,(Rh(),nO)),_a(i,(Vn(),Zt)),t=new Pc,ic(t,i),gi(t,(tn(),Wn)),r=new Pc,ic(r,i),gi(r,Zn),i}function K_n(n){switch(n.g){case 0:return new gD((O0(),Oj));case 1:return new i8n;case 2:return new r8n;default:throw M(new Gn("No implementation is available for the crossing minimizer "+(n.f!=null?n.f:""+n.g)))}}function __n(n,e){var t,i,r,c,s;for(n.c[e.p]=!0,nn(n.a,e),s=new C(e.j);s.a=c)s.$b();else for(r=s.Kc(),i=0;i0?wz():s<0&&G_n(n,e,-s),!0):!1}function N5(n){var e,t,i,r,c,s,f;if(f=0,n.b==0){for(s=ARn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}else f=Ujn(I$(Ub(ut(CW(n.a),new fbn),new hbn)));return f>0?f+n.n.d+n.n.a:0}function $5(n){var e,t,i,r,c,s,f;if(f=0,n.b==0)f=Ujn(I$(Ub(ut(CW(n.a),new obn),new sbn)));else{for(s=SRn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}return f>0?f+n.n.b+n.n.c:0}function GEe(n){var e,t;if(n.c.length!=2)throw M(new Or("Order only allowed for two paths."));e=(Ln(0,n.c.length),u(n.c[0],18)),t=(Ln(1,n.c.length),u(n.c[1],18)),e.d.i!=t.c.i&&(n.c.length=0,Bn(n.c,t),Bn(n.c,e))}function z_n(n,e,t){var i;for(vg(t,e.g,e.f),Ro(t,e.i,e.j),i=0;i<(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i;i++)z_n(n,u(L((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),i),27),u(L((!t.a&&(t.a=new q(Qe,t,10,11)),t.a),i),27))}function zEe(n,e){var t,i,r,c;for(c=u(Cr(n.b,e),127),t=c.a,r=u(u(ot(n.r,e),21),87).Kc();r.Ob();)i=u(r.Pb(),117),i.c&&(t.a=y.Math.max(t.a,eW(i.c)));if(t.a>0)switch(e.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}function XEe(n,e){var t,i,r;return t=u(v(e,(qs(),k3)),17).a-u(v(n,k3),17).a,t==0?(i=mi(Ki(u(v(n,(J1(),lj)),8)),u(v(n,$8),8)),r=mi(Ki(u(v(e,lj),8)),u(v(e,$8),8)),bt(i.a*i.b,r.a*r.b)):t}function VEe(n,e){var t,i,r;return t=u(v(e,(lc(),FI)),17).a-u(v(n,FI),17).a,t==0?(i=mi(Ki(u(v(n,(pt(),Nj)),8)),u(v(n,Dv),8)),r=mi(Ki(u(v(e,Nj),8)),u(v(e,Dv),8)),bt(i.a*i.b,r.a*r.b)):t}function X_n(n){var e,t;return t=new x1,t.a+="e_",e=_ve(n),e!=null&&(t.a+=""+e),n.c&&n.d&&(Be((t.a+=" ",t),lA(n.c)),Be(Dc((t.a+="[",t),n.c.i),"]"),Be((t.a+=iR,t),lA(n.d)),Be(Dc((t.a+="[",t),n.d.i),"]")),t.a}function V_n(n){switch(n.g){case 0:return new d8n;case 1:return new b8n;case 2:return new l8n;case 3:return new h8n;default:throw M(new Gn("No implementation is available for the layout phase "+(n.f!=null?n.f:""+n.g)))}}function Lnn(n,e,t,i,r){var c;switch(c=0,r.g){case 1:c=y.Math.max(0,e.b+n.b-(t.b+i));break;case 3:c=y.Math.max(0,-n.b-i);break;case 2:c=y.Math.max(0,-n.a-i);break;case 4:c=y.Math.max(0,e.a+n.a-(t.a+i))}return c}function WEe(n,e,t){var i,r,c,s,f;if(t)for(r=t.a.length,i=new Ja(r),f=(i.b-i.a)*i.c<0?(K1(),$a):new q1(i);f.Ob();)s=u(f.Pb(),17),c=L4(t,s.a),Acn in c.a||pK in c.a?fSe(n,c,e):SLe(n,c,e),A1e(u(ee(n.b,wm(c)),74))}function Nnn(n){var e,t;switch(n.b){case-1:return!0;case 0:return t=n.t,t>1||t==-1?(n.b=-1,!0):(e=ws(n),e&&(dr(),e.lk()==bJn)?(n.b=-1,!0):(n.b=1,!1));default:case 1:return!1}}function $nn(n,e){var t,i,r,c;if(Ye(n),n.c!=0||n.a!=123)throw M(new Le($e((Ie(),xWn))));if(c=e==112,i=n.d,t=w4(n.i,125,i),t<0)throw M(new Le($e((Ie(),FWn))));return r=qo(n.i,i,t),n.d=t+1,mNn(r,c,(n.e&512)==512)}function W_n(n){var e,t,i,r,c,s,f;if(i=n.a.c.length,i>0)for(s=n.c.d,f=n.d.d,r=rh(mi(new V(f.a,f.b),s),1/(i+1)),c=new V(s.a,s.b),t=new C(n.a);t.a=0&&i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Wl(e);throw M(new Gn(da+e.xe()+sK))}function ZEe(){Fz();var n;return Yoe?u(Mm((R1(),Ss),vs),2038):(Ue(Pd,new k6n),VOe(),n=u(O(Nc((R1(),Ss),vs),560)?Nc(Ss,vs):new aIn,560),Yoe=!0,WLe(n),tNe(n),Xe((xz(),qdn),n,new xvn),Dr(Ss,vs,n),n)}function nCe(n,e){var t,i,r,c;n.j=-1,fo(n.e)?(t=n.i,c=n.i!=0,ik(n,e),i=new ml(n.e,3,n.c,null,e,t,c),r=e.zl(n.e,n.c,null),r=PKn(n,e,r),r?(r.nj(i),r.oj()):it(n.e,i)):(ik(n,e),r=e.zl(n.e,n.c,null),r&&r.oj())}function yA(n,e){var t,i,r;if(r=0,i=e[0],i>=n.length)return-1;for(t=(zn(i,n.length),n.charCodeAt(i));t>=48&&t<=57&&(r=r*10+(t-48),++i,!(i>=n.length));)t=(zn(i,n.length),n.charCodeAt(i));return i>e[0]?e[0]=i:r=-1,r}function eCe(n){var e,t,i,r,c;return r=u(n.a,17).a,c=u(n.b,17).a,t=r,i=c,e=y.Math.max(y.Math.abs(r),y.Math.abs(c)),r<=0&&r==c?(t=0,i=c-1):r==-e&&c!=e?(t=c,i=r,c>=0&&++t):(t=-c,i=r),new bi(Y(t),Y(i))}function tCe(n,e,t,i){var r,c,s,f,h,l;for(r=0;r=0&&l>=0&&h=n.i)throw M(new Ir(vK+e+Td+n.i));if(t>=n.i)throw M(new Ir(kK+t+Td+n.i));return i=n.g[t],e!=t&&(e>16),e=i>>16&16,t=16-e,n=n>>e,i=n-256,e=i>>16&8,t+=e,n<<=e,i=n-vw,e=i>>16&4,t+=e,n<<=e,i=n-wh,e=i>>16&2,t+=e,n<<=e,i=n>>14,e=i&~(i>>1),t+2-e)}function rCe(n){Lp();var e,t,i,r;for(mP=new Z,m_=new de,p_=new Z,e=(!n.a&&(n.a=new q(Qe,n,10,11)),n.a),VDe(e),r=new ne(e);r.e!=r.i.gc();)i=u(ce(r),27),qr(mP,i,0)==-1&&(t=new Z,nn(p_,t),ZBn(i,t));return p_}function cCe(n,e,t){var i,r,c,s;n.a=t.b.d,O(e,326)?(r=zg(u(e,74),!1,!1),c=Zk(r),i=new F9n(n),qi(c,i),dy(c,r),e.of((qe(),kb))!=null&&qi(u(e.of(kb),75),i)):(s=u(e,422),s.rh(s.nh()+n.a.a),s.sh(s.oh()+n.a.b))}function uCe(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.c.g==n.g&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Ig(new Tn(null,new In(r,16)),new hkn(t))&&Bn(r.c,t);return Yt(r,new U3n),r}function Q_n(n,e,t){var i,r,c,s;return O(e,153)&&O(t,153)?(c=u(e,153),s=u(t,153),n.a[c.a][s.a]+n.a[s.a][c.a]):O(e,250)&&O(t,250)&&(i=u(e,250),r=u(t,250),i.a==r.a)?u(v(r.a,(qs(),k3)),17).a:0}function Y_n(n,e){var t,i,r,c,s,f,h,l;for(l=$(R(v(e,(cn(),J8)))),h=n[0].n.a+n[0].o.a+n[0].d.c+l,f=1;f=0?t:(f=X6(mi(new V(s.c+s.b/2,s.d+s.a/2),new V(c.c+c.b/2,c.d+c.a/2))),-(CUn(c,s)-1)*f)}function sCe(n,e,t){var i;qt(new Tn(null,(!t.a&&(t.a=new q(Mt,t,6,6)),new In(t.a,16))),new dMn(n,e)),qt(new Tn(null,(!t.n&&(t.n=new q(Ar,t,1,7)),new In(t.n,16))),new bMn(n,e)),i=u(z(t,(qe(),kb)),75),i&&BQ(i,n,e)}function H0(n,e,t){var i,r,c;if(c=Jg((Du(),zi),n.Dh(),e),c)return dr(),u(c,69).xk()||(c=$p(Lr(zi,c))),r=(i=n.Ih(c),u(i>=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Sl(e,t);throw M(new Gn(da+e.xe()+sK))}function xnn(n,e,t,i){var r,c,s,f,h;if(r=n.d[e],r){if(c=r.g,h=r.i,i!=null){for(f=0;f=t&&(i=e,l=(h.c+h.a)/2,s=l-t,h.c<=l-t&&(r=new KL(h.c,s),b0(n,i++,r)),f=l+t,f<=h.a&&(c=new KL(f,h.a),zb(i,n.c.length),b6(n.c,i,c)))}function eHn(n,e,t){var i,r,c,s,f,h;if(!e.dc()){for(r=new Ct,h=e.Kc();h.Ob();)for(f=u(h.Pb(),40),Xe(n.a,Y(f.g),Y(t)),s=(i=ge(new sl(f).a.d,0),new sg(i));Z9(s.a);)c=u(be(s.a),65).c,xt(r,c,r.c.b,r.c);eHn(n,r,t+1)}}function Fnn(n){var e;if(!n.c&&n.g==null)n.d=n.bj(n.f),ve(n,n.d),e=n.d;else{if(n.g==null)return!0;if(n.i==0)return!1;e=u(n.g[n.i-1],51)}return e==n.b&&null.Vm>=null.Um()?(CA(n),Fnn(n)):e.Ob()}function tHn(n){if(this.a=n,n.c.i.k==(Vn(),Zt))this.c=n.c,this.d=u(v(n.c.i,(W(),gc)),64);else if(n.d.i.k==Zt)this.c=n.d,this.d=u(v(n.d.i,(W(),gc)),64);else throw M(new Gn("Edge "+n+" is not an external edge."))}function iHn(n,e){var t,i,r;r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,r,n.b)),e?e!=n&&(zc(n,e.zb),v$(n,e.d),t=(i=e.c,i??e.zb),y$(n,t==null||An(t,e.zb)?null:t)):(zc(n,null),v$(n,0),y$(n,null))}function rHn(n,e){var t;this.e=(m0(),Se(n),m0(),QY(n)),this.c=(Se(e),QY(e)),KX(this.e.Rd().dc()==this.c.Rd().dc()),this.d=vBn(this.e),this.b=vBn(this.c),t=Va(ki,[J,Fn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=t,Fme(this)}function cHn(n){!XK&&(XK=uLe());var e=n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(t){return h2e(t)});return'"'+e+'"'}function Bnn(n,e,t,i,r,c){var s,f,h,l,a;if(r!=0)for(x(n)===x(t)&&(n=n.slice(e,e+r),e=0),h=t,f=e,l=e+r;f=s)throw M(new Kb(e,s));return r=t[e],s==1?i=null:(i=K(jU,MK,424,s-1,0,1),Ic(t,0,i,0,e),c=s-e-1,c>0&&Ic(t,e+1,i,e,c)),gm(n,i),S_n(n,e,r),r}function oHn(n){var e,t;if(n.f){for(;n.n0?c=zp(t):c=Bk(zp(t))),ht(e,Mv,c)}function wCe(n,e){var t;e.Ug("Partition preprocessing",1),t=u(Wr(ut(rc(ut(new Tn(null,new In(n.a,16)),new zgn),new Xgn),new Vgn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),qt(t.Oc(),new Wgn),e.Vg()}function gCe(n,e){var t,i,r,c,s;for(s=n.j,e.a!=e.b&&Yt(s,new Mpn),r=s.c.length/2|0,i=0;i0&&hy(n,t,e),c):i.a!=null?(hy(n,e,t),-1):r.a!=null?(hy(n,t,e),1):0}function mCe(n,e){var t,i,r,c,s;for(r=e.b.b,n.a=K(rs,kw,15,r,0,1),n.b=K(so,Xh,28,r,16,1),s=ge(e.b,0);s.b!=s.d.c;)c=u(be(s),40),n.a[c.g]=new Ct;for(i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),n.a[t.b.g].Fc(t),n.a[t.c.g].Fc(t)}function lHn(n,e){var t,i,r,c;n.Pj()?(t=n.Ej(),c=n.Qj(),++n.j,n.qj(t,n.Zi(t,e)),i=n.Ij(3,null,e,t,c),n.Mj()?(r=n.Nj(e,null),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(eIn(n,e),n.Mj()&&(r=n.Nj(e,null),r&&r.oj()))}function Rnn(n,e,t){var i,r,c;n.Pj()?(c=n.Qj(),Nk(n,e,t),i=n.Ij(3,null,t,e,c),n.Mj()?(r=n.Nj(t,null),n.Tj()&&(r=n.Uj(t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(Nk(n,e,t),n.Mj()&&(r=n.Nj(t,null),r&&r.oj()))}function jA(n,e){var t,i,r,c,s;for(s=ru(n.e.Dh(),e),r=new EE,t=u(n.g,124),c=n.i;--c>=0;)i=t[c],s.am(i.Lk())&&ve(r,i);!uzn(n,r)&&fo(n.e)&&t4(n,e.Jk()?X1(n,6,e,(Dn(),sr),null,-1,!1):X1(n,e.tk()?2:1,e,null,null,-1,!1))}function vCe(n,e){var t,i,r,c,s;return n.a==(jm(),R8)?!0:(c=e.a.c,t=e.a.c+e.a.b,!(e.j&&(i=e.A,s=i.c.c.a-i.o.a/2,r=c-(i.n.a+i.o.a),r>s)||e.q&&(i=e.C,s=i.c.c.a-i.o.a/2,r=i.n.a-t,r>s)))}function aHn(n){NN();var e,t,i,r,c,s,f;for(t=new Ql,r=new C(n.e.b);r.a1?n.e*=$(n.a):n.f/=$(n.a),_6e(n),X8e(n),UAe(n),U(n.b,(M5(),pP),n.g)}function gHn(n,e,t){var i,r,c,s,f,h;for(i=0,h=t,e||(i=t*(n.c.length-1),h*=-1),c=new C(n);c.a=0?n.Ah(null):n.Ph().Th(n,-1-e,null,null)),n.Bh(u(r,54),t),i&&i.oj(),n.vh()&&n.wh()&&t>-1&&it(n,new Ci(n,9,t,c,r)),r):c}function Hnn(n,e){var t,i,r,c,s;for(c=n.b.Ce(e),i=(t=n.a.get(c),t??K(ki,Fn,1,0,5,1)),s=0;s>5,r>=n.d)return n.e<0;if(t=n.a[r],e=1<<(e&31),n.e<0){if(i=Ixn(n),r>16)),15).dd(c),f0&&(!(hl(n.a.c)&&e.n.d)&&!(mg(n.a.c)&&e.n.b)&&(e.g.d+=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(mg(n.a.c)&&e.n.c)&&(e.g.a-=i-1))}function MHn(n){var e,t,i,r,c;if(r=new Z,c=kUn(n,r),e=u(v(n,(W(),Xu)),10),e)for(i=new C(e.j);i.a>e,c=n.m>>e|t<<22-e,r=n.l>>e|n.m<<22-e):e<44?(s=i?Il:0,c=t>>e-22,r=n.m>>e-22|t<<44-e):(s=i?Il:0,c=i?ro:0,r=t>>e-44),Yc(r&ro,c&ro,s&Il)}function bF(n){var e,t,i,r,c,s;for(this.c=new Z,this.d=n,i=St,r=St,e=li,t=li,s=ge(n,0);s.b!=s.d.c;)c=u(be(s),8),i=y.Math.min(i,c.a),r=y.Math.min(r,c.b),e=y.Math.max(e,c.a),t=y.Math.max(t,c.b);this.a=new Ho(i,r,e-i,t-r)}function AHn(n,e){var t,i,r,c,s,f;for(c=new C(n.b);c.a0&&O(e,44)&&(n.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(n.a,c),t=n.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f=2)for(t=r.Kc(),e=R(t.Pb());t.Ob();)c=e,e=R(t.Pb()),i=y.Math.min(i,(Jn(e),e-(Jn(c),c)));return i}function _Ce(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.b.g==n.g&&!An(t.b.c,IS)&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Ig(new Tn(null,new In(r,16)),new lkn(t))&&Bn(r.c,t);return Yt(r,new V3n),r}function HCe(n,e){var t,i,r;if(x(e)===x(Se(n)))return!0;if(!O(e,15)||(i=u(e,15),r=n.gc(),r!=i.gc()))return!1;if(O(i,59)){for(t=0;t0&&(r=t),s=new C(n.f.e);s.a0?(e-=1,t-=1):i>=0&&r<0?(e+=1,t+=1):i>0&&r>=0?(e-=1,t+=1):(e+=1,t-=1),new bi(Y(e),Y(t))}function tMe(n,e){return n.ce.c?1:n.be.b?1:n.a!=e.a?mt(n.a)-mt(e.a):n.d==(n5(),r9)&&e.d==i9?-1:n.d==i9&&e.d==r9?1:0}function NHn(n,e){var t,i,r,c,s;return c=e.a,c.c.i==e.b?s=c.d:s=c.c,c.c.i==e.b?i=c.c:i=c.d,r=C8e(n.a,s,i),r>0&&r0):r<0&&-r0):!1}function iMe(n,e,t,i){var r,c,s,f,h,l,a,d;for(r=(e-n.d)/n.c.c.length,c=0,n.a+=t,n.d=e,d=new C(n.c);d.a>24;return s}function cMe(n){if(n.ze()){var e=n.c;e.Ae()?n.o="["+e.n:e.ze()?n.o="["+e.xe():n.o="[L"+e.xe()+";",n.b=e.we()+"[]",n.k=e.ye()+"[]";return}var t=n.j,i=n.d;i=i.split("/"),n.o=mx(".",[t,mx("$",i)]),n.b=mx(".",[t,mx(".",i)]),n.k=i[i.length-1]}function uMe(n,e){var t,i,r,c,s;for(s=null,c=new C(n.e.a);c.a=0;e-=2)for(t=0;t<=e;t+=2)(n.b[t]>n.b[t+2]||n.b[t]===n.b[t+2]&&n.b[t+1]>n.b[t+3])&&(i=n.b[t+2],n.b[t+2]=n.b[t],n.b[t]=i,i=n.b[t+3],n.b[t+3]=n.b[t+1],n.b[t+1]=i);n.c=!0}}function fMe(n,e){var t,i,r,c,s,f,h,l,a;for(l=-1,a=0,s=n,f=0,h=s.length;f0&&++a;++l}return a}function _s(n){var e,t;return t=new mo(za(n.Rm)),t.a+="@",Be(t,(e=mt(n)>>>0,e.toString(16))),n.Vh()?(t.a+=" (eProxyURI: ",Dc(t,n._h()),n.Kh()&&(t.a+=" eClass: ",Dc(t,n.Kh())),t.a+=")"):n.Kh()&&(t.a+=" (eClass: ",Dc(t,n.Kh()),t.a+=")"),t.a}function B5(n){var e,t,i,r;if(n.e)throw M(new Or((ll(u_),FB+u_.k+BB)));for(n.d==(ci(),Wf)&&UA(n,Br),t=new C(n.a.a);t.a>24}return t}function aMe(n,e,t){var i,r,c;if(r=u(Cr(n.i,e),314),!r)if(r=new k$n(n.d,e,t),Pp(n.i,e,r),tZ(e))g1e(n.a,e.c,e.b,r);else switch(c=Wje(e),i=u(Cr(n.p,c),252),c.g){case 1:case 3:r.j=!0,mD(i,e.b,r);break;case 4:case 2:r.k=!0,mD(i,e.c,r)}return r}function dMe(n,e){var t,i,r,c,s,f,h,l,a;for(h=Dh(n.c-n.b&n.a.length-1),l=null,a=null,c=new W6(n);c.a!=c.b;)r=u(xT(c),10),t=(f=u(v(r,(W(),kf)),12),f?f.i:null),i=(s=u(v(r,js),12),s?s.i:null),(l!=t||a!=i)&&(pHn(h,e),l=t,a=i),Bn(h.c,r);pHn(h,e)}function bMe(n,e,t,i){var r,c,s,f,h,l;if(f=new EE,h=ru(n.e.Dh(),e),r=u(n.g,124),dr(),u(e,69).xk())for(s=0;s=0)return r;for(c=1,f=new C(e.j);f.a=0)return r;for(c=1,f=new C(e.j);f.a0&&e.Ne((Ln(r-1,n.c.length),u(n.c[r-1],10)),c)>0;)Go(n,r,(Ln(r-1,n.c.length),u(n.c[r-1],10))),--r;Ln(r,n.c.length),n.c[r]=c}t.a=new de,t.b=new de}function wMe(n,e,t){var i,r,c,s,f,h,l,a;for(a=(i=u(e.e&&e.e(),9),new _o(i,u($s(i,i.length),9),0)),h=ww(t,"[\\[\\]\\s,]+"),c=h,s=0,f=c.length;s=0?(e||(e=new r6,i>0&&Er(e,(Fi(0,i,n.length),n.substr(0,i)))),e.a+="\\",T4(e,t&ui)):e&&T4(e,t&ui);return e?e.a:n}function pMe(n){var e,t,i;for(t=new C(n.a.a.b);t.a0&&(!(hl(n.a.c)&&e.n.d)&&!(mg(n.a.c)&&e.n.b)&&(e.g.d-=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(mg(n.a.c)&&e.n.c)&&(e.g.a+=y.Math.max(0,i-1)))}function qHn(n,e,t){var i,r;if((n.c-n.b&n.a.length-1)==2)e==(tn(),Xn)||e==Zn?(sT(u(a5(n),15),(To(),nl)),sT(u(a5(n),15),Ta)):(sT(u(a5(n),15),(To(),Ta)),sT(u(a5(n),15),nl));else for(r=new W6(n);r.a!=r.b;)i=u(xT(r),15),sT(i,t)}function mMe(n,e){var t,i,r,c,s,f,h;for(r=y4(new xG(n)),f=new xi(r,r.c.length),c=y4(new xG(e)),h=new xi(c,c.c.length),s=null;f.b>0&&h.b>0&&(t=(oe(f.b>0),u(f.a.Xb(f.c=--f.b),27)),i=(oe(h.b>0),u(h.a.Xb(h.c=--h.b),27)),t==i);)s=t;return s}function UHn(n,e,t){var i,r,c,s;GOn(n,e)>GOn(n,t)?(i=uc(t,(tn(),Zn)),n.d=i.dc()?0:zL(u(i.Xb(0),12)),s=uc(e,Wn),n.b=s.dc()?0:zL(u(s.Xb(0),12))):(r=uc(t,(tn(),Wn)),n.d=r.dc()?0:zL(u(r.Xb(0),12)),c=uc(e,Zn),n.b=c.dc()?0:zL(u(c.Xb(0),12)))}function GHn(n,e){var t,i,r,c;for(t=n.o.a,c=u(u(ot(n.r,e),21),87).Kc();c.Ob();)r=u(c.Pb(),117),r.e.a=t*$(R(r.b.of(bP))),r.e.b=(i=r.b,i.pf((qe(),oo))?i.ag()==(tn(),Xn)?-i.Mf().b-$(R(i.of(oo))):$(R(i.of(oo))):i.ag()==(tn(),Xn)?-i.Mf().b:0)}function vMe(n,e){var t,i,r,c;for(e.Ug("Self-Loop pre-processing",1),i=new C(n.a);i.an.c));s++)r.a>=n.s&&(c<0&&(c=s),f=s);return h=(n.s+n.c)/2,c>=0&&(i=oSe(n,e,c,f),h=cle((Ln(i,e.c.length),u(e.c[i],339))),aCe(e,i,t)),h}function Me(n,e,t){var i,r,c,s,f,h,l;for(s=(c=new tG,c),IQ(s,(Jn(e),e)),l=(!s.b&&(s.b=new lo((On(),ar),pc,s)),s.b),h=1;h0&&iOe(this,r)}function Znn(n,e,t,i,r,c){var s,f,h;if(!r[e.a]){for(r[e.a]=!0,s=i,!s&&(s=new zM),nn(s.e,e),h=c[e.a].Kc();h.Ob();)f=u(h.Pb(),290),!(f.d==t||f.c==t)&&(f.c!=e&&Znn(n,f.c,e,s,r,c),f.d!=e&&Znn(n,f.d,e,s,r,c),nn(s.c,f),hi(s.d,f.b));return s}return null}function jMe(n){var e,t,i,r,c,s,f;for(e=0,r=new C(n.e);r.a=2}function EMe(n,e,t,i,r){var c,s,f,h,l,a;for(c=n.c.d.j,s=u(Zo(t,0),8),a=1;a1||(e=yt(Js,S(T(yr,1),G,95,0,[xl,Qs])),jk(LM(e,n))>1)||(i=yt(Zs,S(T(yr,1),G,95,0,[el,Cs])),jk(LM(i,n))>1))}function nen(n,e,t){var i,r,c;for(c=new C(n.t);c.a0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&xe(e,i.b));for(r=new C(n.i);r.a0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&xe(t,i.a))}function CA(n){var e,t,i,r,c;if(n.g==null&&(n.d=n.bj(n.f),ve(n,n.d),n.c))return c=n.f,c;if(e=u(n.g[n.i-1],51),r=e.Pb(),n.e=e,t=n.bj(r),t.Ob())n.d=t,ve(n,t);else for(n.d=null;!e.Ob()&&($t(n.g,--n.i,null),n.i!=0);)i=u(n.g[n.i-1],51),e=i;return r}function MMe(n,e){var t,i,r,c,s,f;if(i=e,r=i.Lk(),Sl(n.e,r)){if(r.Si()&&_M(n,r,i.md()))return!1}else for(f=ru(n.e.Dh(),r),t=u(n.g,124),c=0;c1||t>1)return 2;return e+t==1?2:0}function to(n,e){var t,i,r,c,s,f;return c=n.a*LB+n.b*1502,f=n.b*LB+11,t=y.Math.floor(f*Iy),c+=t,f-=t*Ctn,c%=Ctn,n.a=c,n.b=f,e<=24?y.Math.floor(n.a*Lun[e]):(r=n.a*(1<=2147483648&&(i-=4294967296),i)}function JHn(n,e,t){var i,r,c,s,f,h,l;for(c=new Z,l=new Ct,s=new Ct,XPe(n,l,s,e),MOe(n,l,s,e,t),h=new C(n);h.ai.b.g&&Bn(c.c,i);return c}function OMe(n,e,t){var i,r,c,s,f,h;for(f=n.c,s=(t.q?t.q:(Dn(),Dn(),Wh)).vc().Kc();s.Ob();)c=u(s.Pb(),44),i=!s4(ut(new Tn(null,new In(f,16)),new Z3(new uMn(e,c)))).Bd((Xa(),v3)),i&&(h=c.md(),O(h,4)&&(r=cZ(h),r!=null&&(h=r)),e.qf(u(c.ld(),149),h))}function DMe(n,e,t){var i,r;if(U7(n.b),ff(n.b,(Fk(),XI),(f6(),Hj)),ff(n.b,VI,e.g),ff(n.b,WI,e.a),n.a=gy(n.b,e),t.Ug("Compaction by shrinking a tree",n.a.c.length),e.i.c.length>1)for(r=new C(n.a);r.a=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Xl(e,t)}else throw M(new Gn(da+e.xe()+p8))}function MA(n,e){var t,i,r,c,s;if(e){for(c=O(n.Cb,90)||O(n.Cb,102),s=!c&&O(n.Cb,331),i=new ne((!e.a&&(e.a=new R6(e,jr,e)),e.a));i.e!=i.i.gc();)if(t=u(ce(i),89),r=BA(t),c?O(r,90):s?O(r,156):r)return r;return c?(On(),Ps):(On(),Yf)}else return null}function LMe(n,e){var t,i,r,c;for(e.Ug("Resize child graph to fit parent.",1),i=new C(n.b);i.a=2*e&&nn(t,new KL(s[i-1]+e,s[i]-e));return t}function xMe(n,e,t){var i,r,c,s,f,h,l,a;if(t)for(c=t.a.length,i=new Ja(c),f=(i.b-i.a)*i.c<0?(K1(),$a):new q1(i);f.Ob();)s=u(f.Pb(),17),r=L4(t,s.a),r&&(h=a3e(n,(l=(B1(),a=new ez,a),e&&ien(l,e),l),r),X4(h,bl(r,Eh)),gA(r,h),Ann(r,h),_$(n,r,h))}function TA(n){var e,t,i,r,c,s;if(!n.j){if(s=new Cvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ce(i),29),r=TA(t),Bt(s,r),ve(s,t);e.a.Bc(n)!=null}ew(s),n.j=new gg((u(L(_((G1(),Hn).o),11),19),s.i),s.g),Zu(n).b&=-33}return n.j}function FMe(n){var e,t,i,r;if(n==null)return null;if(i=Fc(n,!0),r=nj.length,An(i.substr(i.length-r,r),nj)){if(t=i.length,t==4){if(e=(zn(0,i.length),i.charCodeAt(0)),e==43)return f0n;if(e==45)return vse}else if(t==3)return f0n}return new UG(i)}function BMe(n){var e,t,i;return t=n.l,t&t-1||(i=n.m,i&i-1)||(e=n.h,e&e-1)||e==0&&i==0&&t==0?-1:e==0&&i==0&&t!=0?kQ(t):e==0&&i!=0&&t==0?kQ(i)+22:e!=0&&i==0&&t==0?kQ(e)+44:-1}function Gg(n,e){var t,i,r,c,s;for(r=e.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==e){c?c.b=e.b:n.b[r]=e.b;break}c=i}for(s=e.f&n.f,c=null,t=n.c[s];;t=t.d){if(t==e){c?c.d=e.d:n.c[s]=e.d;break}c=t}e.e?e.e.c=e.c:n.a=e.c,e.c?e.c.e=e.e:n.e=e.e,--n.i,++n.g}function RMe(n,e){var t;e.d?e.d.b=e.b:n.a=e.b,e.b?e.b.d=e.d:n.e=e.d,!e.e&&!e.c?(t=u(as(u(Bp(n.b,e.a),260)),260),t.a=0,++n.c):(t=u(as(u(ee(n.b,e.a),260)),260),--t.a,e.e?e.e.c=e.c:t.b=u(as(e.c),511),e.c?e.c.e=e.e:t.c=u(as(e.e),511)),--n.d}function KMe(n){var e,t,i,r,c,s,f,h,l,a;for(t=n.o,e=n.p,s=et,r=Wi,f=et,c=Wi,l=0;l0),c.a.Xb(c.c=--c.b),Rb(c,r),oe(c.b3&&Bh(n,0,e-3))}function HMe(n){var e,t,i,r;return x(v(n,(cn(),Bw)))===x((jl(),M1))?!n.e&&x(v(n,Cj))!==x((Z4(),mj)):(i=u(v(n,yH),299),r=on(un(v(n,jH)))||x(v(n,X8))===x((u5(),pj)),e=u(v(n,Hfn),17).a,t=n.a.c.length,!r&&i!=(Z4(),mj)&&(e==0||e>t))}function qMe(n){var e,t;for(t=0;t0);t++);if(t>0&&t0);e++);return e>0&&t>16!=6&&e){if(mm(n,e))throw M(new Gn(m8+dHn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?TZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,6,i)),i=hV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,6,e,e))}function AA(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(m8+nGn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?IZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,12,i)),i=lV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function ien(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=9&&e){if(mm(n,e))throw M(new Gn(m8+Yqn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?SZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,9,i)),i=aV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,9,e,e))}function Tm(n){var e,t,i,r,c;if(i=ws(n),c=n.j,c==null&&i)return n.Jk()?null:i.ik();if(O(i,156)){if(t=i.jk(),t&&(r=t.wi(),r!=n.i)){if(e=u(i,156),e.nk())try{n.g=r.ti(e,c)}catch(s){if(s=It(s),O(s,82))n.g=null;else throw M(s)}n.i=r}return n.g}return null}function nqn(n){var e;return e=new Z,nn(e,new bp(new V(n.c,n.d),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c,n.d),new V(n.c,n.d+n.a))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c,n.d+n.a))),e}function UMe(n){var e,t,i;if(n==null)return gu;try{return Jr(n)}catch(r){if(r=It(r),O(r,103))return e=r,i=za(wo(n))+"@"+(t=(fl(),rZ(n)>>>0),t.toString(16)),r9e(qve(),(a4(),"Exception during lenientFormat for "+i),e),"<"+i+" threw "+za(e.Rm)+">";throw M(r)}}function GMe(n,e,t){var i,r,c;for(c=e.a.ec().Kc();c.Ob();)r=u(c.Pb(),74),i=u(ee(n.b,r),272),!i&&(At(Kh(r))==At(ia(r))?DTe(n,r,t):Kh(r)==At(ia(r))?ee(n.c,r)==null&&ee(n.b,ia(r))!=null&&DGn(n,r,t,!1):ee(n.d,r)==null&&ee(n.b,Kh(r))!=null&&DGn(n,r,t,!0))}function zMe(n,e){var t,i,r,c,s,f,h;for(r=n.Kc();r.Ob();)for(i=u(r.Pb(),10),f=new Pc,ic(f,i),gi(f,(tn(),Zn)),U(f,(W(),uI),(_n(),!0)),s=e.Kc();s.Ob();)c=u(s.Pb(),10),h=new Pc,ic(h,c),gi(h,Wn),U(h,uI,!0),t=new E0,U(t,uI,!0),Zi(t,f),Ii(t,h)}function XMe(n,e,t,i){var r,c,s,f;r=BBn(n,e,t),c=BBn(n,t,e),s=u(ee(n.c,e),118),f=u(ee(n.c,t),118),r1)for(e=h0((t=new Ga,++n.b,t),n.d),f=ge(c,0);f.b!=f.d.c;)s=u(be(f),125),Hs(Ds(Os(Ls(Is(new hs,1),0),e),s))}function JMe(n,e,t){var i,r,c,s,f;for(t.Ug("Breaking Point Removing",1),n.a=u(v(e,(cn(),$l)),223),c=new C(e.b);c.a>16!=11&&e){if(mm(n,e))throw M(new Gn(m8+Een(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?OZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,10,i)),i=yV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,e,e))}function QMe(n){var e,t,i,r;for(i=new sd(new qa(n.b).a);i.b;)t=L0(i),r=u(t.ld(),12),e=u(t.md(),10),U(e,(W(),st),r),U(r,Xu,e),U(r,yj,(_n(),!0)),gi(r,u(v(e,gc),64)),v(e,gc),U(r.i,(cn(),Kt),(Oi(),_v)),u(v(Hi(r.i),Hc),21).Fc((pr(),yv))}function YMe(n,e,t){var i,r,c,s,f,h;if(c=0,s=0,n.c)for(h=new C(n.d.i.j);h.ac.a?-1:r.ah){for(a=n.d,n.d=K(Ndn,qcn,66,2*h+4,0,1),c=0;c=9223372036854776e3?(R4(),hun):(r=!1,n<0&&(r=!0,n=-n),i=0,n>=vd&&(i=wi(n/vd),n-=i*vd),t=0,n>=o3&&(t=wi(n/o3),n-=t*o3),e=wi(n),c=Yc(e,t,i),r&&H$(c),c)}function fTe(n){var e,t,i,r,c;if(c=new Z,nu(n.b,new S9n(c)),n.b.c.length=0,c.c.length!=0){for(e=(Ln(0,c.c.length),u(c.c[0],82)),t=1,i=c.c.length;t=-e&&i==e?new bi(Y(t-1),Y(i)):new bi(Y(t),Y(i-1))}function iqn(){return tr(),S(T(yNe,1),G,81,0,[Qon,Von,d2,N_,gsn,IP,KP,Lw,bsn,csn,asn,Dw,wsn,tsn,psn,Hon,NP,$_,SP,FP,vsn,xP,qon,dsn,ksn,BP,msn,PP,Zon,hsn,fsn,_P,zon,AP,DP,Gon,hv,osn,isn,lsn,x8,Won,Xon,ssn,rsn,LP,RP,Uon,$P,usn,OP,nsn,Yon,bj,TP,esn,Jon])}function aTe(n,e,t){n.d=0,n.b=0,e.k==(Vn(),_c)&&t.k==_c&&u(v(e,(W(),st)),10)==u(v(t,st),10)&&(s$(e).j==(tn(),Xn)?UHn(n,e,t):UHn(n,t,e)),e.k==_c&&t.k==Mi?s$(e).j==(tn(),Xn)?n.d=1:n.b=1:t.k==_c&&e.k==Mi&&(s$(t).j==(tn(),Xn)?n.b=1:n.d=1),J9e(n,e,t)}function dTe(n){var e,t,i,r,c,s,f,h,l,a,d;return d=enn(n),e=n.a,h=e!=null,h&&j4(d,"category",n.a),r=e7(new Ha(n.d)),s=!r,s&&(l=new Ka,df(d,"knownOptions",l),t=new fyn(l),qi(new Ha(n.d),t)),c=e7(n.g),f=!c,f&&(a=new Ka,df(d,"supportedFeatures",a),i=new hyn(a),qi(n.g,i)),d}function bTe(n){var e,t,i,r,c,s,f,h,l;for(i=!1,e=336,t=0,c=new zAn(n.length),f=n,h=0,l=f.length;h>16!=7&&e){if(mm(n,e))throw M(new Gn(m8+h_n(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?AZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,1,oE,i)),i=bW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,e,e))}function rqn(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(m8+sBn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?PZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,0,fE,i)),i=wW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function vF(n,e){Am();var t,i,r,c,s,f,h,l,a;return e.d>n.d&&(f=n,n=e,e=f),e.d<63?tAe(n,e):(s=(n.d&-2)<<4,l=NJ(n,s),a=NJ(e,s),i=RF(n,Fp(l,s)),r=RF(e,Fp(a,s)),h=vF(l,a),t=vF(i,r),c=vF(RF(l,i),RF(r,a)),c=zF(zF(c,h),t),c=Fp(c,s),h=Fp(h,s<<1),zF(zF(h,c),t))}function a1(){a1=F,xH=new ag(sVn,0),Shn=new ag("LONGEST_PATH",1),Phn=new ag("LONGEST_PATH_SOURCE",2),$H=new ag("COFFMAN_GRAHAM",3),Ahn=new ag(sR,4),Ihn=new ag("STRETCH_WIDTH",5),CI=new ag("MIN_WIDTH",6),Pv=new ag("BF_MODEL_ORDER",7),Iv=new ag("DF_MODEL_ORDER",8)}function gTe(n,e,t){var i,r,c,s,f;for(s=p5(n,t),f=K(Qh,b1,10,e.length,0,1),i=0,c=s.Kc();c.Ob();)r=u(c.Pb(),12),on(un(v(r,(W(),yj))))&&(f[i++]=u(v(r,Xu),10));if(i=0;c+=t?1:-1)s=s|e.c.lg(h,c,t,i&&!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,(W(),y2))))),s=s|e.q.ug(h,c,t),s=s|Gqn(n,h[c],t,i);return fi(n.c,e),s}function IA(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=CDn(n.j),d=0,g=a.length;d1&&(n.a=!0),Wbe(u(t.b,68),tt(Ki(u(e.b,68).c),rh(mi(Ki(u(t.b,68).a),u(e.b,68).a),r))),OOn(n,e),cqn(n,t)}function uqn(n){var e,t,i,r,c,s,f;for(c=new C(n.a.a);c.a0&&c>0?s.p=e++:i>0?s.p=t++:c>0?s.p=r++:s.p=t++}Dn(),Yt(n.j,new _gn)}function yTe(n){var e,t;t=null,e=u(sn(n.g,0),18);do{if(t=e.d.i,kt(t,(W(),js)))return u(v(t,js),12).i;if(t.k!=(Vn(),zt)&&pe(new te(re(Qt(t).a.Kc(),new En))))e=u(fe(new te(re(Qt(t).a.Kc(),new En))),18);else if(t.k!=zt)return null}while(t&&t.k!=(Vn(),zt));return t}function jTe(n,e){var t,i,r,c,s,f,h,l,a;for(f=e.j,s=e.g,h=u(sn(f,f.c.length-1),113),a=(Ln(0,f.c.length),u(f.c[0],113)),l=Kx(n,s,h,a),c=1;cl&&(h=t,a=r,l=i);e.a=a,e.c=h}function ETe(n,e,t){var i,r,c,s,f,h,l;for(l=new Ul(new X7n(n)),s=S(T(FZn,1),DXn,12,0,[e,t]),f=0,h=s.length;fh-n.b&&fh-n.a&&f0?c.a?(f=c.b.Mf().a,t>f&&(r=(t-f)/2,c.d.b=r,c.d.c=r)):c.d.c=n.s+t:_6(n.u)&&(i=tnn(c.b),i.c<0&&(c.d.b=-i.c),i.c+i.b>c.b.Mf().a&&(c.d.c=i.c+i.b-c.b.Mf().a))}function KTe(n,e){var t,i,r,c,s;s=new Z,t=e;do c=u(ee(n.b,t),131),c.B=t.c,c.D=t.d,Bn(s.c,c),t=u(ee(n.k,t),18);while(t);return i=(Ln(0,s.c.length),u(s.c[0],131)),i.j=!0,i.A=u(i.d.a.ec().Kc().Pb(),18).c.i,r=u(sn(s,s.c.length-1),131),r.q=!0,r.C=u(r.d.a.ec().Kc().Pb(),18).d.i,s}function _Te(n){var e,t;if(e=u(n.a,17).a,t=u(n.b,17).a,e>=0){if(e==t)return new bi(Y(-e-1),Y(-e-1));if(e==-t)return new bi(Y(-e),Y(t+1))}return y.Math.abs(e)>y.Math.abs(t)?e<0?new bi(Y(-e),Y(t)):new bi(Y(-e),Y(t+1)):new bi(Y(e+1),Y(t))}function HTe(n){var e,t;t=u(v(n,(cn(),ou)),171),e=u(v(n,(W(),Od)),311),t==(Yo(),ka)?(U(n,ou,Ej),U(n,Od,(vl(),v2))):t==xw?(U(n,ou,Ej),U(n,Od,(vl(),E3))):e==(vl(),v2)?(U(n,ou,ka),U(n,Od,vj)):e==E3&&(U(n,ou,xw),U(n,Od,vj))}function OA(){OA=F,Dj=new A3n,Jie=Re(new ii,(Vi(),Oc),(tr(),SP)),Zie=Pu(Re(new ii,Oc,xP),zr,$P),nre=ah(ah(l6(Pu(Re(new ii,Xs,KP),zr,RP),Kc),BP),_P),Qie=Pu(Re(Re(Re(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),Yie=Pu(Re(Re(new ii,Kc,hv),Kc,AP),zr,TP)}function _5(){_5=F,ire=Re(Pu(new ii,(Vi(),zr),(tr(),nsn)),Oc,SP),ore=ah(ah(l6(Pu(Re(new ii,Xs,KP),zr,RP),Kc),BP),_P),rre=Pu(Re(Re(Re(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),ure=Re(Re(new ii,Oc,xP),zr,$P),cre=Pu(Re(Re(new ii,Kc,hv),Kc,AP),zr,TP)}function qTe(n,e,t,i,r){var c,s;(!fr(e)&&e.c.i.c==e.d.i.c||!fxn(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])),t))&&!fr(e)&&(e.c==r?g4(e.a,0,new rr(t)):xe(e.a,new rr(t)),i&&!of(n.a,t)&&(s=u(v(e,(cn(),Fr)),75),s||(s=new Mu,U(e,Fr,s)),c=new rr(t),xt(s,c,s.c.b,s.c),fi(n.a,c)))}function fqn(n,e){var t,i,r,c;for(c=Ae(er(Uh,xh(Ae(er(e==null?0:mt(e),Gh)),15))),t=c&n.b.length-1,r=null,i=n.b[t];i;r=i,i=i.a)if(i.d==c&&oh(i.i,e))return r?r.a=i.a:n.b[t]=i.a,Kjn(u(as(i.c),604),u(as(i.f),604)),J9(u(as(i.b),227),u(as(i.e),227)),--n.f,++n.e,!0;return!1}function UTe(n){var e,t;for(t=new te(re(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),e.c.i.k!=(Vn(),Ac))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function GTe(n,e,t){var i,r,c,s,f,h,l;if(r=dBn(n.Db&254),r==0)n.Eb=t;else{if(r==1)f=K(ki,Fn,1,2,5,1),c=Rx(n,e),c==0?(f[0]=t,f[1]=n.Eb):(f[0]=n.Eb,f[1]=t);else for(f=K(ki,Fn,1,r+1,5,1),s=cd(n.Eb),i=2,h=0,l=0;i<=128;i<<=1)i==e?f[l++]=t:n.Db&i&&(f[l++]=s[h++]);n.Eb=f}n.Db|=e}function hqn(n,e,t){var i,r,c,s;for(this.b=new Z,r=0,i=0,s=new C(n);s.a0&&(c=u(sn(this.b,0),176),r+=c.o,i+=c.p),r*=2,i*=2,e>1?r=wi(y.Math.ceil(r*e)):i=wi(y.Math.ceil(i/e)),this.a=new VY(r,i)}function lqn(n,e,t,i,r,c){var s,f,h,l,a,d,g,p,m,k,j,A;for(a=i,e.j&&e.o?(p=u(ee(n.f,e.A),60),k=p.d.c+p.d.b,--a):k=e.a.c+e.a.b,d=r,t.q&&t.o?(p=u(ee(n.f,t.C),60),l=p.d.c,++d):l=t.a.c,j=l-k,h=y.Math.max(2,d-a),f=j/h,m=k+f,g=a;g=0;s+=r?1:-1){for(f=e[s],h=i==(tn(),Zn)?r?uc(f,i):Qo(uc(f,i)):r?Qo(uc(f,i)):uc(f,i),c&&(n.c[f.p]=h.gc()),d=h.Kc();d.Ob();)a=u(d.Pb(),12),n.d[a.p]=l++;hi(t,h)}}function dqn(n,e,t){var i,r,c,s,f,h,l,a;for(c=$(R(n.b.Kc().Pb())),l=$(R(Hve(e.b))),i=rh(Ki(n.a),l-t),r=rh(Ki(e.a),t-c),a=tt(i,r),rh(a,1/(l-c)),this.a=a,this.b=new Z,f=!0,s=n.b.Kc(),s.Pb();s.Ob();)h=$(R(s.Pb())),f&&h-t>_R&&(this.b.Fc(t),f=!1),this.b.Fc(h);f&&this.b.Fc(t)}function zTe(n){var e,t,i,r;if(hSe(n,n.n),n.d.c.length>0){for(t6(n.c);Gnn(n,u(E(new C(n.e.a)),125))>5,e&=31,i>=n.d)return n.e<0?(dh(),vQn):(dh(),O8);if(c=n.d-i,r=K(ye,Ke,28,c+1,15,1),Fje(r,c,n.a,i,e),n.e<0){for(t=0;t0&&n.a[t]<<32-e){for(t=0;t=0?!1:(t=Jg((Du(),zi),r,e),t?(i=t.Ik(),(i>1||i==-1)&&y0(Lr(zi,t))!=3):!0)):!1}function JTe(n,e,t,i){var r,c,s,f,h;return f=Gr(u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84)),h=Gr(u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84)),At(f)==At(h)||Yb(h,f)?null:(s=J7(e),s==t?i:(c=u(ee(n.a,s),10),c&&(r=c.e,r)?r:null))}function QTe(n,e,t){var i,r,c,s,f;for(t.Ug("Longest path to source layering",1),n.a=e,f=n.a.a,n.b=K(ye,Ke,28,f.c.length,15,1),i=0,s=new C(f);s.a0&&(t[0]+=n.d,s-=t[0]),t[2]>0&&(t[2]+=n.d,s-=t[2]),c=y.Math.max(0,s),t[1]=y.Math.max(t[1],s),xJ(n,Wc,r.c+i.b+t[0]-(t[1]-s)/2,t),e==Wc&&(n.c.b=c,n.c.c=r.c+i.b+(c-s)/2)}function Eqn(){this.c=K(Pi,Tr,28,(tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=K(Pi,Tr,28,S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),this.a=K(Pi,Tr,28,S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),Rz(this.c,St),Rz(this.b,li),Rz(this.a,li)}function xc(n,e,t){var i,r,c,s;if(e<=t?(r=e,c=t):(r=t,c=e),i=0,n.b==null)n.b=K(ye,Ke,28,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r){n.b[i-1]=c;return}s=K(ye,Ke,28,i+2,15,1),Ic(n.b,0,s,0,i),n.b=s,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||Ug(n)}}function iAe(n,e,t){var i,r,c,s,f,h,l;for(l=e.d,n.a=new Gc(l.c.length),n.c=new de,f=new C(l);f.a=0?n.Lh(l,!1,!0):H0(n,t,!1),61));n:for(c=d.Kc();c.Ob();){for(r=u(c.Pb(),58),a=0;a1;)dw(r,r.i-1);return i}function Mqn(n,e){var t,i,r,c,s,f,h;for(t=new Eg,c=new C(n.b);c.an.d[s.p]&&(t+=SJ(n.b,c),V1(n.a,Y(c)));for(;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function fAe(n){var e,t,i,r,c,s,f,h,l;for(n.a=new kV,l=0,r=0,i=new C(n.i.b);i.af.d&&(a=f.d+f.a+l));t.c.d=a,e.a.zc(t,e),h=y.Math.max(h,t.c.d+t.c.a)}return h}function pr(){pr=F,ZP=new Db("COMMENTS",0),cs=new Db("EXTERNAL_PORTS",1),K8=new Db("HYPEREDGES",2),nI=new Db("HYPERNODES",3),yv=new Db("NON_FREE_PORTS",4),m2=new Db("NORTH_SOUTH_PORTS",5),_8=new Db(JXn,6),vv=new Db("CENTER_LABELS",7),kv=new Db("END_LABELS",8),eI=new Db("PARTITIONS",9)}function lAe(n,e,t,i,r){return i<0?(i=qg(n,r,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=qg(n,r,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function aAe(n,e,t,i,r){return i<0?(i=qg(n,r,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=qg(n,r,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function dAe(n,e,t,i,r,c){var s,f,h,l;if(f=32,i<0){if(e[0]>=n.length||(f=Xi(n,e[0]),f!=43&&f!=45)||(++e[0],i=yA(n,e),i<0))return!1;f==45&&(i=-i)}return f==32&&e[0]-t==2&&r.b==2&&(h=new JE,l=h.q.getFullYear()-fa+fa-80,s=l%100,c.a=i==s,i+=(l/100|0)*100+(i=0?ta(n):G6(ta(n1(n)))),D8[e]=AC(Fs(n,e),0)?ta(Fs(n,e)):G6(ta(n1(Fs(n,e)))),n=er(n,5);for(;e=l&&(h=i);h&&(a=y.Math.max(a,h.a.o.a)),a>g&&(d=l,g=a)}return d}function vAe(n){var e,t,i,r,c,s,f;for(c=new Ul(u(Se(new kbn),50)),f=li,t=new C(n.d);t.ajVn?Yt(h,n.b):i<=jVn&&i>EVn?Yt(h,n.d):i<=EVn&&i>CVn?Yt(h,n.c):i<=CVn&&Yt(h,n.a),c=Iqn(n,h,c);return r}function Oqn(n,e,t,i){var r,c,s,f,h,l;for(r=(i.c+i.a)/2,vo(e.j),xe(e.j,r),vo(t.e),xe(t.e,r),l=new Zjn,f=new C(n.f);f.a1,f&&(i=new V(r,t.b),xe(e.a,i)),c5(e.a,S(T(Ei,1),J,8,0,[g,d]))}function ben(n,e,t){var i,r;for(e=48;t--)K9[t]=t-48<<24>>24;for(i=70;i>=65;i--)K9[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)K9[r]=r-97+10<<24>>24;for(c=0;c<10;c++)SO[c]=48+c&ui;for(n=10;n<=15;n++)SO[n]=65+n-10&ui}function EAe(n,e){e.Ug("Process graph bounds",1),U(n,(pt(),rq),b7(O$(Ub(new Tn(null,new In(n.b,16)),new r4n)))),U(n,cq,b7(O$(Ub(new Tn(null,new In(n.b,16)),new c4n)))),U(n,vln,b7(I$(Ub(new Tn(null,new In(n.b,16)),new u4n)))),U(n,kln,b7(I$(Ub(new Tn(null,new In(n.b,16)),new o4n)))),e.Vg()}function CAe(n){var e,t,i,r,c;r=u(v(n,(cn(),xd)),21),c=u(v(n,kI),21),t=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),e=new rr(t),r.Hc((go(),Qw))&&(i=u(v(n,Ev),8),c.Hc((io(),Hv))&&(i.a<=0&&(i.a=20),i.b<=0&&(i.b=20)),e.a=y.Math.max(t.a,i.a),e.b=y.Math.max(t.b,i.b)),on(un(v(n,SH)))||nIe(n,t,e)}function MAe(n,e){var t,i,r,c;for(c=uc(e,(tn(),ae)).Kc();c.Ob();)i=u(c.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&Hs(Ds(Os(Ls(Is(new hs,0),.1),n.i[e.p].d),n.i[t.p].a));for(r=uc(e,Xn).Kc();r.Ob();)i=u(r.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&Hs(Ds(Os(Ls(Is(new hs,0),.1),n.i[t.p].d),n.i[e.p].a))}function yF(n){var e,t,i,r,c,s;if(!n.c){if(s=new kvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Sc(n));i.e!=i.i.gc();)t=u(ce(i),89),r=BA(t),O(r,90)&&Bt(s,yF(u(r,29))),ve(s,t);e.a.Bc(n)!=null,e.a.gc()==0}k8e(s),ew(s),n.c=new gg((u(L(_((G1(),Hn).o),15),19),s.i),s.g),Zu(n).b&=-33}return n.c}function gen(n){var e;if(n.c!=10)throw M(new Le($e((Ie(),qS))));switch(e=n.a,e){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw M(new Le($e((Ie(),is))))}return e}function $qn(n){var e,t,i,r,c;if(n.l==0&&n.m==0&&n.h==0)return"0";if(n.h==Ty&&n.m==0&&n.l==0)return"-9223372036854775808";if(n.h>>19)return"-"+$qn(tm(n));for(t=n,i="";!(t.l==0&&t.m==0&&t.h==0);){if(r=QN(QA),t=Jen(t,r,!0),e=""+cEn(ba),!(t.l==0&&t.m==0&&t.h==0))for(c=9-e.length;c>0;c--)e="0"+e;i=e+i}return i}function TAe(n){var e,t,i,r,c,s,f;for(e=!1,t=0,r=new C(n.d.b);r.a=n.a||!YZ(e,t))return-1;if(N4(u(i.Kb(e),20)))return 1;for(r=0,s=u(i.Kb(e),20).Kc();s.Ob();)if(c=u(s.Pb(),18),h=c.c.i==e?c.d.i:c.c.i,f=pen(n,h,t,i),f==-1||(r=y.Math.max(r,f),r>n.c-1))return-1;return r+1}function xqn(n,e){var t,i,r,c,s,f;if(x(e)===x(n))return!0;if(!O(e,15)||(i=u(e,15),f=n.gc(),i.gc()!=f))return!1;if(s=i.Kc(),n.Yi()){for(t=0;t0){if(n._j(),e!=null){for(c=0;c>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw M(new eh("Invalid hexadecimal"))}}function NA(){NA=F,eon=new lg("SPIRAL",0),Qun=new lg("LINE_BY_LINE",1),Yun=new lg("MANHATTAN",2),Jun=new lg("JITTER",3),f_=new lg("QUADRANTS_LINE_BY_LINE",4),non=new lg("QUADRANTS_MANHATTAN",5),Zun=new lg("QUADRANTS_JITTER",6),Wun=new lg("COMBINE_LINE_BY_LINE_MANHATTAN",7),Vun=new lg("COMBINE_JITTER_MANHATTAN",8)}function Bqn(n,e,t,i){var r,c,s,f,h,l;for(h=zx(n,t),l=zx(e,t),r=!1;h&&l&&(i||E7e(h,l,t));)s=zx(h,t),f=zx(l,t),lk(e),lk(n),c=h.c,XF(h,!1),XF(l,!1),t?(uw(e,l.p,c),e.p=l.p,uw(n,h.p+1,c),n.p=h.p):(uw(n,h.p,c),n.p=h.p,uw(e,l.p+1,c),e.p=l.p),$i(h,null),$i(l,null),h=s,l=f,r=!0;return r}function Rqn(n){switch(n.g){case 0:return new Y5n;case 1:return new J5n;case 3:return new dCn;case 4:return new Xpn;case 5:return new _An;case 6:return new Q5n;case 2:return new W5n;case 7:return new q5n;case 8:return new G5n;default:throw M(new Gn("No implementation is available for the layerer "+(n.f!=null?n.f:""+n.g)))}}function DAe(n,e,t,i){var r,c,s,f,h;for(r=!1,c=!1,f=new C(i.j);f.a=e.length)throw M(new Ir("Greedy SwitchDecider: Free layer not in graph."));this.c=e[n],this.e=new N7(i),T$(this.e,this.c,(tn(),Wn)),this.i=new N7(i),T$(this.i,this.c,Zn),this.f=new rPn(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(Vn(),Zt),this.a&&zje(this,n,e.length)}function _qn(n,e){var t,i,r,c,s,f;c=!n.B.Hc((io(),cE)),s=n.B.Hc(bU),n.a=new ABn(s,c,n.c),n.n&&WW(n.a.n,n.n),mD(n.g,(bf(),Wc),n.a),e||(i=new C5(1,c,n.c),i.n.a=n.k,Pp(n.p,(tn(),Xn),i),r=new C5(1,c,n.c),r.n.d=n.k,Pp(n.p,ae,r),f=new C5(0,c,n.c),f.n.c=n.k,Pp(n.p,Wn,f),t=new C5(0,c,n.c),t.n.b=n.k,Pp(n.p,Zn,t))}function NAe(n){var e,t,i;switch(e=u(v(n.d,(cn(),$l)),223),e.g){case 2:t=jLe(n);break;case 3:t=(i=new Z,qt(ut(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new ipn),new rpn),new cpn),new U2n),new E7n(i)),i);break;default:throw M(new Or("Compaction not supported for "+e+" edges."))}UIe(n,t),qi(new Ha(n.g),new y7n(n))}function $Ae(n,e){var t,i,r,c,s,f,h;if(e.Ug("Process directions",1),t=u(v(n,(lc(),vb)),88),t!=(ci(),Vf))for(r=ge(n.b,0);r.b!=r.d.c;){switch(i=u(be(r),40),f=u(v(i,(pt(),$j)),17).a,h=u(v(i,xj),17).a,t.g){case 4:h*=-1;break;case 1:c=f,f=h,h=c;break;case 2:s=f,f=-h,h=s}U(i,$j,Y(f)),U(i,xj,Y(h))}e.Vg()}function xAe(n,e){var t;return t=new xO,e&&Ur(t,u(ee(n.a,oE),96)),O(e,422)&&Ur(t,u(ee(n.a,sE),96)),O(e,366)?(Ur(t,u(ee(n.a,Ar),96)),t):(O(e,84)&&Ur(t,u(ee(n.a,he),96)),O(e,207)?(Ur(t,u(ee(n.a,Qe),96)),t):O(e,193)?(Ur(t,u(ee(n.a,Qu),96)),t):(O(e,326)&&Ur(t,u(ee(n.a,Vt),96)),t))}function FAe(n){var e,t,i,r,c,s,f,h;for(h=new yLn,f=new C(n.a);f.a0&&e=0)return!1;if(e.p=t.b,nn(t.e,e),r==(Vn(),Mi)||r==_c){for(s=new C(e.j);s.an.d[f.p]&&(t+=SJ(n.b,c),V1(n.a,Y(c)))):++s;for(t+=n.b.d*s;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function Qqn(n){var e,t,i,r,c,s;return c=0,e=ws(n),e.kk()&&(c|=4),n.Bb&$u&&(c|=2),O(n,102)?(t=u(n,19),r=br(t),t.Bb&kc&&(c|=32),r&&(se(Gb(r)),c|=8,s=r.t,(s>1||s==-1)&&(c|=16),r.Bb&kc&&(c|=64)),t.Bb&hr&&(c|=Tw),c|=Us):O(e,469)?c|=512:(i=e.kk(),i&&i.i&1&&(c|=256)),n.Bb&512&&(c|=128),c}function WAe(n,e){var t;return n.f==AU?(t=y0(Lr((Du(),zi),e)),n.e?t==4&&e!=(n3(),_3)&&e!=(n3(),K3)&&e!=(n3(),SU)&&e!=(n3(),PU):t==2):n.d&&(n.d.Hc(e)||n.d.Hc($p(Lr((Du(),zi),e)))||n.d.Hc(Jg((Du(),zi),n.b,e)))?!0:n.f&&ren((Du(),n.f),G7(Lr(zi,e)))?(t=y0(Lr(zi,e)),n.e?t==4:t==2):!1}function JAe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(g=-1,p=0,l=n,a=0,d=l.length;a0&&++p;++g}return p}function QAe(n,e,t,i){var r,c,s,f,h,l,a,d;return s=u(z(t,(qe(),N3)),8),h=s.a,a=s.b+n,r=y.Math.atan2(a,h),r<0&&(r+=Cd),r+=e,r>Cd&&(r-=Cd),f=u(z(i,N3),8),l=f.a,d=f.b+n,c=y.Math.atan2(d,l),c<0&&(c+=Cd),c+=e,c>Cd&&(c-=Cd),Mf(),Rs(1e-10),y.Math.abs(r-c)<=1e-10||r==c||isNaN(r)&&isNaN(c)?0:rc?1:s0(isNaN(r),isNaN(c))}function CF(n){var e,t,i,r,c,s,f;for(f=new de,i=new C(n.a.b);i.a=n.o)throw M(new YG);f=e>>5,s=e&31,c=Fs(1,Ae(Fs(s,1))),r?n.n[t][f]=hf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c)),c=Fs(c,1),i?n.n[t][f]=hf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c))}catch(h){throw h=It(h),O(h,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(h)}}function nSe(n,e,t,i){var r,c,s,f,h,l,a,d,g;for(g=new Ul(new z7n(n)),f=S(T(Qh,1),b1,10,0,[e,t]),h=0,l=f.length;h0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Be(Be((e.a+=' "',e),i),'"'))),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function Yqn(n){var e,t,i;return n.Db&64?iF(n):(e=new mo(Mcn),t=n.k,t?Be(Be((e.a+=' "',e),t),'"'):(!n.n&&(n.n=new q(Ar,n,1,7)),n.n.i>0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Be(Be((e.a+=' "',e),i),'"'))),Be(t0(Be(t0(Be(t0(Be(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function iSe(n,e){var t,i,r,c,s;for(e==(d5(),XH)&&ny(u(ot(n.a,(ow(),gj)),15)),r=u(ot(n.a,(ow(),gj)),15).Kc();r.Ob();)switch(i=u(r.Pb(),105),t=u(sn(i.j,0),113).d.j,c=new _u(i.j),Yt(c,new apn),e.g){case 2:Qx(n,c,t,(D0(),ma),1);break;case 1:case 0:s=qMe(c),Qx(n,new Jl(c,0,s),t,(D0(),ma),0),Qx(n,new Jl(c,s,c.c.length),t,ma,1)}}function TF(n,e){var t,i,r,c,s,f,h;if(e==null||e.length==0)return null;if(r=u(Nc(n.a,e),143),!r){for(i=(f=new ol(n.b).a.vc().Kc(),new Sb(f));i.a.Ob();)if(t=(c=u(i.a.Pb(),44),u(c.md(),143)),s=t.c,h=e.length,An(s.substr(s.length-h,h),e)&&(e.length==s.length||Xi(s,s.length-e.length-1)==46)){if(r)return null;r=t}r&&Dr(n.a,e,r)}return r}function rSe(n,e){var t,i,r,c;return t=new Tbn,i=u(Wr(_r(new Tn(null,new In(n.f,16)),t),Wb(new Q2,new Y2,new Z2,new np,S(T(xr,1),G,108,0,[(Gu(),Aw),Yr]))),21),r=i.gc(),i=u(Wr(_r(new Tn(null,new In(e.f,16)),t),Wb(new Q2,new Y2,new Z2,new np,S(T(xr,1),G,108,0,[Aw,Yr]))),21),c=i.gc(),rr.p?(gi(c,ae),c.d&&(f=c.o.b,e=c.a.b,c.a.b=f-e)):c.j==ae&&r.p>n.p&&(gi(c,Xn),c.d&&(f=c.o.b,e=c.a.b,c.a.b=-(f-e)));break}return r}function fy(n,e,t,i,r){var c,s,f,h,l,a,d;if(!(O(e,207)||O(e,366)||O(e,193)))throw M(new Gn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return s=n.a/2,h=e.i+i-s,a=e.j+r-s,l=h+e.g+n.a,d=a+e.f+n.a,c=new Mu,xe(c,new V(h,a)),xe(c,new V(h,d)),xe(c,new V(l,d)),xe(c,new V(l,a)),f=new bF(c),Ur(f,e),t&&Xe(n.b,e,f),f}function Sm(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(c=new V(e,t),a=new C(n.a);a.a1,f&&(i=new V(r,t.b),xe(e.a,i)),c5(e.a,S(T(Ei,1),J,8,0,[g,d]))}function gs(){gs=F,AI=new Lb(kh,0),Sj=new Lb("NIKOLOV",1),Pj=new Lb("NIKOLOV_PIXEL",2),Fhn=new Lb("NIKOLOV_IMPROVED",3),Bhn=new Lb("NIKOLOV_IMPROVED_PIXEL",4),xhn=new Lb("DUMMYNODE_PERCENTAGE",5),Rhn=new Lb("NODECOUNT_PERCENTAGE",6),SI=new Lb("NO_BOUNDARY",7),pb=new Lb("MODEL_ORDER_LEFT_TO_RIGHT",8),Uw=new Lb("MODEL_ORDER_RIGHT_TO_LEFT",9)}function bSe(n){var e,t,i,r,c;for(i=n.length,e=new r6,c=0;c=40,s&&wPe(n),EIe(n),zTe(n),t=pBn(n),i=0;t&&i0&&xe(n.f,c)):(n.c[s]-=l+1,n.c[s]<=0&&n.a[s]>0&&xe(n.e,c))))}function lUn(n,e,t,i){var r,c,s,f,h,l,a;for(h=new V(t,i),mi(h,u(v(e,(pt(),Dv)),8)),a=ge(e.b,0);a.b!=a.d.c;)l=u(be(a),40),tt(l.e,h),xe(n.b,l);for(f=u(Wr(uJ(new Tn(null,new In(e.a,16))),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15).Kc();f.Ob();){for(s=u(f.Pb(),65),c=ge(s.a,0);c.b!=c.d.c;)r=u(be(c),8),r.a+=h.a,r.b+=h.b;xe(n.a,s)}}function Den(n,e){var t,i,r,c;if(0<(O(n,16)?u(n,16).gc():wl(n.Kc()))){if(r=e,1=0&&hc*2?(a=new hT(d),l=Su(s)/ao(s),h=QF(a,e,new cp,t,i,r,l),tt(sf(a.e),h),d.c.length=0,c=0,Bn(d.c,a),Bn(d.c,s),c=Su(a)*ao(a)+Su(s)*ao(s)):(Bn(d.c,s),c+=Su(s)*ao(s));return d}function dUn(n,e){var t,i,r,c,s,f;if(f=u(v(e,(cn(),Kt)),101),f==(Oi(),tl)||f==qc)for(r=new V(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,s=new C(n.a);s.at?e:t;l<=d;++l)l==t?f=i++:(c=r[l],a=m.am(c.Lk()),l==e&&(h=l==d&&!a?i-1:i),a&&++i);return g=u(y5(n,e,t),76),f!=h&&t4(n,new ok(n.e,7,s,Y(f),p.md(),h)),g}}else return u(lF(n,e,t),76);return u(y5(n,e,t),76)}function LSe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Port order processing",1),h=u(v(n,(cn(),whn)),430),i=new C(n.b);i.a=0&&(f=S7e(n,s),!(f&&(l<22?h.l|=1<>>1,s.m=a>>>1|(d&1)<<21,s.l=g>>>1|(a&1)<<21,--l;return t&&H$(h),c&&(i?(ba=tm(n),r&&(ba=Yxn(ba,(R4(),lun)))):ba=Yc(n.l,n.m,n.h)),h}function xSe(n,e){var t,i,r,c,s,f,h,l,a,d;for(l=n.e[e.c.p][e.p]+1,h=e.c.a.c.length+1,f=new C(n.a);f.a0&&(zn(0,n.length),n.charCodeAt(0)==45||(zn(0,n.length),n.charCodeAt(0)==43))?1:0,i=s;it)throw M(new eh(V0+n+'"'));return f}function FSe(n){var e,t,i,r,c,s,f;for(s=new Ct,c=new C(n.a);c.a1)&&e==1&&u(n.a[n.b],10).k==(Vn(),Ac)?t3(u(n.a[n.b],10),(To(),nl)):i&&(!t||(n.c-n.b&n.a.length-1)>1)&&e==1&&u(n.a[n.c-1&n.a.length-1],10).k==(Vn(),Ac)?t3(u(n.a[n.c-1&n.a.length-1],10),(To(),Ta)):(n.c-n.b&n.a.length-1)==2?(t3(u(a5(n),10),(To(),nl)),t3(u(a5(n),10),Ta)):dMe(n,r),TJ(n)}function KSe(n,e,t){var i,r,c,s,f;for(c=0,r=new ne((!n.a&&(n.a=new q(Qe,n,10,11)),n.a));r.e!=r.i.gc();)i=u(ce(r),27),s="",(!i.n&&(i.n=new q(Ar,i,1,7)),i.n).i==0||(s=u(L((!i.n&&(i.n=new q(Ar,i,1,7)),i.n),0),135).a),f=new q$(c++,e,s),Ur(f,i),U(f,(pt(),f9),i),f.e.b=i.j+i.f/2,f.f.a=y.Math.max(i.g,1),f.e.a=i.i+i.g/2,f.f.b=y.Math.max(i.f,1),xe(e.b,f),Vc(t.f,i,f)}function _Se(n){var e,t,i,r,c;i=u(v(n,(W(),st)),27),c=u(z(i,(cn(),xd)),181).Hc((go(),Gd)),n.e||(r=u(v(n,Hc),21),e=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((pr(),cs))?(ht(i,Kt,(Oi(),qc)),G0(i,e.a,e.b,!1,!0)):on(un(z(i,SH)))||G0(i,e.a,e.b,!0,!0)),c?ht(i,xd,yn(Gd)):ht(i,xd,(t=u(uf(I9),9),new _o(t,u($s(t,t.length),9),0)))}function Len(n,e,t){var i,r,c,s;if(e[0]>=n.length)return t.o=0,!0;switch(Xi(n,e[0])){case 43:r=1;break;case 45:r=-1;break;default:return t.o=0,!0}if(++e[0],c=e[0],s=yA(n,e),s==0&&e[0]==c)return!1;if(e[0]f&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.c.i,t)));Dn(),Yt(a,n.c),b0(n.b,h.p,a)}}function GSe(n,e){var t,i,r,c,s,f,h,l,a;for(s=new C(e.b);s.af&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.d.i,t)));Dn(),Yt(a,n.c),b0(n.f,h.p,a)}}function zSe(n,e){var t,i,r,c,s,f,h,l;if(l=un(v(e,(lc(),Ire))),l==null||(Jn(l),l)){for(mCe(n,e),r=new Z,h=ge(e.b,0);h.b!=h.d.c;)s=u(be(h),40),t=knn(n,s,null),t&&(Ur(t,e),Bn(r.c,t));if(n.a=null,n.b=null,r.c.length>1)for(i=new C(r);i.a=0&&f!=t&&(c=new Ci(n,1,f,s,null),i?i.nj(c):i=c),t>=0&&(c=new Ci(n,1,t,f==t?s:null,e),i?i.nj(c):i=c)),i}function gUn(n){var e,t,i;if(n.b==null){if(i=new Hl,n.i!=null&&(Er(i,n.i),i.a+=":"),n.f&256){for(n.f&256&&n.a!=null&&(lge(n.i)||(i.a+="//"),Er(i,n.a)),n.d!=null&&(i.a+="/",Er(i,n.d)),n.f&16&&(i.a+="/"),e=0,t=n.j.length;eg?!1:(d=(h=V5(i,g,!1),h.a),a+f+d<=e.b&&(sk(t,c-t.s),t.c=!0,sk(i,c-t.s),Uk(i,t.s,t.t+t.d+f),i.k=!0,_Q(t.q,i),p=!0,r&&(wT(e,i),i.j=e,n.c.length>s&&(Xk((Ln(s,n.c.length),u(n.c[s],186)),i),(Ln(s,n.c.length),u(n.c[s],186)).a.c.length==0&&Yl(n,s)))),p)}function ZSe(n,e){var t,i,r,c,s,f;if(e.Ug("Partition midprocessing",1),r=new C0,qt(ut(new Tn(null,new In(n.a,16)),new qgn),new h7n(r)),r.d!=0){for(f=u(Wr(fJ((c=r.i,new Tn(null,(c||(r.i=new Cg(r,r.c))).Nc()))),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),i=f.Kc(),t=u(i.Pb(),17);i.Ob();)s=u(i.Pb(),17),zMe(u(ot(r,t),21),u(ot(r,s),21)),t=s;e.Vg()}}function vUn(n,e,t){var i,r,c,s,f,h,l,a;if(e.p==0){for(e.p=1,s=t,s||(r=new Z,c=(i=u(uf(lr),9),new _o(i,u($s(i,i.length),9),0)),s=new bi(r,c)),u(s.a,15).Fc(e),e.k==(Vn(),Zt)&&u(s.b,21).Fc(u(v(e,(W(),gc)),64)),h=new C(e.j);h.a0){if(r=u(n.Ab.g,2033),e==null){for(c=0;ct.s&&fs)return tn(),Zn;break;case 4:case 3:if(a<0)return tn(),Xn;if(a+t>c)return tn(),ae}return h=(l+f/2)/s,i=(a+t/2)/c,h+i<=1&&h-i<=0?(tn(),Wn):h+i>=1&&h-i>=0?(tn(),Zn):i<.5?(tn(),Xn):(tn(),ae)}function rPe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=!1,a=$(R(v(e,(cn(),gb)))),m=sa*a,r=new C(e.b);r.ah+m&&(k=d.g+g.g,g.a=(g.g*g.a+d.g*d.a)/k,g.g=k,d.f=g,t=!0)),c=f,d=g;return t}function EUn(n,e,t,i,r,c,s){var f,h,l,a,d,g;for(g=new mp,l=e.Kc();l.Ob();)for(f=u(l.Pb(),853),d=new C(f.Rf());d.a0?f.a?(l=f.b.Mf().b,r>l&&(n.v||f.c.d.c.length==1?(s=(r-l)/2,f.d.d=s,f.d.a=s):(t=u(sn(f.c.d,0),187).Mf().b,i=(t-l)/2,f.d.d=y.Math.max(0,i),f.d.a=r-i-l))):f.d.a=n.t+r:_6(n.u)&&(c=tnn(f.b),c.d<0&&(f.d.d=-c.d),c.d+c.a>f.b.Mf().b&&(f.d.a=c.d+c.a-f.b.Mf().b))}function qs(){qs=F,k3=new Ni((qe(),Jj),Y(1)),yP=new Ni(qd,80),tZn=new Ni(Uan,5),zYn=new Ni($2,Gm),nZn=new Ni(fU,Y(1)),eZn=new Ni(hU,(_n(),!0)),mon=new f0(50),YYn=new Ni(C1,mon),won=Vj,von=j9,XYn=new Ni(Zq,!1),pon=Wj,JYn=Vw,QYn=Ma,WYn=Hd,VYn=R2,ZYn=Ww,gon=(ann(),RYn),y_=qYn,kP=BYn,k_=KYn,kon=HYn,cZn=Fv,uZn=cO,rZn=Qj,iZn=rO,yon=(Gp(),Yw),new Ni(x3,yon)}function oPe(n,e){var t;switch(gk(n)){case 6:return Ai(e);case 7:return $b(e);case 8:return Nb(e);case 3:return Array.isArray(e)&&(t=gk(e),!(t>=14&&t<=16));case 11:return e!=null&&typeof e===eB;case 12:return e!=null&&(typeof e===vy||typeof e==eB);case 0:return Tx(e,n.__elementTypeId$);case 2:return uN(e)&&e.Tm!==J2;case 1:return uN(e)&&e.Tm!==J2||Tx(e,n.__elementTypeId$);default:return!0}}function sPe(n){var e,t,i,r;i=n.o,Bb(),n.A.dc()||rt(n.A,ron)?r=i.a:(n.D?r=y.Math.max(i.a,$5(n.f)):r=$5(n.f),n.A.Hc((go(),iE))&&!n.B.Hc((io(),O9))&&(r=y.Math.max(r,$5(u(Cr(n.p,(tn(),Xn)),252))),r=y.Math.max(r,$5(u(Cr(n.p,ae),252)))),e=Bxn(n),e&&(r=y.Math.max(r,e.a))),on(un(n.e.Tf().of((qe(),Vw))))?i.a=y.Math.max(i.a,r):i.a=r,t=n.f.i,t.c=0,t.b=r,LF(n.f)}function CUn(n,e){var t,i,r,c;return i=y.Math.min(y.Math.abs(n.c-(e.c+e.b)),y.Math.abs(n.c+n.b-e.c)),c=y.Math.min(y.Math.abs(n.d-(e.d+e.a)),y.Math.abs(n.d+n.a-e.d)),t=y.Math.abs(n.c+n.b/2-(e.c+e.b/2)),t>n.b/2+e.b/2||(r=y.Math.abs(n.d+n.a/2-(e.d+e.a/2)),r>n.a/2+e.a/2)?1:t==0&&r==0?0:t==0?c/r+1:r==0?i/t+1:y.Math.min(i/t,c/r)+1}function fPe(n,e){var t,i,r,c,s,f,h;for(c=0,f=0,h=0,r=new C(n.f.e);r.a0&&n.d!=(i5(),C_)&&(f+=s*(i.d.a+n.a[e.a][i.a]*(e.d.a-i.d.a)/t)),t>0&&n.d!=(i5(),j_)&&(h+=s*(i.d.b+n.a[e.a][i.a]*(e.d.b-i.d.b)/t)));switch(n.d.g){case 1:return new V(f/c,e.d.b);case 2:return new V(e.d.a,h/c);default:return new V(f/c,h/c)}}function MUn(n){var e,t,i,r,c,s;for(t=(!n.a&&(n.a=new ti(xo,n,5)),n.a).i+2,s=new Gc(t),nn(s,new V(n.j,n.k)),qt(new Tn(null,(!n.a&&(n.a=new ti(xo,n,5)),new In(n.a,16))),new xkn(s)),nn(s,new V(n.b,n.c)),e=1;e0&&(Sk(h,!1,(ci(),Br)),Sk(h,!0,Xr)),nu(e.g,new RCn(n,t)),Xe(n.g,e,t)}function SUn(){SUn=F;var n;for(vun=S(T(ye,1),Ke,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),JK=K(ye,Ke,28,37,15,1),gQn=S(T(ye,1),Ke,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),kun=K(xa,SB,28,37,14,1),n=2;n<=36;n++)JK[n]=wi(y.Math.pow(n,vun[n])),kun[n]=Wk(Ey,JK[n])}function hPe(n){var e;if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));return e=new Mu,Tk(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84))&&Bi(e,gzn(n,Tk(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84)),!1)),Tk(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84))&&Bi(e,gzn(n,Tk(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84)),!0)),e}function PUn(n,e){var t,i,r,c,s;for(e.d?r=n.a.c==(sh(),mb)?ji(e.b):Qt(e.b):r=n.a.c==(sh(),y1)?ji(e.b):Qt(e.b),c=!1,i=new te(re(r.a.Kc(),new En));pe(i);)if(t=u(fe(i),18),s=on(n.a.f[n.a.g[e.b.p].p]),!(!s&&!fr(t)&&t.c.i.c==t.d.i.c)&&!(on(n.a.n[n.a.g[e.b.p].p])||on(n.a.n[n.a.g[e.b.p].p]))&&(c=!0,of(n.b,n.a.g[h7e(t,e.b).p])))return e.c=!0,e.a=t,e;return e.c=c,e.a=null,e}function $en(n,e,t){var i,r,c,s,f,h,l;if(i=t.gc(),i==0)return!1;if(n.Pj())if(h=n.Qj(),UY(n,e,t),s=i==1?n.Ij(3,null,t.Kc().Pb(),e,h):n.Ij(5,null,t,e,h),n.Mj()){for(f=i<100?null:new F1(i),c=e+i,r=e;r0){for(s=0;s>16==-15&&n.Cb.Yh()&&h$(new c$(n.Cb,9,13,t,n.c,f1(no(u(n.Cb,62)),n))):O(n.Cb,90)&&n.Db>>16==-23&&n.Cb.Yh()&&(e=n.c,O(e,90)||(e=(On(),Ps)),O(t,90)||(t=(On(),Ps)),h$(new c$(n.Cb,9,10,t,e,f1(Sc(u(n.Cb,29)),n)))))),n.c}function dPe(n,e,t){var i,r,c,s,f,h,l,a,d;for(t.Ug("Hyperedge merging",1),FCe(n,e),h=new xi(e.b,0);h.b0,f=HT(e,c),VX(t?f.b:f.g,e),$g(f).c.length==1&&xt(i,f,i.c.b,i.c),r=new bi(c,e),V1(n.o,r),du(n.e.a,c))}function xUn(n,e){var t,i,r,c,s,f,h;return i=y.Math.abs(gM(n.b).a-gM(e.b).a),f=y.Math.abs(gM(n.b).b-gM(e.b).b),r=0,h=0,t=1,s=1,i>n.b.b/2+e.b.b/2&&(r=y.Math.min(y.Math.abs(n.b.c-(e.b.c+e.b.b)),y.Math.abs(n.b.c+n.b.b-e.b.c)),t=1-r/i),f>n.b.a/2+e.b.a/2&&(h=y.Math.min(y.Math.abs(n.b.d-(e.b.d+e.b.a)),y.Math.abs(n.b.d+n.b.a-e.b.d)),s=1-h/f),c=y.Math.min(t,s),(1-c)*y.Math.sqrt(i*i+f*f)}function gPe(n){var e,t,i,r;for(JF(n,n.e,n.f,(M0(),Ea),!0,n.c,n.i),JF(n,n.e,n.f,Ea,!1,n.c,n.i),JF(n,n.e,n.f,P2,!0,n.c,n.i),JF(n,n.e,n.f,P2,!1,n.c,n.i),aPe(n,n.c,n.e,n.f,n.i),i=new xi(n.i,0);i.b=65;t--)Zf[t]=t-65<<24>>24;for(i=122;i>=97;i--)Zf[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)Zf[r]=r-48+52<<24>>24;for(Zf[43]=62,Zf[47]=63,c=0;c<=25;c++)O1[c]=65+c&ui;for(s=26,h=0;s<=51;++s,h++)O1[s]=97+h&ui;for(n=52,f=0;n<=61;++n,f++)O1[n]=48+f&ui;O1[62]=43,O1[63]=47}function FUn(n,e){var t,i,r,c,s,f;return r=xQ(n),f=xQ(e),r==f?n.e==e.e&&n.a<54&&e.a<54?n.fe.f?1:0:(i=n.e-e.e,t=(n.d>0?n.d:y.Math.floor((n.a-1)*Uzn)+1)-(e.d>0?e.d:y.Math.floor((e.a-1)*Uzn)+1),t>i+1?r:t0&&(s=Pg(s,VUn(i))),XBn(c,s))):rl&&(g=0,p+=h+e,h=0),Sm(s,g,p),t=y.Math.max(t,g+a.a),h=y.Math.max(h,a.b),g+=a.a+e;return new V(t+e,p+h+e)}function Ren(n,e){var t,i,r,c,s,f,h;if(!Af(n))throw M(new Or(eWn));if(i=Af(n),c=i.g,r=i.f,c<=0&&r<=0)return tn(),sc;switch(f=n.i,h=n.j,e.g){case 2:case 1:if(f<0)return tn(),Wn;if(f+n.g>c)return tn(),Zn;break;case 4:case 3:if(h<0)return tn(),Xn;if(h+n.f>r)return tn(),ae}return s=(f+n.g/2)/c,t=(h+n.f/2)/r,s+t<=1&&s-t<=0?(tn(),Wn):s+t>=1&&s-t>=0?(tn(),Zn):t<.5?(tn(),Xn):(tn(),ae)}function vPe(n,e,t,i,r){var c,s;if(c=nr(vi(e[0],mr),vi(i[0],mr)),n[0]=Ae(c),c=w0(c,32),t>=r){for(s=1;s0&&(r.b[s++]=0,r.b[s++]=c.b[0]-1),e=1;e0&&(JO(h,h.d-r.d),r.c==(lf(),ja)&&ife(h,h.a-r.d),h.d<=0&&h.i>0&&xt(e,h,e.c.b,e.c)));for(c=new C(n.f);c.a0&&(SE(f,f.i-r.d),r.c==(lf(),ja)&&rfe(f,f.b-r.d),f.i<=0&&f.d>0&&xt(t,f,t.c.b,t.c)))}function jPe(n,e,t,i,r){var c,s,f,h,l,a,d,g,p;for(Dn(),Yt(n,new Jmn),s=F7(n),p=new Z,g=new Z,f=null,h=0;s.b!=0;)c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),163),!f||Su(f)*ao(f)/21&&(h>Su(f)*ao(f)/2||s.b==0)&&(d=new hT(g),a=Su(f)/ao(f),l=QF(d,e,new cp,t,i,r,a),tt(sf(d.e),l),f=d,Bn(p.c,d),h=0,g.c.length=0));return hi(p,g),p}function Ic(n,e,t,i,r){fl();var c,s,f,h,l,a,d;if(PW(n,"src"),PW(t,"dest"),d=wo(n),h=wo(t),VV((d.i&4)!=0,"srcType is not an array"),VV((h.i&4)!=0,"destType is not an array"),a=d.c,s=h.c,VV(a.i&1?a==s:(s.i&1)==0,"Array types don't match"),s6e(n,e,t,i,r),!(a.i&1)&&d!=h)if(l=cd(n),c=cd(t),x(n)===x(t)&&ei;)$t(c,f,l[--e]);else for(f=i+r;i0),i.a.Xb(i.c=--i.b),d>g+h&&bo(i);for(s=new C(p);s.a0),i.a.Xb(i.c=--i.b)}}function CPe(){nt();var n,e,t,i,r,c;if(OU)return OU;for(n=new yo(4),gw(n,oa(FK,!0)),Q5(n,oa("M",!0)),Q5(n,oa("C",!0)),c=new yo(4),i=0;i<11;i++)xc(c,i,i);return e=new yo(4),gw(e,oa("M",!0)),xc(e,4448,4607),xc(e,65438,65439),r=new P6(2),pd(r,n),pd(r,H9),t=new P6(2),t.Jm(uM(c,oa("L",!0))),t.Jm(e),t=new Xb(3,t),t=new SW(r,t),OU=t,OU}function ww(n,e){var t,i,r,c,s,f,h,l;for(t=new RegExp(e,"g"),h=K(fn,J,2,0,6,1),i=0,l=n,c=null;;)if(f=t.exec(l),f==null||l==""){h[i]=l;break}else s=f.index,h[i]=(Fi(0,s,l.length),l.substr(0,s)),l=qo(l,s+f[0].length,l.length),t.lastIndex=0,c==l&&(h[i]=(Fi(0,1,l.length),l.substr(0,1)),l=(zn(1,l.length+1),l.substr(1))),c=l,++i;if(n.length>0){for(r=h.length;r>0&&h[r-1]=="";)--r;r0&&(d-=i[0]+n.c,i[0]+=n.c),i[2]>0&&(d-=i[2]+n.c),i[1]=y.Math.max(i[1],d),hM(n.a[1],t.c+e.b+i[0]-(i[1]-d)/2,i[1]);for(c=n.a,f=0,l=c.length;f0?(n.n.c.length-1)*n.i:0,i=new C(n.n);i.a1)for(i=ge(r,0);i.b!=i.d.c;)for(t=u(be(i),235),c=0,h=new C(t.e);h.a0&&(e[0]+=n.c,d-=e[0]),e[2]>0&&(d-=e[2]+n.c),e[1]=y.Math.max(e[1],d),lM(n.a[1],i.d+t.d+e[0]-(e[1]-d)/2,e[1]);else for(m=i.d+t.d,p=i.a-t.d-t.a,s=n.a,h=0,a=s.length;h0||x0(r.b.d,n.b.d+n.b.a)==0&&i.b<0||x0(r.b.d+r.b.a,n.b.d)==0&&i.b>0){f=0;break}}else f=y.Math.min(f,x_n(n,r,i));f=y.Math.min(f,_Un(n,c,f,i))}return f}function dy(n,e){var t,i,r,c,s,f,h;if(n.b<2)throw M(new Gn("The vector chain must contain at least a source and a target point."));for(r=(oe(n.b!=0),u(n.a.a.c,8)),C7(e,r.a,r.b),h=new kp((!e.a&&(e.a=new ti(xo,e,5)),e.a)),s=ge(n,1);s.a=0&&c!=t))throw M(new Gn(Vy));for(r=0,h=0;h$(Tf(s.g,s.d[0]).a)?(oe(h.b>0),h.a.Xb(h.c=--h.b),Rb(h,s),r=!0):f.e&&f.e.gc()>0&&(c=(!f.e&&(f.e=new Z),f.e).Mc(e),l=(!f.e&&(f.e=new Z),f.e).Mc(t),(c||l)&&((!f.e&&(f.e=new Z),f.e).Fc(s),++s.c));r||Bn(i.c,s)}function OPe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;return d=n.a.i+n.a.g/2,g=n.a.i+n.a.g/2,m=e.i+e.g/2,j=e.j+e.f/2,f=new V(m,j),l=u(z(e,(qe(),N3)),8),l.a=l.a+d,l.b=l.b+g,c=(f.b-l.b)/(f.a-l.a),i=f.b-c*f.a,k=t.i+t.g/2,A=t.j+t.f/2,h=new V(k,A),a=u(z(t,N3),8),a.a=a.a+d,a.b=a.b+g,s=(h.b-a.b)/(h.a-a.a),r=h.b-s*h.a,p=(i-r)/(s-c),l.a>>0,"0"+e.toString(16)),i="\\x"+qo(t,t.length-2,t.length)):n>=hr?(t=(e=n>>>0,"0"+e.toString(16)),i="\\v"+qo(t,t.length-6,t.length)):i=""+String.fromCharCode(n&ui)}return i}function GUn(n){var e,t,i;if(pg(u(v(n,(cn(),Kt)),101)))for(t=new C(n.j);t.a=e.o&&t.f<=e.f||e.a*.5<=t.f&&e.a*1.5>=t.f){if(s=u(sn(e.n,e.n.c.length-1),209),s.e+s.d+t.g+r<=i&&(c=u(sn(e.n,e.n.c.length-1),209),c.f-n.f+t.f<=n.b||n.a.c.length==1))return xY(e,t),!0;if(e.s+t.g<=i&&(e.t+e.d+t.f+r<=n.b||n.a.c.length==1))return nn(e.b,t),f=u(sn(e.n,e.n.c.length-1),209),nn(e.n,new NM(e.s,f.f+f.a+e.i,e.i)),gZ(u(sn(e.n,e.n.c.length-1),209),t),RUn(e,t),!0}return!1}function XUn(n,e,t){var i,r,c,s;return n.Pj()?(r=null,c=n.Qj(),i=n.Ij(1,s=d$(n,e,t),t,e,c),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))?(s!=null&&(r=n.Oj(s,r)),r=n.Nj(t,r),n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):(n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)),s):(s=d$(n,e,t),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))&&(r=null,s!=null&&(r=n.Oj(s,null)),r=n.Nj(t,r),r&&r.oj()),s)}function BPe(n,e){var t,i,r,c,s;if(e.Ug("Path-Like Graph Wrapping",1),n.b.c.length==0){e.Vg();return}if(r=new znn(n),s=(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)*r.f),t=s/(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)),r.b>t){e.Vg();return}switch(u(v(n,(cn(),LH)),351).g){case 2:c=new JU;break;case 0:c=new XU;break;default:c=new QU}if(i=c.og(n,r),!c.pg())switch(u(v(n,jI),352).g){case 2:i=F_n(r,i);break;case 1:i=SKn(r,i)}LIe(n,r,i),e.Vg()}function G5(n,e){var t,i,r,c,s,f,h,l;e%=24,n.q.getHours()!=e&&(i=new y.Date(n.q.getTime()),i.setDate(i.getDate()+1),f=n.q.getTimezoneOffset()-i.getTimezoneOffset(),f>0&&(h=f/60|0,l=f%60,r=n.q.getDate(),t=n.q.getHours(),t+h>=24&&++r,c=new y.Date(n.q.getFullYear(),n.q.getMonth(),r,e+h,n.q.getMinutes()+l,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),s=n.q.getTime(),n.q.setTime(s+36e5),n.q.getHours()!=e&&n.q.setTime(s)}function RPe(n,e){var t,i,r,c;if(Y2e(n.d,n.e),n.c.a.$b(),$(R(v(e.j,(cn(),hI))))!=0||$(R(v(e.j,hI)))!=0)for(t=t2,x(v(e.j,Yh))!==x((lh(),k1))&&U(e.j,(W(),va),(_n(),!0)),c=u(v(e.j,Q8),17).a,r=0;rr&&++l,nn(s,(Ln(f+l,e.c.length),u(e.c[f+l],17))),h+=(Ln(f+l,e.c.length),u(e.c[f+l],17)).a-i,++t;t=j&&n.e[h.p]>m*n.b||D>=t*j)&&(Bn(g.c,f),f=new Z,Bi(s,c),c.a.$b(),l-=a,p=y.Math.max(p,l*n.b+k),l+=D,I=D,D=0,a=0,k=0);return new bi(p,g)}function $F(n){var e,t,i,r,c,s,f;if(!n.d){if(f=new jvn,e=x9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ce(i),29),Bt(f,$F(t));e.a.Bc(n)!=null,e.a.gc()==0}for(s=f.i,r=(!n.q&&(n.q=new q(As,n,11,10)),new ne(n.q));r.e!=r.i.gc();++s)u(ce(r),411);Bt(f,(!n.q&&(n.q=new q(As,n,11,10)),n.q)),ew(f),n.d=new gg((u(L(_((G1(),Hn).o),9),19),f.i),f.g),n.e=u(f.g,688),n.e==null&&(n.e=Joe),Zu(n).b&=-17}return n.d}function Om(n,e,t,i){var r,c,s,f,h,l;if(l=ru(n.e.Dh(),e),h=0,r=u(n.g,124),dr(),u(e,69).xk()){for(s=0;s1||m==-1)if(d=u(k,71),g=u(a,71),d.dc())g.$b();else for(s=!!br(e),c=0,f=n.a?d.Kc():d.Ii();f.Ob();)l=u(f.Pb(),58),r=u(Lf(n,l),58),r?(s?(h=g.dd(r),h==-1?g.Gi(c,r):c!=h&&g.Ui(c,r)):g.Gi(c,r),++c):n.b&&!s&&(g.Gi(c,l),++c);else k==null?a.Wb(null):(r=Lf(n,k),r==null?n.b&&!br(e)&&a.Wb(k):a.Wb(r))}function UPe(n,e){var t,i,r,c,s,f,h,l;for(t=new ogn,r=new te(re(ji(e).a.Kc(),new En));pe(r);)if(i=u(fe(r),18),!fr(i)&&(f=i.c.i,YZ(f,MP))){if(l=pen(n,f,MP,CP),l==-1)continue;t.b=y.Math.max(t.b,l),!t.a&&(t.a=new Z),nn(t.a,f)}for(s=new te(re(Qt(e).a.Kc(),new En));pe(s);)if(c=u(fe(s),18),!fr(c)&&(h=c.d.i,YZ(h,CP))){if(l=pen(n,h,CP,MP),l==-1)continue;t.d=y.Math.max(t.d,l),!t.c&&(t.c=new Z),nn(t.c,h)}return t}function GPe(n,e,t,i){var r,c,s,f,h,l,a;if(t.d.i!=e.i){for(r=new Tl(n),_a(r,(Vn(),Mi)),U(r,(W(),st),t),U(r,(cn(),Kt),(Oi(),qc)),Bn(i.c,r),s=new Pc,ic(s,r),gi(s,(tn(),Wn)),f=new Pc,ic(f,r),gi(f,Zn),a=t.d,Ii(t,s),c=new E0,Ur(c,t),U(c,Fr,null),Zi(c,f),Ii(c,a),l=new xi(t.b,0);l.b1e6)throw M(new _E("power of ten too big"));if(n<=et)return Fp(ry(m3[1],e),e);for(i=ry(m3[1],et),r=i,t=vc(n-et),e=wi(n%et);Ec(t,et)>0;)r=Pg(r,i),t=bs(t,et);for(r=Pg(r,ry(m3[1],e)),r=Fp(r,et),t=vc(n-et);Ec(t,et)>0;)r=Fp(r,et),t=bs(t,et);return r=Fp(r,e),r}function WUn(n){var e,t,i,r,c,s,f,h,l,a;for(h=new C(n.a);h.al&&i>l)a=f,l=$(e.p[f.p])+$(e.d[f.p])+f.o.b+f.d.a;else{r=!1,t._g()&&t.bh("bk node placement breaks on "+f+" which should have been after "+a);break}if(!r)break}return t._g()&&t.bh(e+" is feasible: "+r),r}function qen(n,e,t,i){var r,c,s,f,h,l,a,d,g;if(c=new Tl(n),_a(c,(Vn(),_c)),U(c,(cn(),Kt),(Oi(),qc)),r=0,e){for(s=new Pc,U(s,(W(),st),e),U(c,st,e.i),gi(s,(tn(),Wn)),ic(s,c),g=fh(e.e),l=g,a=0,d=l.length;a0){if(r<0&&a.a&&(r=h,c=l[0],i=0),r>=0){if(f=a.b,h==r&&(f-=i++,f==0))return 0;if(!ZGn(e,l,a,f,s)){h=r-1,l[0]=c;continue}}else if(r=-1,!ZGn(e,l,a,0,s))return 0}else{if(r=-1,Xi(a.c,0)==32){if(d=l[0],n$n(e,l),l[0]>d)continue}else if(Lge(e,a.c,l[0])){l[0]+=a.c.length;continue}return 0}return $De(s,t)?l[0]:0}function QPe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new dM(new B9n(t)),f=K(so,Xh,28,n.f.e.c.length,16,1),TW(f,f.length),t[e.a]=0,l=new C(n.f.e);l.a=0&&!Rg(n,a,d);)--d;r[a]=d}for(p=0;p=0&&!Rg(n,f,m);)--f;c[m]=f}for(h=0;he[g]&&gi[h]&&xA(n,h,g,!1,!0)}function Uen(n){var e,t,i,r,c,s,f,h;t=on(un(v(n,(qs(),XYn)))),c=n.a.c.d,f=n.a.d.d,t?(s=rh(mi(new V(f.a,f.b),c),.5),h=rh(Ki(n.e),.5),e=mi(tt(new V(c.a,c.b),s),h),ZX(n.d,e)):(r=$(R(v(n.a,tZn))),i=n.d,c.a>=f.a?c.b>=f.b?(i.a=f.a+(c.a-f.a)/2+r,i.b=f.b+(c.b-f.b)/2-r-n.e.b):(i.a=f.a+(c.a-f.a)/2+r,i.b=c.b+(f.b-c.b)/2+r):c.b>=f.b?(i.a=c.a+(f.a-c.a)/2+r,i.b=f.b+(c.b-f.b)/2+r):(i.a=c.a+(f.a-c.a)/2+r,i.b=c.b+(f.b-c.b)/2-r-n.e.b))}function X5(n){var e,t,i,r,c,s,f,h;if(!n.f){if(h=new iG,f=new iG,e=x9,s=e.a.zc(n,e),s==null){for(c=new ne(Hr(n));c.e!=c.i.gc();)r=u(ce(c),29),Bt(h,X5(r));e.a.Bc(n)!=null,e.a.gc()==0}for(i=(!n.s&&(n.s=new q(ku,n,21,17)),new ne(n.s));i.e!=i.i.gc();)t=u(ce(i),179),O(t,102)&&ve(f,u(t,19));ew(f),n.r=new _Sn(n,(u(L(_((G1(),Hn).o),6),19),f.i),f.g),Bt(h,n.r),ew(h),n.f=new gg((u(L(_(Hn.o),5),19),h.i),h.g),Zu(n).b&=-3}return n.f}function QUn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ra,jd),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new Bbn))),Q(n,jd,WB,rn(aon)),Q(n,jd,JB,rn(g_)),Q(n,jd,l3,rn(DYn)),Q(n,jd,W0,rn(lon)),Q(n,jd,Dtn,rn(xYn)),Q(n,jd,Ltn,rn($Yn)),Q(n,jd,Otn,rn(FYn)),Q(n,jd,Ntn,rn(NYn)),Q(n,jd,_tn,rn(LYn)),Q(n,jd,Htn,rn(w_)),Q(n,jd,qtn,rn(hon)),Q(n,jd,Utn,rn(pP))}function KA(){KA=F,Ddn=S(T(fs,1),gh,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),Toe=new RegExp(`[ +\r\f]+`);try{L9=S(T(LNe,1),Fn,2114,0,[new W9((kX(),zT("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",D7((KE(),KE(),P8))))),new W9(zT("yyyy-MM-dd'T'HH:mm:ss'.'SSS",D7(P8))),new W9(zT("yyyy-MM-dd'T'HH:mm:ss",D7(P8))),new W9(zT("yyyy-MM-dd'T'HH:mm",D7(P8))),new W9(zT("yyyy-MM-dd",D7(P8)))])}catch(n){if(n=It(n),!O(n,82))throw M(n)}}function ZPe(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=Cen(n,e),i==0&&on(un(v(e.j,(W(),va)))))return 0;!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,y2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,va))),sy(n,e,r,!0),on(un(v(e.j,y2)))&&U(e.j,y2,(_n(),!1)),on(un(v(e.j,va)))&&(U(e.j,va,(_n(),!1)),U(e.j,y2,!0)),t=Cen(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=Cen(n,e)}while(c>t);return c}function YUn(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=kA(n,e),i==0&&on(un(v(e.j,(W(),va)))))return 0;!on(un(v(e.j,(W(),va))))&&!on(un(v(e.j,y2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,va))),sy(n,e,r,!0),on(un(v(e.j,y2)))&&U(e.j,y2,(_n(),!1)),on(un(v(e.j,va)))&&(U(e.j,va,(_n(),!1)),U(e.j,y2,!0)),t=kA(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=kA(n,e)}while(c>t);return c}function Gen(n,e,t,i){var r,c,s,f,h,l,a,d,g;return h=mi(new V(t.a,t.b),n),l=h.a*e.b-h.b*e.a,a=e.a*i.b-e.b*i.a,d=(h.a*i.b-h.b*i.a)/a,g=l/a,a==0?l==0?(r=tt(new V(t.a,t.b),rh(new V(i.a,i.b),.5)),c=W1(n,r),s=W1(tt(new V(n.a,n.b),e),r),f=y.Math.sqrt(i.a*i.a+i.b*i.b)*.5,c=0&&d<=1&&g>=0&&g<=1?tt(new V(n.a,n.b),rh(new V(e.a,e.b),d)):null}function nIe(n,e,t){var i,r,c,s,f;if(i=u(v(n,(cn(),kH)),21),t.a>e.a&&(i.Hc((wd(),m9))?n.c.a+=(t.a-e.a)/2:i.Hc(v9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),y9))?n.c.b+=(t.b-e.b)/2:i.Hc(k9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(f=new C(n.a);f.ae.a&&(i.Hc((wd(),m9))?n.c.a+=(t.a-e.a)/2:i.Hc(v9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),y9))?n.c.b+=(t.b-e.b)/2:i.Hc(k9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(s=new C(n.a);s.a0?n.i:0)>e&&h>0&&(c=0,s+=h+n.i,r=y.Math.max(r,g),i+=h+n.i,h=0,g=0,t&&(++d,nn(n.n,new NM(n.s,s,n.i))),f=0),g+=l.g+(f>0?n.i:0),h=y.Math.max(h,l.f),t&&gZ(u(sn(n.n,d),209),l),c+=l.g+(f>0?n.i:0),++f;return r=y.Math.max(r,g),i+=h,t&&(n.r=r,n.d=i,kZ(n.j)),new Ho(n.s,n.t,r,i)}function xF(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(n.b=!1,d=St,h=li,g=St,l=li,i=n.e.a.ec().Kc();i.Ob();)for(t=u(i.Pb(),272),r=t.a,d=y.Math.min(d,r.c),h=y.Math.max(h,r.c+r.b),g=y.Math.min(g,r.d),l=y.Math.max(l,r.d+r.a),s=new C(t.c);s.an.o.a&&(a=(h-n.o.a)/2,f.b=y.Math.max(f.b,a),f.c=y.Math.max(f.c,a))}}function rIe(n){var e,t,i,r,c,s,f,h;for(c=new XOn,$le(c,(qp(),due)),i=(r=S$(n,K(fn,J,2,0,6,1)),new Xv(new Ku(new SD(n,r).b)));i.bf?1:-1:hY(n.a,e.a,c),r==-1)d=-h,a=s==h?ZN(e.a,f,n.a,c):e$(e.a,f,n.a,c);else if(d=s,s==h){if(r==0)return dh(),O8;a=ZN(n.a,c,e.a,f)}else a=e$(n.a,c,e.a,f);return l=new Qa(d,a.length,a),Q6(l),l}function cIe(n,e){var t,i,r,c;if(c=$Un(e),!e.c&&(e.c=new q(Qu,e,9,9)),qt(new Tn(null,(!e.c&&(e.c=new q(Qu,e,9,9)),new In(e.c,16))),new H9n(c)),r=u(v(c,(W(),Hc)),21),QOe(e,r),r.Hc((pr(),cs)))for(i=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));i.e!=i.i.gc();)t=u(ce(i),123),TDe(n,e,c,t);return u(z(e,(cn(),xd)),181).gc()!=0&&Aqn(e,c),on(un(v(c,ahn)))&&r.Fc(eI),kt(c,Mj)&&xjn(new XY($(R(v(c,Mj)))),c),x(z(e,Bw))===x((jl(),M1))?JLe(n,e,c):NLe(n,e,c),c}function uIe(n){var e,t,i,r,c,s,f,h;for(r=new C(n.b);r.a0?qo(t.a,0,c-1):""):(Fi(0,c-1,n.length),n.substr(0,c-1)):t?t.a:n}function oIe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Sort By Input Model "+v(n,(cn(),Yh)),1),r=0,i=new C(n.b);i.a=n.b.length?(c[r++]=s.b[i++],c[r++]=s.b[i++]):i>=s.b.length?(c[r++]=n.b[t++],c[r++]=n.b[t++]):s.b[i]0?n.i:0)),++e;for(IY(n.n,h),n.d=t,n.r=i,n.g=0,n.f=0,n.e=0,n.o=St,n.p=St,c=new C(n.b);c.a0&&(r=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!r||Be(Be((e.a+=' "',e),r),'"'))),t=(!n.b&&(n.b=new Nn(he,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new Nn(he,n,5,8)),n.c.i<=1))),t?e.a+=" [":e.a+=" ",Be(e,RX(new yD,new ne(n.b))),t&&(e.a+="]"),e.a+=iR,t&&(e.a+="["),Be(e,RX(new yD,new ne(n.c))),t&&(e.a+="]"),e.a)}function fIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(H=n.c,X=e.c,t=qr(H.a,n,0),i=qr(X.a,e,0),D=u(F0(n,(gr(),Vu)).Kc().Pb(),12),kn=u(F0(n,Jc).Kc().Pb(),12),N=u(F0(e,Vu).Kc().Pb(),12),Rn=u(F0(e,Jc).Kc().Pb(),12),A=fh(D.e),en=fh(kn.g),I=fh(N.e),jn=fh(Rn.g),uw(n,i,X),s=I,a=0,m=s.length;aa?new ed((lf(),zw),t,e,l-a):l>0&&a>0&&(new ed((lf(),zw),e,t,0),new ed(zw,t,e,0))),s)}function aIe(n,e,t){var i,r,c;for(n.a=new Z,c=ge(e.b,0);c.b!=c.d.c;){for(r=u(be(c),40);u(v(r,(lc(),Sh)),17).a>n.a.c.length-1;)nn(n.a,new bi(t2,Arn));i=u(v(r,Sh),17).a,t==(ci(),Br)||t==Xr?(r.e.a<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.a),r.e.a+r.f.a>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.a+r.f.a)):(r.e.b<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.b),r.e.b+r.f.b>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.b+r.f.b))}}function eGn(n,e,t,i){var r,c,s,f,h,l,a;if(c=KT(i),f=on(un(v(i,(cn(),uhn)))),(f||on(un(v(n,wI))))&&!pg(u(v(n,Kt),101)))r=zp(c),h=Nen(n,t,t==(gr(),Jc)?r:Bk(r));else switch(h=new Pc,ic(h,n),e?(a=h.n,a.a=e.a-n.n.a,a.b=e.b-n.n.b,o_n(a,0,0,n.o.a,n.o.b),gi(h,jUn(h,c))):(r=zp(c),gi(h,t==(gr(),Jc)?r:Bk(r))),s=u(v(i,(W(),Hc)),21),l=h.j,c.g){case 2:case 1:(l==(tn(),Xn)||l==ae)&&s.Fc((pr(),m2));break;case 4:case 3:(l==(tn(),Zn)||l==Wn)&&s.Fc((pr(),m2))}return h}function tGn(n,e){var t,i,r,c,s,f;for(s=new sd(new qa(n.f.b).a);s.b;){if(c=L0(s),r=u(c.ld(),602),e==1){if(r.Af()!=(ci(),us)&&r.Af()!=Vf)continue}else if(r.Af()!=(ci(),Br)&&r.Af()!=Xr)continue;switch(i=u(u(c.md(),42).b,86),f=u(u(c.md(),42).a,194),t=f.c,r.Af().g){case 2:i.g.c=n.e.a,i.g.b=y.Math.max(1,i.g.b+t);break;case 1:i.g.c=i.g.c+t,i.g.b=y.Math.max(1,i.g.b-t);break;case 4:i.g.d=n.e.b,i.g.a=y.Math.max(1,i.g.a+t);break;case 3:i.g.d=i.g.d+t,i.g.a=y.Math.max(1,i.g.a-t)}}}function dIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(f=K(ye,Ke,28,e.b.c.length,15,1),l=K(D_,G,273,e.b.c.length,0,1),h=K(Qh,b1,10,e.b.c.length,0,1),d=n.a,g=0,p=d.length;g0&&h[i]&&(m=yg(n.b,h[i],r)),k=y.Math.max(k,r.c.c.b+m);for(c=new C(a.e);c.a1)throw M(new Gn(Zy));h||(c=Fh(e,i.Kc().Pb()),s.Fc(c))}return JQ(n,pnn(n,e,t),s)}function HA(n,e,t){var i,r,c,s,f,h,l,a;if(Sl(n.e,e))h=(dr(),u(e,69).xk()?new eM(e,n):new j7(e,n)),jA(h.c,h.b),I6(h,u(t,16));else{for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s"}h!=null&&(e.a+=""+h)}else n.e?(f=n.e.zb,f!=null&&(e.a+=""+f)):(e.a+="?",n.b?(e.a+=" super ",_F(n.b,e)):n.f&&(e.a+=" extends ",_F(n.f,e)))}function mIe(n){n.b=null,n.a=null,n.o=null,n.q=null,n.v=null,n.w=null,n.B=null,n.p=null,n.Q=null,n.R=null,n.S=null,n.T=null,n.U=null,n.V=null,n.W=null,n.bb=null,n.eb=null,n.ab=null,n.H=null,n.db=null,n.c=null,n.d=null,n.f=null,n.n=null,n.r=null,n.s=null,n.u=null,n.G=null,n.J=null,n.e=null,n.j=null,n.i=null,n.g=null,n.k=null,n.t=null,n.F=null,n.I=null,n.L=null,n.M=null,n.O=null,n.P=null,n.$=null,n.N=null,n.Z=null,n.cb=null,n.K=null,n.D=null,n.A=null,n.C=null,n._=null,n.fb=null,n.X=null,n.Y=null,n.gb=!1,n.hb=!1}function vIe(n){var e,t,i,r;if(i=ZF((!n.c&&(n.c=Y7(vc(n.f))),n.c),0),n.e==0||n.a==0&&n.f!=-1&&n.e<0)return i;if(e=xQ(n)<0?1:0,t=n.e,r=(i.length+1+y.Math.abs(wi(n.e)),new lp),e==1&&(r.a+="-"),n.e>0)if(t-=i.length-e,t>=0){for(r.a+="0.";t>Id.length;t-=Id.length)QSn(r,Id);$An(r,Id,wi(t)),Be(r,(zn(e,i.length+1),i.substr(e)))}else t=e-t,Be(r,qo(i,e,wi(t))),r.a+=".",Be(r,$W(i,wi(t)));else{for(Be(r,(zn(e,i.length+1),i.substr(e)));t<-Id.length;t+=Id.length)QSn(r,Id);$An(r,Id,wi(-t))}return r.a}function HF(n){var e,t,i,r,c,s,f,h,l;return!(n.k!=(Vn(),zt)||n.j.c.length<=1||(c=u(v(n,(cn(),Kt)),101),c==(Oi(),qc))||(r=(cw(),(n.q?n.q:(Dn(),Dn(),Wh))._b(db)?i=u(v(n,db),203):i=u(v(Hi(n),W8),203),i),r==TI)||!(r==S2||r==A2)&&(s=$(R(rw(n,J8))),e=u(v(n,Aj),140),!e&&(e=new mV(s,s,s,s)),l=uc(n,(tn(),Wn)),h=e.d+e.a+(l.gc()-1)*s,h>n.o.b||(t=uc(n,Zn),f=e.d+e.a+(t.gc()-1)*s,f>n.o.b)))}function kIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;e.Ug("Orthogonal edge routing",1),l=$(R(v(n,(cn(),T2)))),t=$(R(v(n,C2))),i=$(R(v(n,Bd))),g=new lN(0,t),j=0,s=new xi(n.b,0),f=null,a=null,h=null,d=null;do a=s.b0?(p=(m-1)*t,f&&(p+=i),a&&(p+=i),pe||on(un(z(h,(Bf(),Kj)))))&&(r=0,c+=a.b+t,Bn(d.c,a),a=new dJ(c,t),i=new U$(0,a.f,a,t),wT(a,i),r=0),i.b.c.length==0||!on(un(z(At(h),(Bf(),Lq))))&&(h.f>=i.o&&h.f<=i.f||i.a*.5<=h.f&&i.a*1.5>=h.f)?xY(i,h):(s=new U$(i.s+i.r+t,a.f,a,t),wT(a,s),xY(s,h)),r=h.i+h.g;return Bn(d.c,a),d}function W5(n){var e,t,i,r;if(!(n.b==null||n.b.length<=2)&&!n.a){for(e=0,r=0;r=n.b[r+1])r+=2;else if(t0)for(i=new _u(u(ot(n.a,c),21)),Dn(),Yt(i,new LG(e)),r=new xi(c.b,0);r.b0&&i>=-6?i>=0?M7(c,t-wi(n.e),"."):(L$(c,e-1,e-1,"0."),M7(c,e+1,hh(Id,0,-wi(i)-1))):(t-e>=1&&(M7(c,e,"."),++t),M7(c,t,"E"),i>0&&M7(c,++t,"+"),M7(c,++t,""+H6(vc(i)))),n.g=c.a,n.g))}function IIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;i=$(R(v(e,(cn(),fhn)))),H=u(v(e,Q8),17).a,g=4,r=3,X=20/H,p=!1,h=0,s=et;do{for(c=h!=1,d=h!=0,en=0,j=n.a,I=0,N=j.length;IH)?(h=2,s=et):h==0?(h=1,s=en):(h=0,s=en)):(p=en>=s||s-en0?1:s0(isNaN(i),isNaN(0)))>=0^(Rs(jh),(y.Math.abs(f)<=jh||f==0||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:s0(isNaN(f),isNaN(0)))>=0)?y.Math.max(f,i):(Rs(jh),(y.Math.abs(i)<=jh||i==0||isNaN(i)&&isNaN(0)?0:i<0?-1:i>0?1:s0(isNaN(i),isNaN(0)))>0?y.Math.sqrt(f*f+i*i):-y.Math.sqrt(f*f+i*i))}function pd(n,e){var t,i,r,c,s,f;if(e){if(!n.a&&(n.a=new BE),n.e==2){FE(n.a,e);return}if(e.e==1){for(r=0;r=hr?Er(t,$Y(i)):T4(t,i&ui),s=new IN(10,null,0),wwe(n.a,s,f-1)):(t=(s.Mm().length+c,new r6),Er(t,s.Mm())),e.e==0?(i=e.Km(),i>=hr?Er(t,$Y(i)):T4(t,i&ui)):Er(t,e.Mm()),u(s,530).b=t.a}}function LIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(!t.dc()){for(f=0,g=0,i=t.Kc(),m=u(i.Pb(),17).a;f1&&(h=l.Hg(h,n.a,f));return h.c.length==1?u(sn(h,h.c.length-1),238):h.c.length==2?jIe((Ln(0,h.c.length),u(h.c[0],238)),(Ln(1,h.c.length),u(h.c[1],238)),s,c):null}function BIe(n,e,t){var i,r,c,s,f,h,l;for(t.Ug("Find roots",1),n.a.c.length=0,r=ge(e.b,0);r.b!=r.d.c;)i=u(be(r),40),i.b.b==0&&(U(i,(pt(),Ca),(_n(),!0)),nn(n.a,i));switch(n.a.c.length){case 0:c=new q$(0,e,"DUMMY_ROOT"),U(c,(pt(),Ca),(_n(),!0)),U(c,tq,!0),xe(e.b,c);break;case 1:break;default:for(s=new q$(0,e,IS),h=new C(n.a);h.a=y.Math.abs(i.b)?(i.b=0,c.d+c.a>s.d&&c.ds.c&&c.c0){if(e=new gX(n.i,n.g),t=n.i,c=t<100?null:new F1(t),n.Tj())for(i=0;i0){for(f=n.g,l=n.i,t5(n),c=l<100?null:new F1(l),i=0;i>13|(n.m&15)<<9,r=n.m>>4&8191,c=n.m>>17|(n.h&255)<<5,s=(n.h&1048320)>>8,f=e.l&8191,h=e.l>>13|(e.m&15)<<9,l=e.m>>4&8191,a=e.m>>17|(e.h&255)<<5,d=(e.h&1048320)>>8,jn=t*f,kn=i*f,Rn=r*f,Kn=c*f,ue=s*f,h!=0&&(kn+=t*h,Rn+=i*h,Kn+=r*h,ue+=c*h),l!=0&&(Rn+=t*l,Kn+=i*l,ue+=r*l),a!=0&&(Kn+=t*a,ue+=i*a),d!=0&&(ue+=t*d),p=jn&ro,m=(kn&511)<<13,g=p+m,j=jn>>22,A=kn>>9,I=(Rn&262143)<<4,D=(Kn&31)<<17,k=j+A+I+D,H=Rn>>18,X=Kn>>5,en=(ue&4095)<<8,N=H+X+en,k+=g>>22,g&=ro,N+=k>>22,k&=ro,N&=Il,Yc(g,k,N)}function dGn(n){var e,t,i,r,c,s,f;if(f=u(sn(n.j,0),12),f.g.c.length!=0&&f.e.c.length!=0)throw M(new Or("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(f.g.c.length!=0){for(c=St,t=new C(f.g);t.a4)if(n.fk(e)){if(n.al()){if(r=u(e,54),i=r.Eh(),h=i==n.e&&(n.ml()?r.yh(r.Fh(),n.il())==n.jl():-1-r.Fh()==n.Lj()),n.nl()&&!h&&!i&&r.Jh()){for(c=0;c0&&b_n(n,f,d);for(r=new C(d);r.an.d[s.p]&&(t+=SJ(n.b,c)*u(h.b,17).a,V1(n.a,Y(c)));for(;!i6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function qIe(n,e){var t,i,r,c,s,f,h,l,a,d;if(a=u(v(n,(W(),gc)),64),i=u(sn(n.j,0),12),a==(tn(),Xn)?gi(i,ae):a==ae&&gi(i,Xn),u(v(e,(cn(),xd)),181).Hc((go(),Gd))){if(h=$(R(v(n,Av))),l=$(R(v(n,Sv))),s=$(R(v(n,qw))),f=u(v(e,_w),21),f.Hc((zu(),Fl)))for(t=l,d=n.o.a/2-i.n.a,c=new C(i.f);c.a0&&(l=n.n.a/c);break;case 2:case 4:r=n.i.o.b,r>0&&(l=n.n.b/r)}U(n,(W(),fb),l)}if(h=n.o,s=n.a,i)s.a=i.a,s.b=i.b,n.d=!0;else if(e!=Jf&&e!=Sa&&f!=sc)switch(f.g){case 1:s.a=h.a/2;break;case 2:s.a=h.a,s.b=h.b/2;break;case 3:s.a=h.a/2,s.b=h.b;break;case 4:s.b=h.b/2}else s.a=h.a/2,s.b=h.b/2}function J5(n){var e,t,i,r,c,s,f,h,l,a;if(n.Pj())if(a=n.Ej(),h=n.Qj(),a>0)if(e=new KQ(n.pj()),t=a,c=t<100?null:new F1(t),I7(n,t,e.g),r=t==1?n.Ij(4,L(e,0),null,0,h):n.Ij(6,e,null,-1,h),n.Mj()){for(i=new ne(e);i.e!=i.i.gc();)c=n.Oj(ce(i),c);c?(c.nj(r),c.oj()):n.Jj(r)}else c?(c.nj(r),c.oj()):n.Jj(r);else I7(n,n.Ej(),n.Fj()),n.Jj(n.Ij(6,(Dn(),sr),null,-1,h));else if(n.Mj())if(a=n.Ej(),a>0){for(f=n.Fj(),l=a,I7(n,a,f),c=l<100?null:new F1(l),i=0;i1&&Su(s)*ao(s)/2>f[0]){for(c=0;cf[c];)++c;m=new Jl(k,0,c+1),d=new hT(m),a=Su(s)/ao(s),h=QF(d,e,new cp,t,i,r,a),tt(sf(d.e),h),Mp(ym(g,d),_m),p=new Jl(k,c+1,k.c.length),CZ(g,p),k.c.length=0,l=0,bPn(f,f.length,0)}else j=g.b.c.length==0?null:sn(g.b,0),j!=null&&M$(g,0),l>0&&(f[l]=f[l-1]),f[l]+=Su(s)*ao(s),++l,Bn(k.c,s);return k}function WIe(n,e){var t,i,r,c;t=e.b,c=new _u(t.j),r=0,i=t.j,i.c.length=0,g0(u(od(n.b,(tn(),Xn),(D0(),ub)),15),t),r=qk(c,r,new bpn,i),g0(u(od(n.b,Xn,ma),15),t),r=qk(c,r,new opn,i),g0(u(od(n.b,Xn,cb),15),t),g0(u(od(n.b,Zn,ub),15),t),g0(u(od(n.b,Zn,ma),15),t),r=qk(c,r,new wpn,i),g0(u(od(n.b,Zn,cb),15),t),g0(u(od(n.b,ae,ub),15),t),r=qk(c,r,new gpn,i),g0(u(od(n.b,ae,ma),15),t),r=qk(c,r,new ppn,i),g0(u(od(n.b,ae,cb),15),t),g0(u(od(n.b,Wn,ub),15),t),r=qk(c,r,new hpn,i),g0(u(od(n.b,Wn,ma),15),t),g0(u(od(n.b,Wn,cb),15),t)}function JIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;for(f=new C(e);f.a.5?A-=s*2*(m-.5):m<.5&&(A+=c*2*(.5-m)),r=f.d.b,Aj.a-k-a&&(A=j.a-k-a),f.n.a=e+A}}function nOe(n){var e,t,i,r,c;if(i=u(v(n,(cn(),ou)),171),i==(Yo(),ka)){for(t=new te(re(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),!SLn(e))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(i==xw){for(c=new te(re(Qt(n).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),!SLn(r))throw M(new _l(oR+Gk(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function gy(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(n.e&&n.c.c>19&&(e=tm(e),h=!h),s=BMe(e),c=!1,r=!1,i=!1,n.h==Ty&&n.m==0&&n.l==0)if(r=!0,c=!0,s==-1)n=nTn((R4(),hun)),i=!0,h=!h;else return f=Xnn(n,s),h&&H$(f),t&&(ba=Yc(0,0,0)),f;else n.h>>19&&(c=!0,n=tm(n),i=!0,h=!h);return s!=-1?d6e(n,s,h,c,t):DZ(n,e)<0?(t&&(c?ba=tm(n):ba=Yc(n.l,n.m,n.h)),Yc(0,0,0)):$Se(i?n:Yc(n.l,n.m,n.h),e,h,c,r,t)}function zF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(s=n.e,h=e.e,s==0)return e;if(h==0)return n;if(c=n.d,f=e.d,c+f==2)return t=vi(n.a[0],mr),i=vi(e.a[0],mr),s==h?(a=nr(t,i),m=Ae(a),p=Ae(U1(a,32)),p==0?new gl(s,m):new Qa(s,2,S(T(ye,1),Ke,28,15,[m,p]))):(dh(),AC(s<0?bs(i,t):bs(t,i),0)?ta(s<0?bs(i,t):bs(t,i)):G6(ta(n1(s<0?bs(i,t):bs(t,i)))));if(s==h)g=s,d=c>=f?e$(n.a,c,e.a,f):e$(e.a,f,n.a,c);else{if(r=c!=f?c>f?1:-1:hY(n.a,e.a,c),r==0)return dh(),O8;r==1?(g=s,d=ZN(n.a,c,e.a,f)):(g=h,d=ZN(e.a,f,n.a,c))}return l=new Qa(g,d.length,d),Q6(l),l}function tOe(n,e){var t,i,r,c,s,f,h;if(!(n.g>e.f||e.g>n.f)){for(t=0,i=0,s=n.w.a.ec().Kc();s.Ob();)r=u(s.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&++t;for(f=n.r.a.ec().Kc();f.Ob();)r=u(f.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&--t;for(h=e.w.a.ec().Kc();h.Ob();)r=u(h.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=e.r.a.ec().Kc();c.Ob();)r=u(c.Pb(),12),nx(cc(S(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;t=0)return t;switch(y0(Lr(n,t))){case 2:{if(An("",r1(n,t.qk()).xe())){if(h=G7(Lr(n,t)),f=P4(Lr(n,t)),a=Qnn(n,e,h,f),a)return a;for(r=Aen(n,e),s=0,d=r.gc();s1)throw M(new Gn(Zy));for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s1,l=new Of(g.b);tc(l.a)||tc(l.b);)h=u(tc(l.a)?E(l.a):E(l.b),18),d=h.c==g?h.d:h.c,y.Math.abs(cc(S(T(Ei,1),J,8,0,[d.i.n,d.n,d.a])).b-s.b)>1&&qTe(n,h,s,c,g)}}function sOe(n){var e,t,i,r,c,s;if(r=new xi(n.e,0),i=new xi(n.a,0),n.d)for(t=0;t_R;){for(c=e,s=0;y.Math.abs(e-c)<_R;)++s,e=$((oe(r.b0),r.a.Xb(r.c=--r.b),EPe(n,n.b-s,c,i,r),oe(r.b0),i.a.Xb(i.c=--i.b)}if(!n.d)for(t=0;t0?(n.f[a.p]=p/(a.e.c.length+a.g.c.length),n.c=y.Math.min(n.c,n.f[a.p]),n.b=y.Math.max(n.b,n.f[a.p])):f&&(n.f[a.p]=p)}}function hOe(n){n.b=null,n.bb=null,n.fb=null,n.qb=null,n.a=null,n.c=null,n.d=null,n.e=null,n.f=null,n.n=null,n.M=null,n.L=null,n.Q=null,n.R=null,n.K=null,n.db=null,n.eb=null,n.g=null,n.i=null,n.j=null,n.k=null,n.gb=null,n.o=null,n.p=null,n.q=null,n.r=null,n.$=null,n.ib=null,n.S=null,n.T=null,n.t=null,n.s=null,n.u=null,n.v=null,n.w=null,n.B=null,n.A=null,n.C=null,n.D=null,n.F=null,n.G=null,n.H=null,n.I=null,n.J=null,n.P=null,n.Z=null,n.U=null,n.V=null,n.W=null,n.X=null,n.Y=null,n._=null,n.ab=null,n.cb=null,n.hb=null,n.nb=null,n.lb=null,n.mb=null,n.ob=null,n.pb=null,n.jb=null,n.kb=null,n.N=!1,n.O=!1}function lOe(n,e,t){var i,r,c,s;for(t.Ug("Graph transformation ("+n.a+")",1),s=T0(e.a),c=new C(e.b);c.a=f.b.c)&&(f.b=e),(!f.c||e.c<=f.c.c)&&(f.d=f.c,f.c=e),(!f.e||e.d>=f.e.d)&&(f.e=e),(!f.f||e.d<=f.f.d)&&(f.f=e);return i=new eA((nm(),rb)),Z7(n,IZn,new Ku(S(T(aj,1),Fn,382,0,[i]))),s=new eA(Iw),Z7(n,PZn,new Ku(S(T(aj,1),Fn,382,0,[s]))),r=new eA(Pw),Z7(n,SZn,new Ku(S(T(aj,1),Fn,382,0,[r]))),c=new eA(a2),Z7(n,AZn,new Ku(S(T(aj,1),Fn,382,0,[c]))),pF(i.c,rb),pF(r.c,Pw),pF(c.c,a2),pF(s.c,Iw),f.a.c.length=0,hi(f.a,i.c),hi(f.a,Qo(r.c)),hi(f.a,c.c),hi(f.a,Qo(s.c)),f}function bOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;for(e.Ug(SVn,1),p=$(R(z(n,(_h(),Xw)))),s=$(R(z(n,(Bf(),b9)))),f=u(z(n,d9),107),NQ((!n.a&&(n.a=new q(Qe,n,10,11)),n.a)),a=fGn((!n.a&&(n.a=new q(Qe,n,10,11)),n.a),p,s),!n.a&&(n.a=new q(Qe,n,10,11)),l=new C(a);l.a0&&(n.a=h+(p-1)*c,e.c.b+=n.a,e.f.b+=n.a)),m.a.gc()!=0&&(g=new lN(1,c),p=ntn(g,e,m,k,e.f.b+h-e.c.b),p>0&&(e.f.b+=h+(p-1)*c))}function gGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(a=$(R(v(n,(cn(),wb)))),i=$(R(v(n,vhn))),g=new _O,U(g,wb,a+i),l=e,A=l.d,k=l.c.i,I=l.d.i,j=EX(k.c),D=EX(I.c),r=new Z,d=j;d<=D;d++)f=new Tl(n),_a(f,(Vn(),Mi)),U(f,(W(),st),l),U(f,Kt,(Oi(),qc)),U(f,yI,g),p=u(sn(n.b,d),30),d==j?uw(f,p.a.c.length-t,p):$i(f,p),N=$(R(v(l,m1))),N<0&&(N=0,U(l,m1,N)),f.o.b=N,m=y.Math.floor(N/2),s=new Pc,gi(s,(tn(),Wn)),ic(s,f),s.n.b=m,h=new Pc,gi(h,Zn),ic(h,f),h.n.b=m,Ii(l,s),c=new E0,Ur(c,l),U(c,Fr,null),Zi(c,h),Ii(c,A),ike(f,l,c),Bn(r.c,c),l=c;return r}function XF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(h=u(h1(n,(tn(),Wn)).Kc().Pb(),12).e,p=u(h1(n,Zn).Kc().Pb(),12).g,f=h.c.length,D=Pf(u(sn(n.j,0),12));f-- >0;){for(k=(Ln(0,h.c.length),u(h.c[0],18)),r=(Ln(0,p.c.length),u(p.c[0],18)),I=r.d.e,c=qr(I,r,0),Bpe(k,r.d,c),Zi(r,null),Ii(r,null),m=k.a,e&&xe(m,new rr(D)),i=ge(r.a,0);i.b!=i.d.c;)t=u(be(i),8),xe(m,new rr(t));for(A=k.b,g=new C(r.b);g.as)&&fi(n.b,u(j.b,18));++f}c=s}}}function Qen(n,e){var t;if(e==null||An(e,gu)||e.length==0&&n.k!=(l1(),L3))return null;switch(n.k.g){case 1:return JT(e,nv)?(_n(),ov):JT(e,cK)?(_n(),wa):null;case 2:try{return Y(Ao(e,Wi,et))}catch(i){if(i=It(i),O(i,130))return null;throw M(i)}case 4:try{return sw(e)}catch(i){if(i=It(i),O(i,130))return null;throw M(i)}case 3:return e;case 5:return FFn(n),J_n(n,e);case 6:return FFn(n),wMe(n,n.a,e);case 7:try{return t=TCe(n),t.cg(e),t}catch(i){if(i=It(i),O(i,33))return null;throw M(i)}default:throw M(new Or("Invalid type set for this layout option."))}}function Yen(n){var e;switch(n.d){case 1:{if(n.Sj())return n.o!=-2;break}case 2:{if(n.Sj())return n.o==-2;break}case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(e=n.Rj(),n.p){case 0:return e!=null&&on(un(e))!=M6(n.k,0);case 1:return e!=null&&u(e,222).a!=Ae(n.k)<<24>>24;case 2:return e!=null&&u(e,180).a!=(Ae(n.k)&ui);case 6:return e!=null&&M6(u(e,168).a,n.k);case 5:return e!=null&&u(e,17).a!=Ae(n.k);case 7:return e!=null&&u(e,191).a!=Ae(n.k)<<16>>16;case 3:return e!=null&&$(R(e))!=n.j;case 4:return e!=null&&u(e,161).a!=n.j;default:return e==null?n.n!=null:!rt(e,n.n)}}function py(n,e,t){var i,r,c,s;return n.ol()&&n.nl()&&(s=cN(n,u(t,58)),x(s)!==x(t))?(n.xj(e),n.Dj(e,kNn(n,e,s)),n.al()&&(c=(r=u(t,54),n.ml()?n.kl()?r.Th(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),null):r.Th(n.b,Ot(r.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,null):r.Th(n.b,-1-n.Lj(),null,null)),!u(s,54).Ph()&&(c=(i=u(s,54),n.ml()?n.kl()?i.Rh(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),c):i.Rh(n.b,Ot(i.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,c):i.Rh(n.b,-1-n.Lj(),null,c))),c&&c.oj()),fo(n.b)&&n.Jj(n.Ij(9,t,s,e,!1)),s):t}function pGn(n){var e,t,i,r,c,s,f,h,l,a;for(i=new Z,s=new C(n.e.a);s.a0&&(s=y.Math.max(s,jxn(n.C.b+i.d.b,r))),a=i,d=r,g=c;n.C&&n.C.c>0&&(p=g+n.C.c,l&&(p+=a.d.c),s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(d-1)<=Kf||d==1||isNaN(d)&&isNaN(1)?0:p/(1-d)))),t.n.b=0,t.a.a=s}function vGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p;if(t=u(Cr(n.b,e),127),h=u(u(ot(n.r,e),21),87),h.dc()){t.n.d=0,t.n.a=0;return}for(l=n.u.Hc((zu(),Fl)),s=0,n.A.Hc((go(),Gd))&&Vqn(n,e),f=h.Kc(),a=null,g=0,d=0;f.Ob();)i=u(f.Pb(),117),c=$(R(i.b.of((KC(),bP)))),r=i.b.Mf().b,a?(p=d+a.d.a+n.w+i.d.d,s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(g-c)<=Kf||g==c||isNaN(g)&&isNaN(c)?0:p/(c-g)))):n.C&&n.C.d>0&&(s=y.Math.max(s,jxn(n.C.d+i.d.d,c))),a=i,g=c,d=r;n.C&&n.C.a>0&&(p=d+n.C.a,l&&(p+=a.d.a),s=y.Math.max(s,(Mf(),Rs(Kf),y.Math.abs(g-1)<=Kf||g==1||isNaN(g)&&isNaN(1)?0:p/(1-g)))),t.n.d=0,t.a.b=s}function pOe(n,e,t,i,r,c,s,f){var h,l,a,d,g,p,m,k,j,A;if(m=!1,l=cen(t.q,e.f+e.b-t.q.f),p=i.f>e.b&&f,A=r-(t.q.e+l-s),d=(h=V5(i,A,!1),h.a),p&&d>i.f)return!1;if(p){for(g=0,j=new C(e.d);j.a=(Ln(c,n.c.length),u(n.c[c],186)).e,!p&&d>e.b&&!a)?!1:((a||p||d<=e.b)&&(a&&d>e.b?(t.d=d,sk(t,c_n(t,d))):(EKn(t.q,l),t.c=!0),sk(i,r-(t.s+t.r)),Uk(i,t.q.e+t.q.d,e.f),wT(e,i),n.c.length>c&&(Xk((Ln(c,n.c.length),u(n.c[c],186)),i),(Ln(c,n.c.length),u(n.c[c],186)).a.c.length==0&&Yl(n,c)),m=!0),m)}function kGn(n,e,t){var i,r,c,s,f,h;for(this.g=n,f=e.d.length,h=t.d.length,this.d=K(Qh,b1,10,f+h,0,1),s=0;s0?m$(this,this.f/this.a):Tf(e.g,e.d[0]).a!=null&&Tf(t.g,t.d[0]).a!=null?m$(this,($(Tf(e.g,e.d[0]).a)+$(Tf(t.g,t.d[0]).a))/2):Tf(e.g,e.d[0]).a!=null?m$(this,Tf(e.g,e.d[0]).a):Tf(t.g,t.d[0]).a!=null&&m$(this,Tf(t.g,t.d[0]).a)}function mOe(n,e){var t,i,r,c,s,f,h,l,a,d;for(n.a=new ZPn(n6e(E9)),i=new C(e.a);i.a=1&&(j-s>0&&d>=0?(h.n.a+=k,h.n.b+=c*s):j-s<0&&a>=0&&(h.n.a+=k*j,h.n.b+=c));n.o.a=e.a,n.o.b=e.b,U(n,(cn(),xd),(go(),i=u(uf(I9),9),new _o(i,u($s(i,i.length),9),0)))}function yOe(n,e,t,i,r,c){var s;if(!(e==null||!lx(e,Kdn,_dn)))throw M(new Gn("invalid scheme: "+e));if(!n&&!(t!=null&&th(t,wu(35))==-1&&t.length>0&&(zn(0,t.length),t.charCodeAt(0)!=47)))throw M(new Gn("invalid opaquePart: "+t));if(n&&!(e!=null&&r7(jO,e.toLowerCase()))&&!(t==null||!lx(t,N9,$9)))throw M(new Gn(tJn+t));if(n&&e!=null&&r7(jO,e.toLowerCase())&&!nye(t))throw M(new Gn(tJn+t));if(!u8e(i))throw M(new Gn("invalid device: "+i));if(!U6e(r))throw s=r==null?"invalid segments: null":"invalid segment: "+K6e(r),M(new Gn(s));if(!(c==null||th(c,wu(35))==-1))throw M(new Gn("invalid query: "+c))}function jOe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;if(t.Ug("Network simplex layering",1),n.b=e,A=u(v(e,(cn(),Q8)),17).a*4,j=n.b.a,j.c.length<1){t.Vg();return}for(c=vSe(n,j),k=null,r=ge(c,0);r.b!=r.d.c;){for(i=u(be(r),15),f=A*wi(y.Math.sqrt(i.gc())),s=NSe(i),PF(mz(jhe(vz(BL(s),f),k),!0),t.eh(1)),g=n.b.b,m=new C(s.a);m.a1)for(k=K(ye,Ke,28,n.b.b.c.length,15,1),d=0,l=new C(n.b.b);l.a0){QT(n,t,0),t.a+=String.fromCharCode(i),r=U8e(e,c),QT(n,t,r),c+=r-1;continue}i==39?c+10&&m.a<=0){h.c.length=0,Bn(h.c,m);break}p=m.i-m.d,p>=f&&(p>f&&(h.c.length=0,f=p),Bn(h.c,m))}h.c.length!=0&&(s=u(sn(h,cA(r,h.c.length)),118),D.a.Bc(s)!=null,s.g=a++,Ken(s,e,t,i),h.c.length=0)}for(j=n.c.length+1,g=new C(n);g.ali||e.o==Rd&&a=f&&r<=h)f<=r&&c<=h?(t[a++]=r,t[a++]=c,i+=2):f<=r?(t[a++]=r,t[a++]=h,n.b[i]=h+1,s+=2):c<=h?(t[a++]=f,t[a++]=c,i+=2):(t[a++]=f,t[a++]=h,n.b[i]=h+1);else if(hsa)&&f<10);yz(n.c,new Ybn),CGn(n),pwe(n.c),aOe(n.f)}function OOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=u(v(n,(cn(),Kt)),101),s=n.f,c=n.d,f=s.a+c.b+c.c,h=0-c.d-n.c.b,a=s.b+c.d+c.a-n.c.b,l=new Z,d=new Z,r=new C(e);r.a=2){for(h=ge(t,0),s=u(be(h),8),f=u(be(h),8);f.a0&&Sk(l,!0,(ci(),Xr)),f.k==(Vn(),Zt)&&sIn(l),Xe(n.f,f,e)}}function NOe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(r=u(v(n,(pt(),f9)),27),l=et,a=et,f=Wi,h=Wi,D=ge(n.b,0);D.b!=D.d.c;)A=u(be(D),40),p=A.e,m=A.f,l=y.Math.min(l,p.a-m.a/2),a=y.Math.min(a,p.b-m.b/2),f=y.Math.max(f,p.a+m.a/2),h=y.Math.max(h,p.b+m.b/2);for(g=u(z(r,(lc(),Iln)),107),I=ge(n.b,0);I.b!=I.d.c;)A=u(be(I),40),d=v(A,f9),O(d,207)&&(c=u(d,27),Ro(c,A.e.a,A.e.b),uy(c,A));for(j=ge(n.a,0);j.b!=j.d.c;)k=u(be(j),65),i=u(v(k,f9),74),i&&(e=k.a,t=zg(i,!0,!0),dy(e,t));N=f-l+(g.b+g.c),s=h-a+(g.d+g.a),on(un(z(r,(qe(),Vw))))||G0(r,N,s,!1,!1),ht(r,F2,N-(g.b+g.c)),ht(r,x2,s-(g.d+g.a))}function TGn(n,e){var t,i,r,c,s,f,h,l,a,d;for(h=!0,r=0,l=n.g[e.p],a=e.o.b+n.o,t=n.d[e.p][2],Go(n.b,l,Y(u(sn(n.b,l),17).a-1+t)),Go(n.c,l,$(R(sn(n.c,l)))-a+t*n.f),++l,l>=n.j?(++n.j,nn(n.b,Y(1)),nn(n.c,a)):(i=n.d[e.p][1],Go(n.b,l,Y(u(sn(n.b,l),17).a+1-i)),Go(n.c,l,$(R(sn(n.c,l)))+a-i*n.f)),(n.r==(gs(),Sj)&&(u(sn(n.b,l),17).a>n.k||u(sn(n.b,l-1),17).a>n.k)||n.r==Pj&&($(R(sn(n.c,l)))>n.n||$(R(sn(n.c,l-1)))>n.n))&&(h=!1),s=new te(re(ji(e).a.Kc(),new En));pe(s);)c=u(fe(s),18),f=c.c.i,n.g[f.p]==l&&(d=TGn(n,f),r=r+u(d.a,17).a,h=h&&on(un(d.b)));return n.g[e.p]=l,r=r+n.d[e.p][0],new bi(Y(r),(_n(),!!h))}function AGn(n,e){var t,i,r,c,s;t=$(R(v(e,(cn(),Vs)))),t<2&&U(e,Vs,2),i=u(v(e,Do),88),i==(ci(),Wf)&&U(e,Do,KT(e)),r=u(v(e,Ute),17),r.a==0?U(e,(W(),S3),new dx):U(e,(W(),S3),new qM(r.a)),c=un(v(e,V8)),c==null&&U(e,V8,(_n(),x(v(e,$l))===x((El(),Kv)))),qt(new Tn(null,new In(e.a,16)),new OG(n)),qt(rc(new Tn(null,new In(e.b,16)),new HU),new DG(n)),s=new yGn(e),U(e,(W(),j2),s),U7(n.a),ff(n.a,(Vi(),Xs),u(v(e,Ld),188)),ff(n.a,Jh,u(v(e,$d),188)),ff(n.a,Oc,u(v(e,X8),188)),ff(n.a,Kc,u(v(e,vI),188)),ff(n.a,zr,Nve(u(v(e,$l),223))),MX(n.a,PLe(e)),U(e,wH,gy(n.a,e))}function ntn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A;for(d=new de,s=new Z,T_n(n,t,n.d.Ag(),s,d),T_n(n,i,n.d.Bg(),s,d),n.b=.2*(k=OHn(rc(new Tn(null,new In(s,16)),new F3n)),j=OHn(rc(new Tn(null,new In(s,16)),new B3n)),y.Math.min(k,j)),c=0,f=0;f=2&&(A=JHn(s,!0,g),!n.e&&(n.e=new okn(n)),K8e(n.e,A,s,n.b)),LKn(s,g),KOe(s),p=-1,a=new C(s);a.af)}function SGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(l=St,a=St,f=li,h=li,g=new C(e.i);g.a-1){for(r=ge(f,0);r.b!=r.d.c;)i=u(be(r),131),i.v=s;for(;f.b!=0;)for(i=u(Ux(f,0),131),t=new C(i.i);t.a-1){for(c=new C(f);c.a0)&&(pG(h,y.Math.min(h.o,r.o-1)),SE(h,h.i-1),h.i==0&&Bn(f.c,h))}}function IGn(n,e,t,i,r){var c,s,f,h;return h=St,s=!1,f=Gen(n,mi(new V(e.a,e.b),n),tt(new V(t.a,t.b),r),mi(new V(i.a,i.b),t)),c=!!f&&!(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0||y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0),f=Gen(n,mi(new V(e.a,e.b),n),t,r),f&&((y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c?h=y.Math.min(h,X6(mi(f,t))):s=!0),f=Gen(n,mi(new V(e.a,e.b),n),i,r),f&&(s||(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c)&&(h=y.Math.min(h,X6(mi(f,i)))),h}function OGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ra,ha),SXn),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new Xbn),cu))),Q(n,ha,u8,rn(Ton)),Q(n,ha,oS,(_n(),!0)),Q(n,ha,i2,rn(dZn)),Q(n,ha,d3,rn(bZn)),Q(n,ha,a3,rn(wZn)),Q(n,ha,Xm,rn(aZn)),Q(n,ha,o8,rn(Son)),Q(n,ha,Vm,rn(gZn)),Q(n,ha,Qtn,rn(Mon)),Q(n,ha,Ztn,rn(Eon)),Q(n,ha,nin,rn(Con)),Q(n,ha,ein,rn(Aon)),Q(n,ha,Ytn,rn(EP))}function _Oe(n){var e,t,i,r,c,s,f,h;for(e=null,i=new C(n);i.a0&&t.c==0&&(!e&&(e=new Z),Bn(e.c,t));if(e)for(;e.c.length!=0;){if(t=u(Yl(e,0),239),t.b&&t.b.c.length>0){for(c=(!t.b&&(t.b=new Z),new C(t.b));c.aqr(n,t,0))return new bi(r,t)}else if($(Tf(r.g,r.d[0]).a)>$(Tf(t.g,t.d[0]).a))return new bi(r,t)}for(f=(!t.e&&(t.e=new Z),t.e).Kc();f.Ob();)s=u(f.Pb(),239),h=(!s.b&&(s.b=new Z),s.b),zb(0,h.c.length),b6(h.c,0,t),s.c==h.c.length&&Bn(e.c,s)}return null}function HOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;for(e.Ug("Interactive crossing minimization",1),s=0,c=new C(n.b);c.a0&&(t+=h.n.a+h.o.a/2,++d),m=new C(h.j);m.a0&&(t/=d),A=K(Pi,Tr,28,i.a.c.length,15,1),f=0,l=new C(i.a);l.a=f&&r<=h)f<=r&&c<=h?i+=2:f<=r?(n.b[i]=h+1,s+=2):c<=h?(t[a++]=r,t[a++]=f-1,i+=2):(t[a++]=r,t[a++]=f-1,n.b[i]=h+1,s+=2);else if(h2?(a=new Z,hi(a,new Jl(A,1,A.b)),c=mzn(a,D+n.a),I=new bF(c),Ur(I,e),Bn(t.c,I)):i?I=u(ee(n.b,Kh(e)),272):I=u(ee(n.b,ia(e)),272),h=Kh(e),i&&(h=ia(e)),s=_je(j,h),l=D+n.a,s.a?(l+=y.Math.abs(j.b-d.b),k=new V(d.a,(d.b+j.b)/2)):(l+=y.Math.abs(j.a-d.a),k=new V((d.a+j.a)/2,d.b)),i?Xe(n.d,e,new mZ(I,s,k,l)):Xe(n.c,e,new mZ(I,s,k,l)),Xe(n.b,e,I),m=(!e.n&&(e.n=new q(Ar,e,1,7)),e.n),p=new ne(m);p.e!=p.i.gc();)g=u(ce(p),135),r=fy(n,g,!0,0,0),Bn(t.c,r)}function qOe(n){var e,t,i,r,c,s,f;if(!n.A.dc()){if(n.A.Hc((go(),rE))&&(u(Cr(n.b,(tn(),Xn)),127).k=!0,u(Cr(n.b,ae),127).k=!0,e=n.q!=(Oi(),tl)&&n.q!=qc,bG(u(Cr(n.b,Zn),127),e),bG(u(Cr(n.b,Wn),127),e),bG(n.g,e),n.A.Hc(Gd)&&(u(Cr(n.b,Xn),127).j=!0,u(Cr(n.b,ae),127).j=!0,u(Cr(n.b,Zn),127).k=!0,u(Cr(n.b,Wn),127).k=!0,n.g.k=!0)),n.A.Hc(iE))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,f=n.B.Hc((io(),O9)),r=jx(),c=0,s=r.length;c0),u(a.a.Xb(a.c=--a.b),18));c!=i&&a.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,c=(oe(a.b>0),u(a.a.Xb(a.c=--a.b),18));a.b>0&&bo(a)}}function LGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;if(!n.b)return!1;for(s=null,g=null,h=new r$(null,null),r=1,h.a[1]=n.b,d=h;d.a[r];)l=r,f=g,g=d,d=d.a[r],i=n.a.Ne(e,d.d),r=i<0?0:1,i==0&&(!t.c||mc(d.e,t.d))&&(s=d),!(d&&d.b)&&!Ib(d.a[r])&&(Ib(d.a[1-r])?g=g.a[l]=jT(d,r):Ib(d.a[1-r])||(p=g.a[1-l],p&&(!Ib(p.a[1-l])&&!Ib(p.a[l])?(g.b=!1,p.b=!0,d.b=!0):(c=f.a[1]==g?1:0,Ib(p.a[l])?f.a[c]=fDn(g,l):Ib(p.a[1-l])&&(f.a[c]=jT(g,l)),d.b=f.a[c].b=!0,f.a[c].a[0].b=!1,f.a[c].a[1].b=!1))));return s&&(t.b=!0,t.d=s.e,d!=s&&(a=new r$(d.d,d.e),zye(n,h,s,a),g==s&&(g=a)),g.a[g.a[1]==d?1:0]=d.a[d.a[0]?0:1],--n.c),n.b=h.a[1],n.b&&(n.b.b=!1),t.b}function zOe(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(r=new C(n.a.a.b);r.a0?r-=864e5:r+=864e5,h=new fV(nr(vc(e.q.getTime()),r))),a=new lp,l=n.a.length,c=0;c=97&&i<=122||i>=65&&i<=90){for(s=c+1;s=l)throw M(new Gn("Missing trailing '"));s+1=14&&a<=16))?e.a._b(i)?(t.a?Be(t.a,t.b):t.a=new mo(t.d),A6(t.a,"[...]")):(f=cd(i),l=new B6(e),pl(t,$Gn(f,l))):O(i,183)?pl(t,CEe(u(i,183))):O(i,195)?pl(t,fye(u(i,195))):O(i,201)?pl(t,vje(u(i,201))):O(i,2111)?pl(t,hye(u(i,2111))):O(i,53)?pl(t,EEe(u(i,53))):O(i,376)?pl(t,_Ee(u(i,376))):O(i,846)?pl(t,jEe(u(i,846))):O(i,109)&&pl(t,yEe(u(i,109))):pl(t,i==null?gu:Jr(i));return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function Lm(n,e){var t,i,r,c;c=n.F,e==null?(n.F=null,um(n,null)):(n.F=(Jn(e),e),i=th(e,wu(60)),i!=-1?(r=(Fi(0,i,e.length),e.substr(0,i)),th(e,wu(46))==-1&&!An(r,i3)&&!An(r,y8)&&!An(r,GS)&&!An(r,j8)&&!An(r,E8)&&!An(r,C8)&&!An(r,M8)&&!An(r,T8)&&(r=wJn),t=FC(e,wu(62)),t!=-1&&(r+=""+(zn(t+1,e.length+1),e.substr(t+1))),um(n,r)):(r=e,th(e,wu(46))==-1&&(i=th(e,wu(91)),i!=-1&&(r=(Fi(0,i,e.length),e.substr(0,i))),!An(r,i3)&&!An(r,y8)&&!An(r,GS)&&!An(r,j8)&&!An(r,E8)&&!An(r,C8)&&!An(r,M8)&&!An(r,T8)?(r=wJn,i!=-1&&(r+=""+(zn(i,e.length+1),e.substr(i)))):r=e),um(n,r),r==e&&(n.F=n.D))),n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,5,c,e))}function xGn(n,e){var t,i,r,c,s,f,h,l,a,d;if(h=e.length-1,f=(zn(h,e.length),e.charCodeAt(h)),f==93){if(s=th(e,wu(91)),s>=0)return r=Q5e(n,(Fi(1,s,e.length),e.substr(1,s-1))),a=(Fi(s+1,h,e.length),e.substr(s+1,h-(s+1))),ELe(n,a,r)}else{if(t=-1,wun==null&&(wun=new RegExp("\\d")),wun.test(String.fromCharCode(f))&&(t=AV(e,wu(46),h-1),t>=0)){i=u(YN(n,C$n(n,(Fi(1,t,e.length),e.substr(1,t-1))),!1),61),l=0;try{l=Ao((zn(t+1,e.length+1),e.substr(t+1)),Wi,et)}catch(g){throw g=It(g),O(g,130)?(c=g,M(new eT(c))):M(g)}if(l>16==-10?t=u(n.Cb,292).Yk(e,t):n.Db>>16==-15&&(!e&&(e=(On(),Yf)),!l&&(l=(On(),Yf)),n.Cb.Yh()&&(h=new ml(n.Cb,1,13,l,e,f1(no(u(n.Cb,62)),n),!1),t?t.nj(h):t=h));else if(O(n.Cb,90))n.Db>>16==-23&&(O(e,90)||(e=(On(),Ps)),O(l,90)||(l=(On(),Ps)),n.Cb.Yh()&&(h=new ml(n.Cb,1,10,l,e,f1(Sc(u(n.Cb,29)),n),!1),t?t.nj(h):t=h));else if(O(n.Cb,457))for(f=u(n.Cb,850),s=(!f.b&&(f.b=new NE(new aD)),f.b),c=(i=new sd(new qa(s.a).a),new $E(i));c.a.b;)r=u(L0(c.a).ld(),89),t=Nm(r,MA(r,f),t)}return t}function QOe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(s=on(un(z(n,(cn(),Rw)))),g=u(z(n,_w),21),h=!1,l=!1,d=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));d.e!=d.i.gc()&&(!h||!l);){for(c=u(ce(d),123),f=0,r=$h(Eo(S(T(Oo,1),Fn,20,0,[(!c.d&&(c.d=new Nn(Vt,c,8,5)),c.d),(!c.e&&(c.e=new Nn(Vt,c,7,4)),c.e)])));pe(r)&&(i=u(fe(r),74),a=s&&_0(i)&&on(un(z(i,Nd))),t=bGn((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),c)?n==At(Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))):n==At(Gr(u(L((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),0),84))),!((a||t)&&(++f,f>1))););(f>0||g.Hc((zu(),Fl))&&(!c.n&&(c.n=new q(Ar,c,1,7)),c.n).i>0)&&(h=!0),f>1&&(l=!0)}h&&e.Fc((pr(),cs)),l&&e.Fc((pr(),K8))}function FGn(n){var e,t,i,r,c,s,f,h,l,a,d,g;if(g=u(z(n,(qe(),Hd)),21),g.dc())return null;if(f=0,s=0,g.Hc((go(),rE))){for(a=u(z(n,j9),101),i=2,t=2,r=2,c=2,e=At(n)?u(z(At(n),_d),88):u(z(n,_d),88),l=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));l.e!=l.i.gc();)if(h=u(ce(l),123),d=u(z(h,_2),64),d==(tn(),sc)&&(d=Ren(h,e),ht(h,_2,d)),a==(Oi(),qc))switch(d.g){case 1:i=y.Math.max(i,h.i+h.g);break;case 2:t=y.Math.max(t,h.j+h.f);break;case 3:r=y.Math.max(r,h.i+h.g);break;case 4:c=y.Math.max(c,h.j+h.f)}else switch(d.g){case 1:i+=h.g+2;break;case 2:t+=h.f+2;break;case 3:r+=h.g+2;break;case 4:c+=h.f+2}f=y.Math.max(i,r),s=y.Math.max(t,c)}return G0(n,f,s,!0,!0)}function VF(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(I=u(Wr(fT(ut(new Tn(null,new In(e.d,16)),new A7n(t)),new S7n(t)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),d=et,a=Wi,h=new C(e.b.j);h.a0,l?l&&(g=A.p,s?++g:--g,d=u(sn(A.c.a,g),10),i=oFn(d),p=!(mF(i,X,t[0])||OPn(i,X,t[0]))):p=!0),m=!1,H=e.D.i,H&&H.c&&f.e&&(a=s&&H.p>0||!s&&H.p=0){for(h=null,f=new xi(a.a,l+1);f.bs?1:s0(isNaN(0),isNaN(s)))<0&&(Rs(jh),(y.Math.abs(s-1)<=jh||s==1||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:s0(isNaN(s),isNaN(1)))<0)&&(Rs(jh),(y.Math.abs(0-f)<=jh||f==0||isNaN(0)&&isNaN(f)?0:0f?1:s0(isNaN(0),isNaN(f)))<0)&&(Rs(jh),(y.Math.abs(f-1)<=jh||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:s0(isNaN(f),isNaN(1)))<0)),c)}function iDe(n){var e,t,i,r;if(t=n.D!=null?n.D:n.B,e=th(t,wu(91)),e!=-1){i=(Fi(0,e,t.length),t.substr(0,e)),r=new Hl;do r.a+="[";while((e=w4(t,91,++e))!=-1);An(i,i3)?r.a+="Z":An(i,y8)?r.a+="B":An(i,GS)?r.a+="C":An(i,j8)?r.a+="D":An(i,E8)?r.a+="F":An(i,C8)?r.a+="I":An(i,M8)?r.a+="J":An(i,T8)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";");try{return null}catch(c){if(c=It(c),!O(c,63))throw M(c)}}else if(th(t,wu(46))==-1){if(An(t,i3))return so;if(An(t,y8))return Fu;if(An(t,GS))return fs;if(An(t,j8))return Pi;if(An(t,E8))return cg;if(An(t,C8))return ye;if(An(t,M8))return xa;if(An(t,T8))return X2}return null}function rDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(n.e=e,f=rCe(e),X=new Z,i=new C(f);i.a=0&&k=l.c.c.length?a=MJ((Vn(),zt),Mi):a=MJ((Vn(),Mi),Mi),a*=2,c=t.a.g,t.a.g=y.Math.max(c,c+(a-c)),s=t.b.g,t.b.g=y.Math.max(s,s+(a-s)),r=e}}function sDe(n){var e,t,i,r;for(qt(ut(new Tn(null,new In(n.a.b,16)),new X2n),new V2n),qke(n),qt(ut(new Tn(null,new In(n.a.b,16)),new W2n),new J2n),n.c==(El(),F3)&&(qt(ut(rc(new Tn(null,new In(new Ha(n.f),1)),new Q2n),new Y2n),new k7n(n)),qt(ut(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new Z2n),new npn),new epn),new tpn),new j7n(n))),r=new V(St,St),e=new V(li,li),i=new C(n.a.b);i.a0&&(e.a+=ur),GA(u(ce(f),167),e);for(e.a+=iR,h=new kp((!i.c&&(i.c=new Nn(he,i,5,8)),i.c));h.e!=h.i.gc();)h.e>0&&(e.a+=ur),GA(u(ce(h),167),e);e.a+=")"}}function fDe(n,e,t){var i,r,c,s,f,h,l,a;for(h=new ne((!n.a&&(n.a=new q(Qe,n,10,11)),n.a));h.e!=h.i.gc();)for(f=u(ce(h),27),r=new te(re(Al(f).a.Kc(),new En));pe(r);){if(i=u(fe(r),74),!i.b&&(i.b=new Nn(he,i,4,7)),!(i.b.i<=1&&(!i.c&&(i.c=new Nn(he,i,5,8)),i.c.i<=1)))throw M(new fp("Graph must not contain hyperedges."));if(!F5(i)&&f!=Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84)))for(l=new RAn,Ur(l,i),U(l,(J1(),y3),i),Jse(l,u(Kr(wr(t.f,f)),153)),Zse(l,u(ee(t,Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))),153)),nn(e.c,l),s=new ne((!i.n&&(i.n=new q(Ar,i,1,7)),i.n));s.e!=s.i.gc();)c=u(ce(s),135),a=new _Dn(l,c.a),Ur(a,c),U(a,y3,c),a.e.a=y.Math.max(c.g,1),a.e.b=y.Math.max(c.f,1),Uen(a),nn(e.d,a)}}function hDe(n,e,t){var i,r,c,s,f,h,l,a,d,g;switch(t.Ug("Node promotion heuristic",1),n.i=e,n.r=u(v(e,(cn(),ya)),243),n.r!=(gs(),pb)&&n.r!=Uw?FDe(n):fAe(n),a=u(v(n.i,chn),17).a,c=new Bgn,n.r.g){case 2:case 1:Dm(n,c);break;case 3:for(n.r=SI,Dm(n,c),h=0,f=new C(n.b);f.an.k&&(n.r=Sj,Dm(n,c));break;case 4:for(n.r=SI,Dm(n,c),l=0,r=new C(n.c);r.an.n&&(n.r=Pj,Dm(n,c));break;case 6:g=wi(y.Math.ceil(n.g.length*a/100)),Dm(n,new s7n(g));break;case 5:d=wi(y.Math.ceil(n.e*a/100)),Dm(n,new f7n(d));break;case 8:yzn(n,!0);break;case 9:yzn(n,!1);break;default:Dm(n,c)}n.r!=pb&&n.r!=Uw?LTe(n,e):ZAe(n,e),t.Vg()}function lDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(d=n.b,a=new xi(d,0),Rb(a,new Lc(n)),I=!1,s=1;a.b0&&(g.d+=a.n.d,g.d+=a.d),g.a>0&&(g.a+=a.n.a,g.a+=a.d),g.b>0&&(g.b+=a.n.b,g.b+=a.d),g.c>0&&(g.c+=a.n.c,g.c+=a.d),g}function RGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m;for(g=t.d,d=t.c,c=new V(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),s=c.b,l=new C(n.a);l.a0&&(n.c[e.c.p][e.p].d+=to(n.i,24)*Iy*.07000000029802322-.03500000014901161,n.c[e.c.p][e.p].a=n.c[e.c.p][e.p].d/n.c[e.c.p][e.p].b)}}function bDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(m=new C(n);m.ai.d,i.d=y.Math.max(i.d,e),f&&t&&(i.d=y.Math.max(i.d,i.a),i.a=i.d+r);break;case 3:t=e>i.a,i.a=y.Math.max(i.a,e),f&&t&&(i.a=y.Math.max(i.a,i.d),i.d=i.a+r);break;case 2:t=e>i.c,i.c=y.Math.max(i.c,e),f&&t&&(i.c=y.Math.max(i.b,i.c),i.b=i.c+r);break;case 4:t=e>i.b,i.b=y.Math.max(i.b,e),f&&t&&(i.b=y.Math.max(i.b,i.c),i.c=i.b+r)}}}function _Gn(n,e){var t,i,r,c,s,f,h,l,a;return l="",e.length==0?n.ne(ktn,uB,-1,-1):(a=fw(e),An(a.substr(0,3),"at ")&&(a=(zn(3,a.length+1),a.substr(3))),a=a.replace(/\[.*?\]/g,""),s=a.indexOf("("),s==-1?(s=a.indexOf("@"),s==-1?(l=a,a=""):(l=fw((zn(s+1,a.length+1),a.substr(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s))))):(t=a.indexOf(")",s),l=(Fi(s+1,t,a.length),a.substr(s+1,t-(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s)))),s=th(a,wu(46)),s!=-1&&(a=(zn(s+1,a.length+1),a.substr(s+1))),(a.length==0||An(a,"Anonymous function"))&&(a=uB),f=FC(l,wu(58)),r=AV(l,wu(58),f-1),h=-1,i=-1,c=ktn,f!=-1&&r!=-1&&(c=(Fi(0,r,l.length),l.substr(0,r)),h=rAn((Fi(r+1,f,l.length),l.substr(r+1,f-(r+1)))),i=rAn((zn(f+1,l.length+1),l.substr(f+1)))),n.ne(c,a,h,i))}function pDe(n){var e,t,i,r,c,s,f,h,l,a,d;for(l=new C(n);l.a0||a.j==Wn&&a.e.c.length-a.g.c.length<0)){e=!1;break}for(r=new C(a.g);r.a=l&&H>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f));if(t)for(s=new C(I.e);s.a=l&&H>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f))}f>0&&(X+=g/f,++p)}p>0?(e.a=r*X/p,e.g=p):(e.a=0,e.g=0)}function vDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(c=n.f.b,g=c.a,a=c.b,m=n.e.g,p=n.e.f,vg(n.e,c.a,c.b),X=g/m,en=a/p,l=new ne(jM(n.e));l.e!=l.i.gc();)h=u(ce(l),135),eu(h,h.i*X),tu(h,h.j*en);for(I=new ne(mN(n.e));I.e!=I.i.gc();)A=u(ce(I),123),N=A.i,H=A.j,N>0&&eu(A,N*X),H>0&&tu(A,H*en);for(h5(n.b,new Ubn),e=new Z,f=new sd(new qa(n.c).a);f.b;)s=L0(f),i=u(s.ld(),74),t=u(s.md(),407).a,r=zg(i,!1,!1),d=NKn(Kh(i),Zk(r),t),dy(d,r),D=XKn(i),D&&qr(e,D,0)==-1&&(Bn(e.c,D),jIn(D,(oe(d.b!=0),u(d.a.a.c,8)),t));for(j=new sd(new qa(n.d).a);j.b;)k=L0(j),i=u(k.ld(),74),t=u(k.md(),407).a,r=zg(i,!1,!1),d=NKn(ia(i),Ik(Zk(r)),t),d=Ik(d),dy(d,r),D=VKn(i),D&&qr(e,D,0)==-1&&(Bn(e.c,D),jIn(D,(oe(d.b!=0),u(d.c.b.c,8)),t))}function HGn(n,e,t,i){var r,c,s,f,h;return f=new rtn(e),hTe(f,i),r=!0,n&&n.pf((qe(),_d))&&(c=u(n.of((qe(),_d)),88),r=c==(ci(),Wf)||c==Br||c==Xr),_qn(f,!1),nu(f.e.Rf(),new NV(f,!1,r)),ON(f,f.f,(bf(),bc),(tn(),Xn)),ON(f,f.f,wc,ae),ON(f,f.g,bc,Wn),ON(f,f.g,wc,Zn),gRn(f,Xn),gRn(f,ae),vIn(f,Zn),vIn(f,Wn),Bb(),s=f.A.Hc((go(),Qw))&&f.B.Hc((io(),uE))?NBn(f):null,s&&vhe(f.a,s),gDe(f),p7e(f),m7e(f),qOe(f),sPe(f),U7e(f),kx(f,Xn),kx(f,ae),VAe(f),xIe(f),t&&(Y5e(f),G7e(f),kx(f,Zn),kx(f,Wn),h=f.B.Hc((io(),O9)),L_n(f,h,Xn),L_n(f,h,ae),N_n(f,h,Zn),N_n(f,h,Wn),qt(new Tn(null,new In(new ol(f.i),0)),new dbn),qt(ut(new Tn(null,DW(f.r).a.oc()),new bbn),new wbn),cye(f),f.e.Pf(f.o),qt(new Tn(null,DW(f.r).a.oc()),new gbn)),f.o}function kDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(l=St,i=new C(n.a.b);i.a1)for(p=new Ven(m,D,i),qi(D,new YCn(n,p)),Bn(s.c,p),d=D.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b);if(f.a.gc()>1)for(p=new Ven(m,f,i),qi(f,new ZCn(n,p)),Bn(s.c,p),d=f.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b)}}function CDe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;if(k=n.n,j=n.o,g=n.d,d=$(R(rw(n,(cn(),PH)))),e){for(a=d*(e.gc()-1),p=0,h=e.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(A=k.a-(a-j.a)/2,c=k.b-g.d+p,i=j.a/(e.gc()+1),r=i,f=e.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=A,s.n.b=c-s.o.b,A+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=s.o.b,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=0,ic(m,n)),r+=i}if(t){for(a=d*(t.gc()-1),p=0,h=t.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(A=k.a-(a-j.a)/2,c=k.b+j.b+g.a-p,i=j.a/(t.gc()+1),r=i,f=t.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=A,s.n.b=c,A+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=0,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=j.b,ic(m,n)),r+=i}}function MDe(n,e){var t,i,r,c,s,f;if(u(v(e,(W(),Hc)),21).Hc((pr(),cs))){for(f=new C(e.a);f.a=0&&s0&&(u(Cr(n.b,e),127).a.b=t)}function IDe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k;if(g=$(R(v(n,(cn(),Av)))),p=$(R(v(n,Sv))),d=$(R(v(n,qw))),f=n.o,c=u(sn(n.j,0),12),s=c.n,k=Xje(c,d),!!k){if(e.Hc((zu(),Fl)))switch(u(v(n,(W(),gc)),64).g){case 1:k.c=(f.a-k.b)/2-s.a,k.d=p;break;case 3:k.c=(f.a-k.b)/2-s.a,k.d=-p-k.a;break;case 2:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=-g-k.b;break;case 4:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=g}else if(e.Hc(Pa))switch(u(v(n,(W(),gc)),64).g){case 1:case 3:k.c=s.a+g;break;case 2:case 4:t&&!c.c?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=s.b+p}for(r=k.d,l=new C(c.f);l.a=e.length)return{done:!0};var r=e[i++];return{value:[r,t.get(r)],done:!1}}}},AAe()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(e){return this.obj[":"+e]},n.prototype.set=function(e,t){this.obj[":"+e]=t},n.prototype[DB]=function(e){delete this.obj[":"+e]},n.prototype.keys=function(){var e=[];for(var t in this.obj)t.charCodeAt(0)==58&&e.push(t.substring(1));return e}),n}function pt(){pt=F,f9=new lt(Jtn),new Dt("DEPTH",Y(0)),iq=new Dt("FAN",Y(0)),mln=new Dt(bVn,Y(0)),Ca=new Dt("ROOT",(_n(),!1)),uq=new Dt("LEFTNEIGHBOR",null),dre=new Dt("RIGHTNEIGHBOR",null),$I=new Dt("LEFTSIBLING",null),oq=new Dt("RIGHTSIBLING",null),tq=new Dt("DUMMY",!1),new Dt("LEVEL",Y(0)),yln=new Dt("REMOVABLE_EDGES",new Ct),$j=new Dt("XCOOR",Y(0)),xj=new Dt("YCOOR",Y(0)),xI=new Dt("LEVELHEIGHT",0),yf=new Dt("LEVELMIN",0),Ws=new Dt("LEVELMAX",0),rq=new Dt("GRAPH_XMIN",0),cq=new Dt("GRAPH_YMIN",0),vln=new Dt("GRAPH_XMAX",0),kln=new Dt("GRAPH_YMAX",0),pln=new Dt("COMPACT_LEVEL_ASCENSION",!1),eq=new Dt("COMPACT_CONSTRAINTS",new Z),s9=new Dt("ID",""),h9=new Dt("POSITION",Y(0)),j1=new Dt("PRELIM",0),Lv=new Dt("MODIFIER",0),Dv=new lt(TXn),Nj=new lt(AXn)}function NDe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null)return null;if(d=n.length*8,d==0)return"";for(f=d%24,p=d/24|0,g=f!=0?p+1:p,c=null,c=K(fs,gh,28,g*4,15,1),l=0,a=0,e=0,t=0,i=0,s=0,r=0,h=0;h>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,j=i&-128?(i>>6^252)<<24>>24:i>>6<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2|j],c[s++]=O1[i&63];return f==8?(e=n[r],l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,c[s++]=O1[m],c[s++]=O1[l<<4],c[s++]=61,c[s++]=61):f==16&&(e=n[r],t=n[r+1],a=(t&15)<<24>>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2],c[s++]=61),hh(c,0,c.length)}function $De(n,e){var t,i,r,c,s,f,h;if(n.e==0&&n.p>0&&(n.p=-(n.p-1)),n.p>Wi&&CJ(e,n.p-fa),s=e.q.getDate(),Q7(e,1),n.k>=0&&E2e(e,n.k),n.c>=0?Q7(e,n.c):n.k>=0?(h=new nY(e.q.getFullYear()-fa,e.q.getMonth(),35),i=35-h.q.getDate(),Q7(e,y.Math.min(i,s))):Q7(e,s),n.f<0&&(n.f=e.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),b1e(e,n.f==24&&n.g?0:n.f),n.j>=0&&c4e(e,n.j),n.n>=0&&p4e(e,n.n),n.i>=0&&QMn(e,nr(er(Wk(vc(e.q.getTime()),d1),d1),n.i)),n.a&&(r=new JE,CJ(r,r.q.getFullYear()-fa-80),ND(vc(e.q.getTime()),vc(r.q.getTime()))&&CJ(e,r.q.getFullYear()-fa+100)),n.d>=0){if(n.c==-1)t=(7+n.d-e.q.getDay())%7,t>3&&(t-=7),f=e.q.getMonth(),Q7(e,e.q.getDate()+t),e.q.getMonth()!=f&&Q7(e,e.q.getDate()+(t>0?-7:7));else if(e.q.getDay()!=n.d)return!1}return n.o>Wi&&(c=e.q.getTimezoneOffset(),QMn(e,nr(vc(e.q.getTime()),(n.o-c)*60*d1))),!0}function XGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;if(r=v(e,(W(),st)),!!O(r,207)){for(m=u(r,27),k=e.e,g=new rr(e.c),c=e.d,g.a+=c.b,g.b+=c.d,N=u(z(m,(cn(),kI)),181),Au(N,(io(),sO))&&(p=u(z(m,hhn),107),Use(p,c.a),Yse(p,c.d),Gse(p,c.b),Qse(p,c.c)),t=new Z,a=new C(e.a);a.ai.c.length-1;)nn(i,new bi(t2,Arn));t=u(v(r,Sh),17).a,hl(u(v(n,vb),88))?(r.e.a<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a),r.e.a+r.f.a>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a+r.f.a)):(r.e.b<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b),r.e.b+r.f.b>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b+r.f.b))}for(c=ge(n.b,0);c.b!=c.d.c;)r=u(be(c),40),t=u(v(r,(lc(),Sh)),17).a,U(r,(pt(),yf),R((Ln(t,i.c.length),u(i.c[t],42)).a)),U(r,Ws,R((Ln(t,i.c.length),u(i.c[t],42)).b));e.Vg()}function FDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(n.o=$(R(v(n.i,(cn(),gb)))),n.f=$(R(v(n.i,Bd))),n.j=n.i.b.c.length,f=n.j-1,g=0,n.k=0,n.n=0,n.b=If(K(Gi,J,17,n.j,0,1)),n.c=If(K(si,J,345,n.j,7,1)),s=new C(n.i.b);s.a0&&nn(n.q,a),nn(n.p,a);e-=i,p=h+e,l+=e*n.f,Go(n.b,f,Y(p)),Go(n.c,f,l),n.k=y.Math.max(n.k,p),n.n=y.Math.max(n.n,l),n.e+=e,e+=k}}function tn(){tn=F;var n;sc=new y7(i8,0),Xn=new y7(eS,1),Zn=new y7(HB,2),ae=new y7(qB,3),Wn=new y7(UB,4),Qf=(Dn(),new r4((n=u(uf(lr),9),new _o(n,u($s(n,n.length),9),0)))),nf=i1(yt(Xn,S(T(lr,1),Mc,64,0,[]))),os=i1(yt(Zn,S(T(lr,1),Mc,64,0,[]))),No=i1(yt(ae,S(T(lr,1),Mc,64,0,[]))),Ms=i1(yt(Wn,S(T(lr,1),Mc,64,0,[]))),mu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[ae]))),su=i1(yt(Zn,S(T(lr,1),Mc,64,0,[Wn]))),ef=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Wn]))),Wu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn]))),$o=i1(yt(ae,S(T(lr,1),Mc,64,0,[Wn]))),ss=i1(yt(Zn,S(T(lr,1),Mc,64,0,[ae]))),Ju=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,Wn]))),pu=i1(yt(Zn,S(T(lr,1),Mc,64,0,[ae,Wn]))),vu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[ae,Wn]))),xu=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,ae]))),Uc=i1(yt(Xn,S(T(lr,1),Mc,64,0,[Zn,ae,Wn])))}function BDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;for(e.Ug(XXn,1),k=new Z,X=new Z,l=new C(n.b);l.a0&&(D-=p),Wen(s,D),a=0,g=new C(s.a);g.a0),f.a.Xb(f.c=--f.b)),h=.4*i*a,!c&&f.b0&&(h=(zn(0,e.length),e.charCodeAt(0)),h!=64)){if(h==37&&(d=e.lastIndexOf("%"),l=!1,d!=0&&(d==g-1||(l=(zn(d+1,e.length),e.charCodeAt(d+1)==46))))){if(s=(Fi(1,d,e.length),e.substr(1,d-1)),D=An("%",s)?null:utn(s),i=0,l)try{i=Ao((zn(d+2,e.length+1),e.substr(d+2)),Wi,et)}catch(N){throw N=It(N),O(N,130)?(f=N,M(new eT(f))):M(N)}for(j=LQ(n.Gh());j.Ob();)if(m=PT(j),O(m,519)&&(r=u(m,598),I=r.d,(D==null?I==null:An(D,I))&&i--==0))return r;return null}if(a=e.lastIndexOf("."),p=a==-1?e:(Fi(0,a,e.length),e.substr(0,a)),t=0,a!=-1)try{t=Ao((zn(a+1,e.length+1),e.substr(a+1)),Wi,et)}catch(N){if(N=It(N),O(N,130))p=e;else throw M(N)}for(p=An("%",p)?null:utn(p),k=LQ(n.Gh());k.Ob();)if(m=PT(k),O(m,197)&&(c=u(m,197),A=c.xe(),(p==null?A==null:An(p,A))&&t--==0))return c;return null}return xGn(n,e)}function zDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(a=new de,h=new C0,i=new C(n.a.a.b);i.ae.d.c){if(p=n.c[e.a.d],j=n.c[d.a.d],p==j)continue;Hs(Ds(Os(Ls(Is(new hs,1),100),p),j))}}}}}function XDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;if(g=u(u(ot(n.r,e),21),87),e==(tn(),Zn)||e==Wn){UGn(n,e);return}for(c=e==Xn?(N0(),ij):(N0(),rj),N=e==Xn?(bu(),vf):(bu(),zs),t=u(Cr(n.b,e),127),i=t.i,r=i.c+Og(S(T(Pi,1),Tr,28,15,[t.n.b,n.C.b,n.k])),A=i.c+i.b-Og(S(T(Pi,1),Tr,28,15,[t.n.c,n.C.c,n.k])),s=kz(xV(c),n.t),I=e==Xn?li:St,d=g.Kc();d.Ob();)l=u(d.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(j=l.b.Mf(),k=l.e,p=l.c,m=p.i,m.b=(h=p.n,p.e.a+h.b+h.c),m.a=(f=p.n,p.e.b+f.d+f.a),X7(N,xtn),p.f=N,af(p,(Uu(),Gs)),m.c=k.a-(m.b-j.a)/2,H=y.Math.min(r,k.a),X=y.Math.max(A,k.a+j.a),m.cX&&(m.c=X-m.b),nn(s.d,new ZL(m,AY(s,m))),I=e==Xn?y.Math.max(I,k.b+l.b.Mf().b):y.Math.min(I,k.b));for(I+=e==Xn?n.t:-n.t,D=zY((s.e=I,s)),D>0&&(u(Cr(n.b,e),127).a.b=D),a=g.Kc();a.Ob();)l=u(a.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(m=l.c.i,m.c-=l.e.a,m.d-=l.e.b)}function VDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(e=new de,h=new ne(n);h.e!=h.i.gc();){for(f=u(ce(h),27),t=new ni,Xe(m_,f,t),p=new Rbn,r=u(Wr(new Tn(null,new p0(new te(re(cy(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)])))),85),X$n(t,u(r.xc((_n(),!0)),16),new Kbn),i=u(Wr(ut(u(r.xc(!1),15).Lc(),new _bn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),s=i.Kc();s.Ob();)c=u(s.Pb(),74),g=XKn(c),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l));for(r=u(Wr(new Tn(null,new p0(new te(re(Al(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr])))),85),X$n(t,u(r.xc(!0),16),new Hbn),i=u(Wr(ut(u(r.xc(!1),15).Lc(),new qbn),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),d=i.Kc();d.Ob();)a=u(d.Pb(),74),g=VKn(a),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l))}}function WDe(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k;if(h=Ec(n,0)<0,h&&(n=n1(n)),Ec(n,0)==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return p=new x1,e<0?p.a+="0E+":p.a+="0E",p.a+=e==Wi?"2147483648":""+-e,p.a}a=18,d=K(fs,gh,28,a+1,15,1),t=a,k=n;do l=k,k=Wk(k,10),d[--t]=Ae(nr(48,bs(l,er(k,10))))&ui;while(Ec(k,0)!=0);if(r=bs(bs(bs(a,t),e),1),e==0)return h&&(d[--t]=45),hh(d,t,a-t);if(e>0&&Ec(r,-6)>=0){if(Ec(r,0)>=0){for(c=t+Ae(r),f=a-1;f>=c;f--)d[f+1]=d[f];return d[++c]=46,h&&(d[--t]=45),hh(d,t,a-t+1)}for(s=2;ND(s,nr(n1(r),1));s++)d[--t]=48;return d[--t]=46,d[--t]=48,h&&(d[--t]=45),hh(d,t,a-t)}return m=t+1,i=a,g=new lp,h&&(g.a+="-"),i-m>=1?(Ya(g,d[t]),g.a+=".",g.a+=hh(d,t+1,a-t-1)):g.a+=hh(d,t,a-t),g.a+="E",Ec(r,0)>0&&(g.a+="+"),g.a+=""+H6(r),g.a}function G0(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;if(j=new V(n.g,n.f),k=jnn(n),k.a=y.Math.max(k.a,e),k.b=y.Math.max(k.b,t),X=k.a/j.a,a=k.b/j.b,N=k.a-j.a,h=k.b-j.b,i)for(s=At(n)?u(z(At(n),(qe(),_d)),88):u(z(n,(qe(),_d)),88),f=x(z(n,(qe(),j9)))===x((Oi(),qc)),I=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));I.e!=I.i.gc();)switch(A=u(ce(I),123),D=u(z(A,_2),64),D==(tn(),sc)&&(D=Ren(A,s),ht(A,_2,D)),D.g){case 1:f||eu(A,A.i*X);break;case 2:eu(A,A.i+N),f||tu(A,A.j*a);break;case 3:f||eu(A,A.i*X),tu(A,A.j+h);break;case 4:f||tu(A,A.j*a)}if(vg(n,k.a,k.b),r)for(g=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));g.e!=g.i.gc();)d=u(ce(g),135),p=d.i+d.g/2,m=d.j+d.f/2,H=p/j.a,l=m/j.b,H+l>=1&&(H-l>0&&m>=0?(eu(d,d.i+N),tu(d,d.j+h*l)):H-l<0&&p>=0&&(eu(d,d.i+N*H),tu(d,d.j+h)));return ht(n,(qe(),Hd),(go(),c=u(uf(I9),9),new _o(c,u($s(c,c.length),9),0))),new V(X,a)}function QGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ra,es),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new V4n),es))),Q(n,es,TS,rn(fce)),Q(n,es,yw,rn(hce)),Q(n,es,i2,rn(cce)),Q(n,es,d3,rn(uce)),Q(n,es,a3,rn(oce)),Q(n,es,Xm,rn(rce)),Q(n,es,o8,rn(Jln)),Q(n,es,Vm,rn(sce)),Q(n,es,XR,rn(kq)),Q(n,es,zR,rn(yq)),Q(n,es,LS,rn(Yln)),Q(n,es,VR,rn(jq)),Q(n,es,WR,rn(Zln)),Q(n,es,zrn,rn(n1n)),Q(n,es,Grn,rn(Qln)),Q(n,es,_rn,rn(_I)),Q(n,es,Hrn,rn(HI)),Q(n,es,qrn,rn(Fj)),Q(n,es,Urn,rn(e1n)),Q(n,es,Krn,rn(Wln))}function zA(n){var e,t,i,r,c,s,f,h,l,a,d;if(n==null)throw M(new eh(gu));if(l=n,c=n.length,h=!1,c>0&&(e=(zn(0,n.length),n.charCodeAt(0)),(e==45||e==43)&&(n=(zn(1,n.length+1),n.substr(1)),--c,h=e==45)),c==0)throw M(new eh(V0+l+'"'));for(;n.length>0&&(zn(0,n.length),n.charCodeAt(0)==48);)n=(zn(1,n.length+1),n.substr(1)),--c;if(c>(SUn(),gQn)[10])throw M(new eh(V0+l+'"'));for(r=0;r0&&(d=-parseInt((Fi(0,i,n.length),n.substr(0,i)),10),n=(zn(i,n.length+1),n.substr(i)),c-=i,t=!1);c>=s;){if(i=parseInt((Fi(0,s,n.length),n.substr(0,s)),10),n=(zn(s,n.length+1),n.substr(s)),c-=s,t)t=!1;else{if(Ec(d,f)<0)throw M(new eh(V0+l+'"'));d=er(d,a)}d=bs(d,i)}if(Ec(d,0)>0)throw M(new eh(V0+l+'"'));if(!h&&(d=n1(d),Ec(d,0)<0))throw M(new eh(V0+l+'"'));return d}function utn(n){UF();var e,t,i,r,c,s,f,h;if(n==null)return null;if(r=th(n,wu(37)),r<0)return n;for(h=new mo((Fi(0,r,n.length),n.substr(0,r))),e=K(Fu,o2,28,4,15,1),f=0,i=0,s=n.length;rr+2&&R$((zn(r+1,n.length),n.charCodeAt(r+1)),Bdn,Rdn)&&R$((zn(r+2,n.length),n.charCodeAt(r+2)),Bdn,Rdn))if(t=gbe((zn(r+1,n.length),n.charCodeAt(r+1)),(zn(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?(t&192)==128?e[f++]=t<<24>>24:i=0:t>=128&&((t&224)==192?(e[f++]=t<<24>>24,i=2):(t&240)==224?(e[f++]=t<<24>>24,i=3):(t&248)==240&&(e[f++]=t<<24>>24,i=4)),i>0){if(f==i){switch(f){case 2:{Ya(h,((e[0]&31)<<6|e[1]&63)&ui);break}case 3:{Ya(h,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&ui);break}}f=0,i=0}}else{for(c=0;c=2){if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i==0)t=(B1(),r=new jE,r),ve((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),t);else if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i>1)for(g=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));g.e!=g.i.gc();)D5(g);dy(e,u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166))}if(d)for(i=new ne((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));i.e!=i.i.gc();)for(t=u(ce(i),166),l=new ne((!t.a&&(t.a=new ti(xo,t,5)),t.a));l.e!=l.i.gc();)h=u(ce(l),377),f.a=y.Math.max(f.a,h.a),f.b=y.Math.max(f.b,h.b);for(s=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));s.e!=s.i.gc();)c=u(ce(s),135),a=u(z(c,C9),8),a&&Ro(c,a.a,a.b),d&&(f.a=y.Math.max(f.a,c.i+c.g),f.b=y.Math.max(f.b,c.j+c.f));return f}function ZGn(n,e,t,i,r){var c,s,f;if(n$n(n,e),s=e[0],c=Xi(t.c,0),f=-1,iY(t))if(i>0){if(s+i>n.length)return!1;f=yA((Fi(0,s+i,n.length),n.substr(0,s+i)),e)}else f=yA(n,e);switch(c){case 71:return f=qg(n,s,S(T(fn,1),J,2,6,[Bzn,Rzn]),e),r.e=f,!0;case 77:return lAe(n,e,r,f,s);case 76:return aAe(n,e,r,f,s);case 69:return iEe(n,e,s,r);case 99:return rEe(n,e,s,r);case 97:return f=qg(n,s,S(T(fn,1),J,2,6,["AM","PM"]),e),r.b=f,!0;case 121:return dAe(n,e,s,f,t,r);case 100:return f<=0?!1:(r.c=f,!0);case 83:return f<0?!1:v8e(f,s,e[0],r);case 104:f==12&&(f=0);case 75:case 72:return f<0?!1:(r.f=f,r.g=!1,!0);case 107:return f<0?!1:(r.f=f,r.g=!0,!0);case 109:return f<0?!1:(r.j=f,!0);case 115:return f<0?!1:(r.n=f,!0);case 90:if(sjn[h]&&(j=h),d=new C(n.a.b);d.a1;){if(r=rTe(e),d=c.g,m=u(z(e,d9),107),k=$(R(z(e,zI))),(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i>1&&$(R(z(e,(_h(),Iq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))1&&$(R(z(e,(_h(),Pq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))>k&&ht(r,(_h(),Xw),y.Math.max($(R(z(e,a9))),$(R(z(r,Xw)))-$(R(z(e,Pq))))),p=new dX(i,a),h=vzn(p,r,g),l=h.g,l>=d&&l==l){for(s=0;s<(!r.a&&(r.a=new q(Qe,r,10,11)),r.a).i;s++)z_n(n,u(L((!r.a&&(r.a=new q(Qe,r,10,11)),r.a),s),27),u(L((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),s),27));T$n(e,p),s2e(c,h.c),o2e(c,h.b)}--f}ht(e,(_h(),Nv),c.b),ht(e,O3,c.c),t.Vg()}function ZDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;for(e.Ug("Interactive node layering",1),t=new Z,g=new C(n.a);g.a=f){oe(I.b>0),I.a.Xb(I.c=--I.b);break}else j.a>h&&(i?(hi(i.b,j.b),i.a=y.Math.max(i.a,j.a),bo(I)):(nn(j.b,a),j.c=y.Math.min(j.c,h),j.a=y.Math.max(j.a,f),i=j));i||(i=new Vyn,i.c=h,i.a=f,Rb(I,i),nn(i.b,a))}for(s=n.b,l=0,A=new C(t);A.ap&&(c&&(ir(X,g),ir(jn,Y(l.b-1))),Ze=t.b,Lt+=g+e,g=0,a=y.Math.max(a,t.b+t.c+ue)),eu(f,Ze),tu(f,Lt),a=y.Math.max(a,Ze+ue+t.c),g=y.Math.max(g,d),Ze+=ue+e;if(a=y.Math.max(a,i),Kn=Lt+g+t.a,Knvh,kn=y.Math.abs(g.b-m.b)>vh,(!t&&jn&&kn||t&&(jn||kn))&&xe(j.a,N)),Bi(j.a,i),i.b==0?g=N:g=(oe(i.b!=0),u(i.c.b.c,8)),Rve(p,d,k),Mxn(r)==en&&(Hi(en.i)!=r.a&&(k=new Li,mnn(k,Hi(en.i),I)),U(j,pH,k)),yje(p,j,I),a.a.zc(p,a);Zi(j,H),Ii(j,en)}for(l=a.a.ec().Kc();l.Ob();)h=u(l.Pb(),18),Zi(h,null),Ii(h,null);e.Vg()}function tLe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(r=u(v(n,(lc(),vb)),88),a=r==(ci(),Br)||r==Xr?Vf:Xr,t=u(Wr(ut(new Tn(null,new In(n.b,16)),new n4n),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),h=u(Wr(_r(t.Oc(),new wkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),h.Gc(u(Wr(_r(t.Oc(),new gkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),16)),h.jd(new pkn(a)),g=new Ul(new mkn(r)),i=new de,f=h.Kc();f.Ob();)s=u(f.Pb(),240),l=u(s.a,40),on(un(s.c))?(g.a.zc(l,(_n(),wa))==null,new Y3(g.a.Zc(l,!1)).a.gc()>0&&Xe(i,l,u(new Y3(g.a.Zc(l,!1)).a.Vc(),40)),new Y3(g.a.ad(l,!0)).a.gc()>1&&Xe(i,PBn(g,l),l)):(new Y3(g.a.Zc(l,!1)).a.gc()>0&&(c=u(new Y3(g.a.Zc(l,!1)).a.Vc(),40),x(c)===x(Kr(wr(i.f,l)))&&u(v(l,(pt(),eq)),15).Fc(c)),new Y3(g.a.ad(l,!0)).a.gc()>1&&(d=PBn(g,l),x(Kr(wr(i.f,d)))===x(l)&&u(v(d,(pt(),eq)),15).Fc(l)),g.a.Bc(l)!=null)}function nzn(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;if(n.gc()==1)return u(n.Xb(0),235);if(n.gc()<=0)return new zM;for(r=n.Kc();r.Ob();){for(t=u(r.Pb(),235),m=0,a=et,d=et,h=Wi,l=Wi,p=new C(t.e);p.af&&(D=0,N+=s+A,s=0),SSe(k,t,D,N),e=y.Math.max(e,D+j.a),s=y.Math.max(s,j.b),D+=j.a+A;return k}function iLe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null||(c=iT(n),m=O5e(c),m%4!=0))return null;if(k=m/4|0,k==0)return K(Fu,o2,28,0,15,1);for(d=null,e=0,t=0,i=0,r=0,s=0,f=0,h=0,l=0,p=0,g=0,a=0,d=K(Fu,o2,28,k*3,15,1);p>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24}return!t7(s=c[a++])||!t7(f=c[a++])?null:(e=Zf[s],t=Zf[f],h=c[a++],l=c[a++],Zf[h]==-1||Zf[l]==-1?h==61&&l==61?t&15?null:(j=K(Fu,o2,28,p*3+1,15,1),Ic(d,0,j,0,p*3),j[g]=(e<<2|t>>4)<<24>>24,j):h!=61&&l==61?(i=Zf[h],i&3?null:(j=K(Fu,o2,28,p*3+2,15,1),Ic(d,0,j,0,p*3),j[g++]=(e<<2|t>>4)<<24>>24,j[g]=((t&15)<<4|i>>2&15)<<24>>24,j)):null:(i=Zf[h],r=Zf[l],d[g++]=(e<<2|t>>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24,d))}function rLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H;for(e.Ug(XXn,1),m=u(v(n,(cn(),$l)),223),r=new C(n.b);r.a=2){for(k=!0,g=new C(c.j),t=u(E(g),12),p=null;g.a0)if(i=d.gc(),l=wi(y.Math.floor((i+1)/2))-1,r=wi(y.Math.ceil((i+1)/2))-1,e.o==zf)for(a=r;a>=l;a--)e.a[N.p]==N&&(k=u(d.Xb(a),42),m=u(k.a,10),!of(t,k.b)&&p>n.b.e[m.p]&&(e.a[m.p]=N,e.g[N.p]=e.g[m.p],e.a[N.p]=e.g[N.p],e.f[e.g[N.p].p]=(_n(),!!(on(e.f[e.g[N.p].p])&N.k==(Vn(),Mi))),p=n.b.e[m.p]));else for(a=l;a<=r;a++)e.a[N.p]==N&&(A=u(d.Xb(a),42),j=u(A.a,10),!of(t,A.b)&&p0&&(r=u(sn(j.c.a,X-1),10),s=n.i[r.p],jn=y.Math.ceil(yg(n.n,r,j)),c=H.a.e-j.d.d-(s.a.e+r.o.b+r.d.a)-jn),l=St,X0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)<0,m=D.a.e.e-D.a.a-(D.b.e.e-D.b.a)<0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)>0,p=D.a.e.e+D.b.aen.b.e.e+en.a.a,N=0,!k&&!m&&(g?c+d>0?N=d:l-i>0&&(N=i):p&&(c+f>0?N=f:l-I>0&&(N=I))),H.a.e+=N,H.b&&(H.d.e+=N),!1))}function tzn(n,e,t){var i,r,c,s,f,h,l,a,d,g;if(i=new Ho(e.Lf().a,e.Lf().b,e.Mf().a,e.Mf().b),r=new mp,n.c)for(s=new C(e.Rf());s.al&&(i.a+=ITn(K(fs,gh,28,-l,15,1))),i.a+="Is",th(h,wu(32))>=0)for(r=0;r=i.o.b/2}else I=!d;I?(A=u(v(i,(W(),P3)),15),A?g?c=A:(r=u(v(i,C3),15),r?A.gc()<=r.gc()?c=A:c=r:(c=new Z,U(i,C3,c))):(c=new Z,U(i,P3,c))):(r=u(v(i,(W(),C3)),15),r?d?c=r:(A=u(v(i,P3),15),A?r.gc()<=A.gc()?c=r:c=A:(c=new Z,U(i,P3,c))):(c=new Z,U(i,C3,c))),c.Fc(n),U(n,(W(),tI),t),e.d==t?(Ii(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null),j6e(t)):(Zi(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null)),vo(e.a)}function sLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(t.Ug("MinWidth layering",1),p=e.b,en=e.a,Lt=u(v(e,(cn(),ihn)),17).a,f=u(v(e,rhn),17).a,n.b=$(R(v(e,Vs))),n.d=St,N=new C(en);N.a0?(l=0,j&&(l+=f),l+=(kn-1)*s,D&&(l+=f),jn&&D&&(l=y.Math.max(l,STe(D,s,I,en))),l=n.a&&(i=UPe(n,I),a=y.Math.max(a,i.b),N=y.Math.max(N,i.d),nn(f,new bi(I,i)));for(jn=new Z,l=0;l0),j.a.Xb(j.c=--j.b),kn=new Lc(n.b),Rb(j,kn),oe(j.b0){for(g=a<100?null:new F1(a),l=new KQ(e),m=l.g,A=K(ye,Ke,28,a,15,1),i=0,N=new S0(a),r=0;r=0;)if(p!=null?rt(p,m[h]):x(p)===x(m[h])){A.length<=i&&(j=A,A=K(ye,Ke,28,2*A.length,15,1),Ic(j,0,A,0,i)),A[i++]=r,ve(N,m[h]);break n}if(p=p,x(p)===x(f))break}}if(l=N,m=N.g,a=i,i>A.length&&(j=A,A=K(ye,Ke,28,i,15,1),Ic(j,0,A,0,i)),i>0){for(D=!0,c=0;c=0;)Jp(n,A[s]);if(i!=a){for(r=a;--r>=i;)Jp(l,r);j=A,A=K(ye,Ke,28,i,15,1),Ic(j,0,A,0,i)}e=l}}}else for(e=M7e(n,e),r=n.i;--r>=0;)e.Hc(n.g[r])&&(Jp(n,r),D=!0);if(D){if(A!=null){for(t=e.gc(),d=t==1?J6(n,4,e.Kc().Pb(),null,A[0],k):J6(n,6,e,A,A[0],k),g=t<100?null:new F1(t),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g?(g.nj(d),g.oj()):it(n.e,d)}else{for(g=Oae(e.gc()),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g&&g.oj()}return!0}else return!1}function lLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;for(t=new yRn(e),t.a||RSe(e),l=FAe(e),h=new C0,j=new Eqn,k=new C(e.a);k.a0||t.o==zf&&r=t}function dLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue;for(D=e,I=new C0,N=new C0,a=A0(D,Scn),i=new IIn(n,t,I,N),Lje(i.a,i.b,i.c,i.d,a),h=(en=I.i,en||(I.i=new Cg(I,I.c))),kn=h.Kc();kn.Ob();)for(jn=u(kn.Pb(),166),r=u(ot(I,jn),21),k=r.Kc();k.Ob();)if(m=k.Pb(),H=u(Dg(n.d,m),166),H)f=(!jn.e&&(jn.e=new Nn(Mt,jn,10,9)),jn.e),ve(f,H);else throw s=bl(D,Eh),g=kWn+m+yWn+s,p=g+iv,M(new nh(p));for(l=(X=N.i,X||(N.i=new Cg(N,N.c))),Kn=l.Kc();Kn.Ob();)for(Rn=u(Kn.Pb(),166),c=u(ot(N,Rn),21),A=c.Kc();A.Ob();)if(j=A.Pb(),H=u(Dg(n.d,j),166),H)d=(!Rn.g&&(Rn.g=new Nn(Mt,Rn,9,10)),Rn.g),ve(d,H);else throw s=bl(D,Eh),g=kWn+j+yWn+s,p=g+iv,M(new nh(p));!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i!=0&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i!=0)&&(!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i<=1&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i<=1))&&(!t.a&&(t.a=new q(Mt,t,6,6)),t.a).i==1&&(ue=u(L((!t.a&&(t.a=new q(Mt,t,6,6)),t.a),0),166),!Sx(ue)&&!Px(ue)&&(mT(ue,u(L((!t.b&&(t.b=new Nn(he,t,4,7)),t.b),0),84)),vT(ue,u(L((!t.c&&(t.c=new Nn(he,t,5,8)),t.c),0),84))))}function bLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(D=n.a,N=0,H=D.length;N0?(d=u(sn(g.c.a,s-1),10),jn=yg(n.b,g,d),j=g.n.b-g.d.d-(d.n.b+d.o.b+d.d.a+jn)):j=g.n.b-g.d.d,l=y.Math.min(j,l),s1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,1),8).b-a.b)))));else for(k=new C(e.j);k.ar&&(c=g.a-r,s=et,i.c.length=0,r=g.a),g.a>=r&&(Bn(i.c,f),f.a.b>1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,f.a.b-2),8).b-g.b)))));if(i.c.length!=0&&c>e.o.a/2&&s>e.o.b/2){for(p=new Pc,ic(p,e),gi(p,(tn(),Xn)),p.n.a=e.o.a/2,A=new Pc,ic(A,e),gi(A,ae),A.n.a=e.o.a/2,A.n.b=e.o.b,h=new C(i);h.a=l.b?Zi(f,A):Zi(f,p)):(l=u(cbe(f.a),8),j=f.a.b==0?Pf(f.c):u(Ns(f.a),8),j.b>=l.b?Ii(f,A):Ii(f,p)),d=u(v(f,(cn(),Fr)),75),d&&iw(d,l,!0);e.n.a=r-e.o.a/2}}function gLe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(f=ge(n.b,0);f.b!=f.d.c;)if(s=u(be(f),40),!An(s.c,IS))for(l=_Ce(s,n),e==(ci(),Br)||e==Xr?Yt(l,new M4n):Yt(l,new T4n),h=l.c.length,i=0;i=0?p=zp(f):p=Bk(zp(f)),n.qf(Mv,p)),l=new Li,g=!1,n.pf(bb)?(ZX(l,u(n.of(bb),8)),g=!0):T1e(l,s.a/2,s.b/2),p.g){case 4:U(a,ou,(Yo(),ka)),U(a,rI,(hd(),p2)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(tn(),Zn)),g||(l.a=s.a),l.a-=s.a;break;case 2:U(a,ou,(Yo(),xw)),U(a,rI,(hd(),mv)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(tn(),Wn)),g||(l.a=0);break;case 1:U(a,Od,(vl(),v2)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(tn(),ae)),g||(l.b=s.b),l.b-=s.b;break;case 3:U(a,Od,(vl(),E3)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(tn(),Xn)),g||(l.b=0)}if(ZX(d.n,l),U(a,bb,l),e==Ud||e==tl||e==qc){if(m=0,e==Ud&&n.pf(v1))switch(p.g){case 1:case 2:m=u(n.of(v1),17).a;break;case 3:case 4:m=-u(n.of(v1),17).a}else switch(p.g){case 4:case 2:m=c.b,e==tl&&(m/=r.b);break;case 1:case 3:m=c.a,e==tl&&(m/=r.a)}U(a,fb,m)}return U(a,gc,p),a}function pLe(){Cz();function n(i){var r=this;this.dispatch=function(c){var s=c.data;switch(s.cmd){case"algorithms":var f=GY((Dn(),new Q3(new ol(Oa.b))));i.postMessage({id:s.id,data:f});break;case"categories":var h=GY((Dn(),new Q3(new ol(Oa.c))));i.postMessage({id:s.id,data:h});break;case"options":var l=GY((Dn(),new Q3(new ol(Oa.d))));i.postMessage({id:s.id,data:l});break;case"register":kOe(s.algorithms),i.postMessage({id:s.id});break;case"layout":WPe(s.graph,s.layoutOptions||{},s.options||{}),i.postMessage({id:s.id,data:s.graph});break}},this.saveDispatch=function(c){try{r.dispatch(c)}catch(s){i.postMessage({id:c.data.id,error:s})}}}function e(i){var r=this;this.dispatcher=new n({postMessage:function(c){r.onmessage({data:c})}}),this.postMessage=function(c){setTimeout(function(){r.dispatcher.saveDispatch({data:c})},0)}}if(typeof document===xB&&typeof self!==xB){var t=new n(self);self.onmessage=t.saveDispatch}else typeof gt!==xB&>.exports&&(Object.defineProperty(Sr,"__esModule",{value:!0}),gt.exports={default:e,Worker:e})}function szn(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new Tl(t),Ur(a,e),U(a,(W(),st),e),a.o.a=e.g,a.o.b=e.f,a.n.a=e.i,a.n.b=e.j,nn(t.a,a),Xe(n.a,e,a),((!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i!=0||on(un(z(e,(cn(),Rw)))))&&U(a,Zsn,(_n(),!0)),l=u(v(t,Hc),21),d=u(v(a,(cn(),Kt)),101),d==(Oi(),Sa)?U(a,Kt,Jf):d!=Jf&&l.Fc((pr(),yv)),g=0,i=u(v(t,Do),88),h=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));h.e!=h.i.gc();)f=u(ce(h),123),r=At(e),(x(z(r,Yh))!==x((lh(),k1))||x(z(r,Ld))===x((o1(),pv))||x(z(r,Ld))===x((o1(),gv))||on(un(z(r,lb)))||x(z(r,Fw))!==x((dd(),Ow))||x(z(r,ya))===x((gs(),pb))||x(z(r,ya))===x((gs(),Uw))||x(z(r,$d))===x((a1(),Pv))||x(z(r,$d))===x((a1(),Iv)))&&!on(un(z(e,lI)))&&ht(f,dt,Y(g++)),on(un(z(f,Fd)))||ADe(n,f,a,l,i,d);for(s=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));s.e!=s.i.gc();)c=u(ce(s),135),!on(un(z(c,Fd)))&&c.a&&nn(a.b,ex(c));return on(un(v(a,z8)))&&l.Fc((pr(),ZP)),on(un(v(a,wI)))&&(l.Fc((pr(),nI)),l.Fc(K8),U(a,Kt,Jf)),a}function QF(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(k=0,Rn=0,l=new C(n.b);l.ak&&(c&&(ir(X,p),ir(jn,Y(a.b-1)),nn(n.d,m),f.c.length=0),Ze=t.b,Lt+=p+e,p=0,d=y.Math.max(d,t.b+t.c+ue)),Bn(f.c,h),dRn(h,Ze,Lt),d=y.Math.max(d,Ze+ue+t.c),p=y.Math.max(p,g),Ze+=ue+e,m=h;if(hi(n.a,f),nn(n.d,u(sn(f,f.c.length-1),163)),d=y.Math.max(d,i),Kn=Lt+p+t.a,Knr.d.d+r.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))),i.b!=i.d.c&&(e=t);a&&(c=u(ee(n.f,s.d.i),60),e.bc.d.d+c.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))}for(f=new te(re(ji(p).a.Kc(),new En));pe(f);)s=u(fe(f),18),s.a.b!=0&&(e=u(Ns(s.a),8),s.d.j==(tn(),Xn)&&(j=new z5(e,new V(e.a,r.d.d),r,s),j.f.a=!0,j.a=s.d,Bn(k.c,j)),s.d.j==ae&&(j=new z5(e,new V(e.a,r.d.d+r.d.a),r,s),j.f.d=!0,j.a=s.d,Bn(k.c,j)))}return k}function ELe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(h=new Z,d=e.length,s=tY(t),l=0;l=m&&(I>m&&(p.c.length=0,m=I),Bn(p.c,s));p.c.length!=0&&(g=u(sn(p,cA(e,p.c.length)),131),Kn.a.Bc(g)!=null,g.s=k++,nen(g,kn,X),p.c.length=0)}for(N=n.c.length+1,f=new C(n);f.aRn.s&&(bo(t),du(Rn.i,i),i.c>0&&(i.a=Rn,nn(Rn.t,i),i.b=en,nn(en.i,i)))}function fzn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn;for(k=new Gc(e.b),N=new Gc(e.b),g=new Gc(e.b),jn=new Gc(e.b),j=new Gc(e.b),en=ge(e,0);en.b!=en.d.c;)for(H=u(be(en),12),f=new C(H.g);f.a0,A=H.g.c.length>0,l&&A?Bn(g.c,H):l?Bn(k.c,H):A&&Bn(N.c,H);for(m=new C(k);m.aI.nh()-l.b&&(g=I.nh()-l.b),p>I.oh()-l.d&&(p=I.oh()-l.d),a0){for(D=ge(n.f,0);D.b!=D.d.c;)I=u(be(D),10),I.p+=g-n.e;vnn(n),vo(n.f),ben(n,i,p)}else{for(xe(n.f,p),p.p=i,n.e=y.Math.max(n.e,i),c=new te(re(ji(p).a.Kc(),new En));pe(c);)r=u(fe(c),18),!r.c.i.c&&r.c.i.k==(Vn(),Ac)&&(xe(n.f,r.c.i),r.c.i.p=i-1);n.c=i}else vnn(n),vo(n.f),i=0,pe(new te(re(ji(p).a.Kc(),new En)))?(g=0,g=mRn(g,p),i=g+2,ben(n,i,p)):(xe(n.f,p),p.p=0,n.e=y.Math.max(n.e,0),n.b=u(sn(n.d.b,0),30),n.c=0);for(n.f.b==0||vnn(n),n.d.a.c.length=0,A=new Z,l=new C(n.d.b);l.a=48&&e<=57){for(i=e-48;r=48&&e<=57;)if(i=i*10+e-48,i<0)throw M(new Le($e((Ie(),_cn))))}else throw M(new Le($e((Ie(),XWn))));if(t=i,e==44){if(r>=n.j)throw M(new Le($e((Ie(),WWn))));if((e=Xi(n.i,r++))>=48&&e<=57){for(t=e-48;r=48&&e<=57;)if(t=t*10+e-48,t<0)throw M(new Le($e((Ie(),_cn))));if(i>t)throw M(new Le($e((Ie(),JWn))))}else t=-1}if(e!=125)throw M(new Le($e((Ie(),VWn))));n.bm(r)?(c=(nt(),nt(),new Xb(9,c)),n.d=r+1):(c=(nt(),nt(),new Xb(3,c)),n.d=r),c.Om(i),c.Nm(t),Ye(n)}}return c}function PLe(n){var e,t,i,r,c;switch(t=u(v(n,(W(),Hc)),21),e=DC(mZn),r=u(v(n,(cn(),Bw)),346),r==(jl(),M1)&&Mo(e,vZn),on(un(v(n,TH)))?Re(e,(Vi(),Xs),(tr(),$_)):Re(e,(Vi(),Oc),(tr(),$_)),v(n,(JM(),p9))!=null&&Mo(e,kZn),(on(un(v(n,nhn)))||on(un(v(n,Jfn))))&&Pu(e,(Vi(),zr),(tr(),Won)),u(v(n,Do),88).g){case 2:case 3:case 4:Pu(Re(e,(Vi(),Xs),(tr(),Qon)),zr,Jon)}switch(t.Hc((pr(),ZP))&&Pu(Re(Re(e,(Vi(),Xs),(tr(),Von)),Kc,zon),zr,Xon),x(v(n,ya))!==x((gs(),AI))&&Re(e,(Vi(),Oc),(tr(),asn)),t.Hc(eI)&&(Re(e,(Vi(),Xs),(tr(),gsn)),Re(e,Jh,bsn),Re(e,Oc,wsn)),x(v(n,fI))!==x((jm(),R8))&&x(v(n,$l))!==x((El(),Yj))&&Pu(e,(Vi(),zr),(tr(),usn)),on(un(v(n,Yfn)))&&Re(e,(Vi(),Oc),(tr(),csn)),on(un(v(n,jH)))&&Re(e,(Vi(),Oc),(tr(),psn)),HMe(n)&&(x(v(n,Bw))===x(M1)?i=u(v(n,Cj),299):i=u(v(n,yH),299),c=i==(Z4(),uH)?(tr(),dsn):(tr(),ksn),Re(e,(Vi(),Kc),c)),u(v(n,Thn),388).g){case 1:Re(e,(Vi(),Kc),(tr(),msn));break;case 2:Pu(Re(Re(e,(Vi(),Oc),(tr(),Hon)),Kc,qon),zr,Uon)}return x(v(n,Yh))!==x((lh(),k1))&&Re(e,(Vi(),Oc),(tr(),vsn)),e}function dzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D;if(Zc(n.a,e)){if(of(u(ee(n.a,e),49),t))return 1}else Xe(n.a,e,new ni);if(Zc(n.a,t)){if(of(u(ee(n.a,t),49),e))return-1}else Xe(n.a,t,new ni);if(Zc(n.e,e)){if(of(u(ee(n.e,e),49),t))return-1}else Xe(n.e,e,new ni);if(Zc(n.e,t)){if(of(u(ee(n.a,t),49),e))return 1}else Xe(n.e,t,new ni);if(n.c==(lh(),HH)||!kt(e,(W(),dt))||!kt(t,(W(),dt))){for(d=null,l=new C(e.j);l.as?Pm(n,e,t):Pm(n,t,e),rs?1:0}return i=u(v(e,(W(),dt)),17).a,c=u(v(t,dt),17).a,i>c?Pm(n,e,t):Pm(n,t,e),ic?1:0}function z0(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t==null)return null;if(n.a!=e.jk())throw M(new Gn(ev+e.xe()+nb));if(O(e,469)){if(j=kAe(u(e,685),t),!j)throw M(new Gn(fK+t+"' is not a valid enumerator of '"+e.xe()+"'"));return j}switch(r1((Du(),zi),e).Nl()){case 2:{t=Fc(t,!1);break}case 3:{t=Fc(t,!0);break}}if(i=r1(zi,e).Jl(),i)return i.jk().wi().ti(i,t);if(g=r1(zi,e).Ll(),g){for(j=new Z,l=z$(t),a=0,d=l.length;a1)for(m=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));m.e!=m.i.gc();)D5(m);for(s=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),j=Ze,Ze>H+N?j=H+N:ZeX+k?A=X+k:LtH-N&&jX-k&&AZe+ue?jn=Ze+ue:HLt+en?kn=Lt+en:XZe-ue&&jnLt-en&&knt&&(g=t-1),p=D1+to(e,24)*Iy*d-d/2,p<0?p=1:p>i&&(p=i-1),r=(B1(),h=new yE,h),aT(r,g),lT(r,p),ve((!s.a&&(s.a=new ti(xo,s,5)),s.a),r)}function bzn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ra,co),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new rmn))),Q(n,co,l3,1.3),Q(n,co,zm,(_n(),!1)),Q(n,co,W0,k1n),Q(n,co,yw,15),Q(n,co,MS,rn(Oce)),Q(n,co,i2,rn(Nce)),Q(n,co,d3,rn(xce)),Q(n,co,a3,rn(Fce)),Q(n,co,Xm,rn(Lce)),Q(n,co,o8,rn(Dq)),Q(n,co,Vm,rn(Bce)),Q(n,co,ecn,rn(C1n)),Q(n,co,tcn,rn(E1n)),Q(n,co,ncn,rn(Nq)),Q(n,co,Zrn,rn(M1n)),Q(n,co,icn,rn(v1n)),Q(n,co,rcn,rn(Lq)),Q(n,co,ccn,rn(m1n)),Q(n,co,ucn,rn(j1n)),Q(n,co,u8,rn(p1n)),Q(n,co,AS,rn(Dce)),Q(n,co,Qrn,rn(Rj)),Q(n,co,Jrn,rn(g1n)),Q(n,co,Yrn,rn(Kj)),Q(n,co,Wrn,rn(y1n))}function ZF(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en;if(D=n.e,a=n.d,r=n.a,D==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return A=new x1,A.a+="0E",A.a+=-e,A.a}if(k=a*10+1+7,j=K(fs,gh,28,k+1,15,1),t=k,a==1)if(c=r[0],c<0){en=vi(c,mr);do d=en,en=Wk(en,10),j[--t]=48+Ae(bs(d,er(en,10)))&ui;while(Ec(en,0)!=0)}else{en=c;do d=en,en=en/10|0,j[--t]=48+(d-en*10)&ui;while(en!=0)}else{N=K(ye,Ke,28,a,15,1),X=a,Ic(r,0,N,0,X);n:for(;;){for(I=0,f=X-1;f>=0;f--)H=nr(Fs(I,32),vi(N[f],mr)),p=mye(H),N[f]=Ae(p),I=Ae(w0(p,32));m=Ae(I),g=t;do j[--t]=48+m%10&ui;while((m=m/10|0)!=0&&t!=0);for(i=9-g+t,s=0;s0;s++)j[--t]=48;for(h=X-1;N[h]==0;h--)if(h==0)break n;X=h+1}for(;j[t]==48;)++t}return l=D<0,l&&(j[--t]=45),hh(j,t,k-t)}function wzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;switch(n.c=e,n.g=new de,t=(c0(),new Qd(n.c)),i=new IE(t),HY(i),D=Oe(z(n.c,(Qk(),U1n))),h=u(z(n.c,Uq),324),H=u(z(n.c,Gq),437),s=u(z(n.c,_1n),490),N=u(z(n.c,qq),438),n.j=$(R(z(n.c,Yce))),f=n.a,h.g){case 0:f=n.a;break;case 1:f=n.b;break;case 2:f=n.i;break;case 3:f=n.e;break;case 4:f=n.f;break;default:throw M(new Gn(xS+(h.f!=null?h.f:""+h.g)))}if(n.d=new sOn(f,H,s),U(n.d,(J4(),N8),un(z(n.c,Jce))),n.d.c=on(un(z(n.c,H1n))),AM(n.c).i==0)return n.d;for(d=new ne(AM(n.c));d.e!=d.i.gc();){for(a=u(ce(d),27),p=a.g/2,g=a.f/2,X=new V(a.i+p,a.j+g);Zc(n.g,X);)a0(X,(y.Math.random()-.5)*vh,(y.Math.random()-.5)*vh);k=u(z(a,(qe(),xv)),140),j=new jOn(X,new Ho(X.a-p-n.j/2-k.b,X.b-g-n.j/2-k.d,a.g+n.j+(k.b+k.c),a.f+n.j+(k.d+k.a))),nn(n.d.i,j),Xe(n.g,X,new bi(j,a))}switch(N.g){case 0:if(D==null)n.d.d=u(sn(n.d.i,0),68);else for(I=new C(n.d.i);I.a0?ue+1:1);for(s=new C(X.g);s.a0?ue+1:1)}n.c[l]==0?xe(n.e,k):n.a[l]==0&&xe(n.f,k),++l}for(m=-1,p=1,d=new Z,n.d=u(v(e,(W(),S3)),234);Fo>0;){for(;n.e.b!=0;)Lt=u(UL(n.e),10),n.b[Lt.p]=m--,Oen(n,Lt),--Fo;for(;n.f.b!=0;)Yu=u(UL(n.f),10),n.b[Yu.p]=p++,Oen(n,Yu),--Fo;if(Fo>0){for(g=Wi,I=new C(D);I.a=g&&(N>g&&(d.c.length=0,g=N),Bn(d.c,k)));a=n.sg(d),n.b[a.p]=p++,Oen(n,a),--Fo}}for(Ze=D.c.length+1,l=0;ln.b[Rr]&&(U0(i,!0),U(e,kj,(_n(),!0)));n.a=null,n.c=null,n.b=null,vo(n.f),vo(n.e),t.Vg()}function gzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X;for(H=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),a=new Mu,N=new de,X=MUn(H),Vc(N.f,H,X),g=new de,i=new Ct,m=$h(Eo(S(T(Oo,1),Fn,20,0,[(!e.d&&(e.d=new Nn(Vt,e,8,5)),e.d),(!e.e&&(e.e=new Nn(Vt,e,7,4)),e.e)])));pe(m);){if(p=u(fe(m),74),(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));p!=n&&(j=u(L((!p.a&&(p.a=new q(Mt,p,6,6)),p.a),0),166),xt(i,j,i.c.b,i.c),k=u(Kr(wr(N.f,j)),13),k||(k=MUn(j),Vc(N.f,j,k)),d=t?mi(new rr(u(sn(X,X.c.length-1),8)),u(sn(k,k.c.length-1),8)):mi(new rr((Ln(0,X.c.length),u(X.c[0],8))),(Ln(0,k.c.length),u(k.c[0],8))),Vc(g.f,j,d))}if(i.b!=0)for(A=u(sn(X,t?X.c.length-1:0),8),l=1;l1&&xt(a,A,a.c.b,a.c),p$(r)));A=I}return a}function pzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(t.Ug(pVn,1),Rn=u(Wr(ut(new Tn(null,new In(e,16)),new L4n),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),a=u(Wr(ut(new Tn(null,new In(e,16)),new kkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),m=u(Wr(ut(new Tn(null,new In(e,16)),new vkn(e)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[Yr]))),15),k=K(NI,OS,40,e.gc(),0,1),s=0;s=0&&kn=0&&!k[p]){k[p]=r,a.gd(f),--f;break}if(p=kn-g,p=0&&!k[p]){k[p]=r,a.gd(f),--f;break}}for(m.jd(new N4n),h=k.length-1;h>=0;h--)!k[h]&&!m.dc()&&(k[h]=u(m.Xb(0),40),m.gd(0));for(l=0;l=0;h--)xe(t,(Ln(h,s.c.length),u(s.c[h],8)));return t}function vzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;for(D=$(R(z(e,(_h(),Xw)))),p=$(R(z(e,a9))),g=$(R(z(e,UI))),NQ((!e.a&&(e.a=new q(Qe,e,10,11)),e.a)),A=fGn((!e.a&&(e.a=new q(Qe,e,10,11)),e.a),D,n.b),j=0;jg&&Xk((Ln(g,e.c.length),u(e.c[g],186)),a),a=null;e.c.length>g&&(Ln(g,e.c.length),u(e.c[g],186)).a.c.length==0;)du(e,(Ln(g,e.c.length),e.c[g]));if(!a){--s;continue}if(!on(un(u(sn(a.b,0),27).of((Bf(),Kj))))&&YSe(e,m,c,a,j,t,g,i)){k=!0;continue}if(j){if(p=m.b,d=a.f,!on(un(u(sn(a.b,0),27).of(Kj)))&&pOe(e,m,c,a,t,g,i,r)){if(k=!0,p=n.j){n.a=-1,n.c=1;return}if(e=Xi(n.i,n.d++),n.a=e,n.b==1){switch(e){case 92:if(i=10,n.d>=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;case 45:(n.e&512)==512&&n.d=n.j||Xi(n.i,n.d)!=63)break;if(++n.d>=n.j)throw M(new Le($e((Ie(),jK))));switch(e=Xi(n.i,n.d++),e){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw M(new Le($e((Ie(),jK))));if(e=Xi(n.i,n.d++),e==61)i=16;else if(e==33)i=17;else throw M(new Le($e((Ie(),PWn))));break;case 35:for(;n.d=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;default:i=0}n.c=i}function RLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t.Ug("Process compaction",1),!!on(un(v(e,(lc(),Mln))))){for(r=u(v(e,vb),88),p=$(R(v(e,fq))),aIe(n,e,r),tLe(e,p/2/2),m=e.b,ud(m,new akn(r)),l=ge(m,0);l.b!=l.d.c;)if(h=u(be(l),40),!on(un(v(h,(pt(),Ca))))){if(i=BAe(h,r),k=LPe(h,e),d=0,g=0,i)switch(j=i.e,r.g){case 2:d=j.a-p-h.f.a,k.e.a-p-h.f.ad&&(d=k.e.a+k.f.a+p),g=d+h.f.a;break;case 4:d=j.b-p-h.f.b,k.e.b-p-h.f.bd&&(d=k.e.b+k.f.b+p),g=d+h.f.b}else if(k)switch(r.g){case 2:d=k.e.a-p-h.f.a,g=d+h.f.a;break;case 1:d=k.e.a+k.f.a+p,g=d+h.f.a;break;case 4:d=k.e.b-p-h.f.b,g=d+h.f.b;break;case 3:d=k.e.b+k.f.b+p,g=d+h.f.b}x(v(e,sq))===x((b5(),Lj))?(c=d,s=g,f=im(ut(new Tn(null,new In(n.a,16)),new eMn(c,s))),f.a!=null?r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d:(r==(ci(),Br)||r==us?f=im(ut(O$n(new Tn(null,new In(n.a,16))),new dkn(c))):f=im(ut(O$n(new Tn(null,new In(n.a,16))),new bkn(c))),f.a!=null&&(r==Br||r==Xr?h.e.a=$(R((oe(f.a!=null),u(f.a,42)).a)):h.e.b=$(R((oe(f.a!=null),u(f.a,42)).a)))),f.a!=null&&(a=qr(n.a,(oe(f.a!=null),f.a),0),a>0&&a!=u(v(h,Sh),17).a&&(U(h,pln,(_n(),!0)),U(h,Sh,Y(a))))):r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d}t.Vg()}}function kzn(n){var e,t,i,r,c,s,f,h,l;for(n.b=1,Ye(n),e=null,n.c==0&&n.a==94?(Ye(n),e=(nt(),nt(),new yo(4)),xc(e,0,cv),f=new yo(4)):f=(nt(),nt(),new yo(4)),r=!0;(l=n.c)!=1;){if(l==0&&n.a==93&&!r){e&&(Q5(e,f),f=e);break}if(t=n.a,i=!1,l==10)switch(t){case 100:case 68:case 119:case 87:case 115:case 83:gw(f,Im(t)),i=!0;break;case 105:case 73:case 99:case 67:t=(gw(f,Im(t)),-1),t<0&&(i=!0);break;case 112:case 80:if(h=$nn(n,t),!h)throw M(new Le($e((Ie(),EK))));gw(f,h),i=!0;break;default:t=gen(n)}else if(l==24&&!r){if(e&&(Q5(e,f),f=e),c=kzn(n),Q5(f,c),n.c!=0||n.a!=93)throw M(new Le($e((Ie(),RWn))));break}if(Ye(n),!i){if(l==0){if(t==91)throw M(new Le($e((Ie(),Rcn))));if(t==93)throw M(new Le($e((Ie(),Kcn))));if(t==45&&!r&&n.a!=93)throw M(new Le($e((Ie(),CK))))}if(n.c!=0||n.a!=45||t==45&&r)xc(f,t,t);else{if(Ye(n),(l=n.c)==1)throw M(new Le($e((Ie(),US))));if(l==0&&n.a==93)xc(f,t,t),xc(f,45,45);else{if(l==0&&n.a==93||l==24)throw M(new Le($e((Ie(),CK))));if(s=n.a,l==0){if(s==91)throw M(new Le($e((Ie(),Rcn))));if(s==93)throw M(new Le($e((Ie(),Kcn))));if(s==45)throw M(new Le($e((Ie(),CK))))}else l==10&&(s=gen(n));if(Ye(n),t>s)throw M(new Le($e((Ie(),HWn))));xc(f,t,s)}}}r=!1}if(n.c==1)throw M(new Le($e((Ie(),US))));return Ug(f),W5(f),n.b=0,Ye(n),f}function KLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H;if(t.Ug("Coffman-Graham Layering",1),e.a.c.length==0){t.Vg();return}for(H=u(v(e,(cn(),thn)),17).a,h=0,s=0,g=new C(e.a);g.a=H||!N8e(A,i))&&(i=mIn(e,a)),$i(A,i),c=new te(re(ji(A).a.Kc(),new En));pe(c);)r=u(fe(c),18),!n.a[r.p]&&(k=r.c.i,--n.e[k.p],n.e[k.p]==0&&Mp(ym(p,k),_m));for(l=a.c.length-1;l>=0;--l)nn(e.b,(Ln(l,a.c.length),u(a.c[l],30)));e.a.c.length=0,t.Vg()}function yzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N;N=!1;do for(N=!1,c=e?new Ha(n.a.b).a.gc()-2:1;e?c>=0:cu(v(j,dt),17).a)&&(D=!1);if(D){for(h=e?c+1:c-1,f=yJ(n.a,Y(h)),s=!1,I=!0,i=!1,a=ge(f,0);a.b!=a.d.c;)l=u(be(a),10),kt(l,dt)?l.p!=d.p&&(s=s|(e?u(v(l,dt),17).au(v(d,dt),17).a),I=!1):!s&&I&&l.k==(Vn(),Ac)&&(i=!0,e?g=u(fe(new te(re(ji(l).a.Kc(),new En))),18).c.i:g=u(fe(new te(re(Qt(l).a.Kc(),new En))),18).d.i,g==d&&(e?t=u(fe(new te(re(Qt(l).a.Kc(),new En))),18).d.i:t=u(fe(new te(re(ji(l).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,g),17).a:u(xb(n.a,g),17).a-u(xb(n.a,t),17).a)<=2&&(I=!1)));if(i&&I&&(e?t=u(fe(new te(re(Qt(d).a.Kc(),new En))),18).d.i:t=u(fe(new te(re(ji(d).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,d),17).a:u(xb(n.a,d),17).a-u(xb(n.a,t),17).a)<=2&&t.k==(Vn(),zt)&&(I=!1)),s||I){for(k=YHn(n,d,e);k.a.gc()!=0;)m=u(k.a.ec().Kc().Pb(),10),k.a.Bc(m)!=null,Bi(k,YHn(n,m,e));--p,N=!0}}}while(N)}function _Le(n){Me(n.c,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#decimal"])),Me(n.d,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#integer"])),Me(n.e,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#boolean"])),Me(n.f,Fe,S(T(fn,1),J,2,6,[Ji,"EBoolean",Je,"EBoolean:Object"])),Me(n.i,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#byte"])),Me(n.g,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Me(n.j,Fe,S(T(fn,1),J,2,6,[Ji,"EByte",Je,"EByte:Object"])),Me(n.n,Fe,S(T(fn,1),J,2,6,[Ji,"EChar",Je,"EChar:Object"])),Me(n.t,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#double"])),Me(n.u,Fe,S(T(fn,1),J,2,6,[Ji,"EDouble",Je,"EDouble:Object"])),Me(n.F,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#float"])),Me(n.G,Fe,S(T(fn,1),J,2,6,[Ji,"EFloat",Je,"EFloat:Object"])),Me(n.I,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#int"])),Me(n.J,Fe,S(T(fn,1),J,2,6,[Ji,"EInt",Je,"EInt:Object"])),Me(n.N,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#long"])),Me(n.O,Fe,S(T(fn,1),J,2,6,[Ji,"ELong",Je,"ELong:Object"])),Me(n.Z,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#short"])),Me(n.$,Fe,S(T(fn,1),J,2,6,[Ji,"EShort",Je,"EShort:Object"])),Me(n._,Fe,S(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#string"]))}function HLe(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m;return g=u(i.a,17).a,p=u(i.b,17).a,d=n.b,m=n.c,f=0,a=0,e==(ci(),Br)||e==Xr?(a=b7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new x4n),new m4n))),d.e.b+d.f.b/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new rMn(r,l)),new v4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new cMn(r,h)),new k4n)))))):(a=b7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new C4n),new p4n))),d.e.a+d.f.a/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new tMn(r,l)),new y4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new iMn(r,h)),new j4n)))))),e==Br?(ir(n.a,new V($(R(v(d,(pt(),yf))))-r,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a+m.f.a,m.e.b+m.f.b/2))):e==Xr?(ir(n.a,new V($(R(v(d,(pt(),Ws))))+r,d.e.b+d.f.b/2)),ir(n.a,new V(d.e.a+d.f.a+r,f)),ir(n.a,new V(m.e.a-r-c,f)),ir(n.a,new V(m.e.a-r-c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a,m.e.b+m.f.b/2))):e==us?(ir(n.a,new V(f,$(R(v(d,(pt(),yf))))-r)),ir(n.a,new V(f,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r))):(n.a.b==0||(u(Ns(n.a),8).b=$(R(v(d,(pt(),Ws))))+r*u(s.b,17).a),ir(n.a,new V(f,$(R(v(d,(pt(),Ws))))+r*u(s.b,17).a)),ir(n.a,new V(f,m.e.b-r*u(s.a,17).a-c))),new bi(Y(g),Y(p))}function qLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;if(s=!0,d=null,i=null,r=null,e=!1,p=$oe,l=null,c=null,f=0,h=yx(n,f,Kdn,_dn),h=0&&An(n.substr(f,2),"//")?(f+=2,h=yx(n,f,N9,$9),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h):d!=null&&(f==n.length||(zn(f,n.length),n.charCodeAt(f)!=47))&&(s=!1,h=GX(n,wu(35),f),h==-1&&(h=n.length),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h);if(!t&&f0&&Xi(a,a.length-1)==58&&(r=a,f=h)),fgF(c))&&(d=c);for(!d&&(d=(Ln(0,j.c.length),u(j.c[0],185))),k=new C(e.b);k.ad&&(Kn=0,ue+=a+en,a=0),lUn(H,s,Kn,ue),e=y.Math.max(e,Kn+X.a),a=y.Math.max(a,X.b),Kn+=X.a+en;for(N=new de,t=new de,kn=new C(n);kn.a=-1900?1:0,t>=4?Be(n,S(T(fn,1),J,2,6,[Bzn,Rzn])[f]):Be(n,S(T(fn,1),J,2,6,["BC","AD"])[f]);break;case 121:f9e(n,t,i);break;case 77:ASe(n,t,i);break;case 107:h=r.q.getHours(),h==0?Bh(n,24,t):Bh(n,h,t);break;case 83:_Me(n,t,r);break;case 69:a=i.q.getDay(),t==5?Be(n,S(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[a]):t==4?Be(n,S(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[a]):Be(n,S(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[a]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?Be(n,S(T(fn,1),J,2,6,["AM","PM"])[1]):Be(n,S(T(fn,1),J,2,6,["AM","PM"])[0]);break;case 104:d=r.q.getHours()%12,d==0?Bh(n,12,t):Bh(n,d,t);break;case 75:g=r.q.getHours()%12,Bh(n,g,t);break;case 72:p=r.q.getHours(),Bh(n,p,t);break;case 99:m=i.q.getDay(),t==5?Be(n,S(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[m]):t==4?Be(n,S(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[m]):t==3?Be(n,S(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[m]):Bh(n,m,1);break;case 76:k=i.q.getMonth(),t==5?Be(n,S(T(fn,1),J,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[k]):t==4?Be(n,S(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB])[k]):t==3?Be(n,S(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[k]):Bh(n,k+1,t);break;case 81:j=i.q.getMonth()/3|0,t<4?Be(n,S(T(fn,1),J,2,6,["Q1","Q2","Q3","Q4"])[j]):Be(n,S(T(fn,1),J,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[j]);break;case 100:A=i.q.getDate(),Bh(n,A,t);break;case 109:l=r.q.getMinutes(),Bh(n,l,t);break;case 115:s=r.q.getSeconds(),Bh(n,s,t);break;case 122:t<4?Be(n,c.c[0]):Be(n,c.c[1]);break;case 118:Be(n,c.b);break;case 90:t<3?Be(n,NEe(c)):t==3?Be(n,REe(c)):Be(n,KEe(c.a));break;default:return!1}return!0}function htn(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze;if(nUn(e),h=u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84),a=u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84),f=Gr(h),l=Gr(a),s=(!e.a&&(e.a=new q(Mt,e,6,6)),e.a).i==0?null:u(L((!e.a&&(e.a=new q(Mt,e,6,6)),e.a),0),166),en=u(ee(n.a,f),10),Kn=u(ee(n.a,l),10),jn=null,ue=null,O(h,193)&&(X=u(ee(n.a,h),305),O(X,12)?jn=u(X,12):O(X,10)&&(en=u(X,10),jn=u(sn(en.j,0),12))),O(a,193)&&(Rn=u(ee(n.a,a),305),O(Rn,12)?ue=u(Rn,12):O(Rn,10)&&(Kn=u(Rn,10),ue=u(sn(Kn.j,0),12))),!en||!Kn)throw M(new fp("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(k=new E0,Ur(k,e),U(k,(W(),st),e),U(k,(cn(),Fr),null),p=u(v(i,Hc),21),en==Kn&&p.Fc((pr(),_8)),jn||(H=(gr(),Jc),kn=null,s&&pg(u(v(en,Kt),101))&&(kn=new V(s.j,s.k),UDn(kn,J7(e)),mLn(kn,t),Yb(l,f)&&(H=Vu,tt(kn,en.n))),jn=eGn(en,kn,H,i)),ue||(H=(gr(),Vu),Ze=null,s&&pg(u(v(Kn,Kt),101))&&(Ze=new V(s.b,s.c),UDn(Ze,J7(e)),mLn(Ze,t)),ue=eGn(Kn,Ze,H,Hi(Kn))),Zi(k,jn),Ii(k,ue),(jn.e.c.length>1||jn.g.c.length>1||ue.e.c.length>1||ue.g.c.length>1)&&p.Fc((pr(),K8)),g=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));g.e!=g.i.gc();)if(d=u(ce(g),135),!on(un(z(d,Fd)))&&d.a)switch(j=ex(d),nn(k.b,j),u(v(j,Ah),278).g){case 1:case 2:p.Fc((pr(),kv));break;case 0:p.Fc((pr(),vv)),U(j,Ah,(Nf(),Bv))}if(c=u(v(i,X8),322),A=u(v(i,vI),323),r=c==(u5(),pj)||A==(T5(),KH),s&&(!s.a&&(s.a=new ti(xo,s,5)),s.a).i!=0&&r){for(I=Zk(s),m=new Mu,N=ge(I,0);N.b!=N.d.c;)D=u(be(N),8),xe(m,new rr(D));U(k,rfn,m)}return k}function XLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt;for(kn=0,Rn=0,en=new de,H=u(ho(_b(_r(new Tn(null,new In(n.b,16)),new E4n),new O4n)),17).a+1,jn=K(ye,Ke,28,H,15,1),j=K(ye,Ke,28,H,15,1),k=0;k1)for(f=ue+1;fl.b.e.b*(1-A)+l.c.e.b*A));m++);if(X.gc()>0&&(Ze=l.a.b==0?Ki(l.b.e):u(Ns(l.a),8),D=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&Ze.b>D.b&&l.c.e.b>D.b||m<=0&&Ze.bl.b.e.a*(1-A)+l.c.e.a*A));m++);if(X.gc()>0&&(Ze=l.a.b==0?Ki(l.b.e):u(Ns(l.a),8),D=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&Ze.a>D.a&&l.c.e.a>D.a||m<=0&&Ze.a=$(R(v(n,(pt(),kln))))&&++Rn):(p.f&&p.d.e.a<=$(R(v(n,(pt(),rq))))&&++kn,p.g&&p.c.e.a+p.c.f.a>=$(R(v(n,(pt(),vln))))&&++Rn)}else N==0?Dnn(l):N<0&&(++jn[ue],++j[Lt],Kn=HLe(l,e,n,new bi(Y(kn),Y(Rn)),t,i,new bi(Y(j[Lt]),Y(jn[ue]))),kn=u(Kn.a,17).a,Rn=u(Kn.b,17).a)}function VLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;if(i=e,h=t,n.b&&i.j==(tn(),Wn)&&h.j==(tn(),Wn)&&(I=i,i=h,h=I),Zc(n.a,i)){if(of(u(ee(n.a,i),49),h))return 1}else Xe(n.a,i,new ni);if(Zc(n.a,h)){if(of(u(ee(n.a,h),49),i))return-1}else Xe(n.a,h,new ni);if(Zc(n.d,i)){if(of(u(ee(n.d,i),49),h))return-1}else Xe(n.d,i,new ni);if(Zc(n.d,h)){if(of(u(ee(n.a,h),49),i))return 1}else Xe(n.d,h,new ni);if(i.j!=h.j)return A=xle(i.j,h.j),A==-1?ns(n,h,i):ns(n,i,h),A;if(i.e.c.length!=0&&h.e.c.length!=0){if(n.b&&(A=RFn(i,h),A!=0))return A==-1?ns(n,h,i):A==1&&ns(n,i,h),A;if(c=u(sn(i.e,0),18).c.i,a=u(sn(h.e,0),18).c.i,c==a)return r=u(v(u(sn(i.e,0),18),(W(),dt)),17).a,l=u(v(u(sn(h.e,0),18),dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0;for(m=n.c,k=0,j=m.length;kl?ns(n,i,h):ns(n,h,i),rl?1:0):n.b&&(A=RFn(i,h),A!=0)?(A==-1?ns(n,h,i):A==1&&ns(n,i,h),A):(s=0,d=0,kt(u(sn(i.g,0),18),dt)&&(s=u(v(u(sn(i.g,0),18),dt),17).a),kt(u(sn(h.g,0),18),dt)&&(d=u(v(u(sn(i.g,0),18),dt),17).a),f&&f==g?on(un(v(u(sn(i.g,0),18),Gf)))&&!on(un(v(u(sn(h.g,0),18),Gf)))?(ns(n,i,h),1):!on(un(v(u(sn(i.g,0),18),Gf)))&&on(un(v(u(sn(h.g,0),18),Gf)))?(ns(n,h,i),-1):(s>d?ns(n,i,h):ns(n,h,i),sd?1:0):(n.f&&(n.f._b(f)&&(s=u(n.f.xc(f),17).a),n.f._b(g)&&(d=u(n.f.xc(g),17).a)),s>d?ns(n,i,h):ns(n,h,i),sd?1:0))):i.e.c.length!=0&&h.g.c.length!=0?(ns(n,i,h),1):i.g.c.length!=0&&h.e.c.length!=0?(ns(n,h,i),-1):kt(i,(W(),dt))&&kt(h,dt)?(r=u(v(i,dt),17).a,l=u(v(h,dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0):(ns(n,h,i),-1)}function WLe(n){n.gb||(n.gb=!0,n.b=hc(n,0),Ft(n.b,18),jt(n.b,19),n.a=hc(n,1),Ft(n.a,1),jt(n.a,2),jt(n.a,3),jt(n.a,4),jt(n.a,5),n.o=hc(n,2),Ft(n.o,8),Ft(n.o,9),jt(n.o,10),jt(n.o,11),jt(n.o,12),jt(n.o,13),jt(n.o,14),jt(n.o,15),jt(n.o,16),jt(n.o,17),jt(n.o,18),jt(n.o,19),jt(n.o,20),jt(n.o,21),jt(n.o,22),jt(n.o,23),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),n.p=hc(n,3),Ft(n.p,2),Ft(n.p,3),Ft(n.p,4),Ft(n.p,5),jt(n.p,6),jt(n.p,7),Nr(n.p),Nr(n.p),n.q=hc(n,4),Ft(n.q,8),n.v=hc(n,5),jt(n.v,9),Nr(n.v),Nr(n.v),Nr(n.v),n.w=hc(n,6),Ft(n.w,2),Ft(n.w,3),Ft(n.w,4),jt(n.w,5),n.B=hc(n,7),jt(n.B,1),Nr(n.B),Nr(n.B),Nr(n.B),n.Q=hc(n,8),jt(n.Q,0),Nr(n.Q),n.R=hc(n,9),Ft(n.R,1),n.S=hc(n,10),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),n.T=hc(n,11),jt(n.T,10),jt(n.T,11),jt(n.T,12),jt(n.T,13),jt(n.T,14),Nr(n.T),Nr(n.T),n.U=hc(n,12),Ft(n.U,2),Ft(n.U,3),jt(n.U,4),jt(n.U,5),jt(n.U,6),jt(n.U,7),Nr(n.U),n.V=hc(n,13),jt(n.V,10),n.W=hc(n,14),Ft(n.W,18),Ft(n.W,19),Ft(n.W,20),jt(n.W,21),jt(n.W,22),jt(n.W,23),n.bb=hc(n,15),Ft(n.bb,10),Ft(n.bb,11),Ft(n.bb,12),Ft(n.bb,13),Ft(n.bb,14),Ft(n.bb,15),Ft(n.bb,16),jt(n.bb,17),Nr(n.bb),Nr(n.bb),n.eb=hc(n,16),Ft(n.eb,2),Ft(n.eb,3),Ft(n.eb,4),Ft(n.eb,5),Ft(n.eb,6),Ft(n.eb,7),jt(n.eb,8),jt(n.eb,9),n.ab=hc(n,17),Ft(n.ab,0),Ft(n.ab,1),n.H=hc(n,18),jt(n.H,0),jt(n.H,1),jt(n.H,2),jt(n.H,3),jt(n.H,4),jt(n.H,5),Nr(n.H),n.db=hc(n,19),jt(n.db,2),n.c=We(n,20),n.d=We(n,21),n.e=We(n,22),n.f=We(n,23),n.i=We(n,24),n.g=We(n,25),n.j=We(n,26),n.k=We(n,27),n.n=We(n,28),n.r=We(n,29),n.s=We(n,30),n.t=We(n,31),n.u=We(n,32),n.fb=We(n,33),n.A=We(n,34),n.C=We(n,35),n.D=We(n,36),n.F=We(n,37),n.G=We(n,38),n.I=We(n,39),n.J=We(n,40),n.L=We(n,41),n.M=We(n,42),n.N=We(n,43),n.O=We(n,44),n.P=We(n,45),n.X=We(n,46),n.Y=We(n,47),n.Z=We(n,48),n.$=We(n,49),n._=We(n,50),n.cb=We(n,51),n.K=We(n,52))}function JLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue;for(s=new Ct,X=u(v(t,(cn(),Do)),88),k=0,Bi(s,(!e.a&&(e.a=new q(Qe,e,10,11)),e.a));s.b!=0;)a=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),l=At(a),(x(z(l,Yh))!==x((lh(),k1))||x(z(l,Ld))===x((o1(),pv))||x(z(l,Ld))===x((o1(),gv))||on(un(z(l,lb)))||x(z(l,Fw))!==x((dd(),Ow))||x(z(l,ya))===x((gs(),pb))||x(z(l,ya))===x((gs(),Uw))||x(z(l,$d))===x((a1(),Pv))||x(z(l,$d))===x((a1(),Iv)))&&!on(un(z(a,lI)))&&ht(a,(W(),dt),Y(k++)),A=!on(un(z(a,Fd))),A&&(g=(!a.a&&(a.a=new q(Qe,a,10,11)),a.a).i!=0,m=Mye(a),p=x(z(a,Bw))===x((jl(),M1)),ue=!Df(a,(qe(),$v))||TLn(Oe(z(a,$v))),N=null,ue&&p&&(g||m)&&(N=$Un(a),U(N,Do,X),kt(N,Mj)&&xjn(new XY($(R(v(N,Mj)))),N),u(z(a,xd),181).gc()!=0&&(d=N,qt(new Tn(null,(!a.c&&(a.c=new q(Qu,a,9,9)),new In(a.c,16))),new q9n(d)),Aqn(a,N))),en=t,jn=u(ee(n.a,At(a)),10),jn&&(en=jn.e),D=szn(n,a,en),N&&(D.e=N,N.e=D,Bi(s,(!a.a&&(a.a=new q(Qe,a,10,11)),a.a))));for(k=0,xt(s,e,s.c.b,s.c);s.b!=0;){for(c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),h=new ne((!c.b&&(c.b=new q(Vt,c,12,3)),c.b));h.e!=h.i.gc();)f=u(ce(h),74),nUn(f),(x(z(e,Yh))!==x((lh(),k1))||x(z(e,Ld))===x((o1(),pv))||x(z(e,Ld))===x((o1(),gv))||on(un(z(e,lb)))||x(z(e,Fw))!==x((dd(),Ow))||x(z(e,ya))===x((gs(),pb))||x(z(e,ya))===x((gs(),Uw))||x(z(e,$d))===x((a1(),Pv))||x(z(e,$d))===x((a1(),Iv)))&&ht(f,(W(),dt),Y(k++)),Rn=Gr(u(L((!f.b&&(f.b=new Nn(he,f,4,7)),f.b),0),84)),Kn=Gr(u(L((!f.c&&(f.c=new Nn(he,f,5,8)),f.c),0),84)),!(on(un(z(f,Fd)))||on(un(z(Rn,Fd)))||on(un(z(Kn,Fd))))&&(j=_0(f)&&on(un(z(Rn,Rw)))&&on(un(z(f,Nd))),H=c,j||Yb(Kn,Rn)?H=Rn:Yb(Rn,Kn)&&(H=Kn),en=t,jn=u(ee(n.a,H),10),jn&&(en=jn.e),I=htn(n,f,H,en),U(I,(W(),nfn),JTe(n,f,e,t)));if(p=x(z(c,Bw))===x((jl(),M1)),p)for(r=new ne((!c.a&&(c.a=new q(Qe,c,10,11)),c.a));r.e!=r.i.gc();)i=u(ce(r),27),ue=!Df(i,(qe(),$v))||TLn(Oe(z(i,$v))),kn=x(z(i,Bw))===x(M1),ue&&kn&&xt(s,i,s.c.b,s.c)}}function W(){W=F;var n,e;st=new lt(Jtn),nfn=new lt("coordinateOrigin"),wH=new lt("processors"),Zsn=new Dt("compoundNode",(_n(),!1)),yj=new Dt("insideConnections",!1),rfn=new lt("originalBendpoints"),cfn=new lt("originalDummyNodePosition"),ufn=new lt("originalLabelEdge"),q8=new lt("representedLabels"),H8=new lt("endLabels"),M3=new lt("endLabel.origin"),A3=new Dt("labelSide",(To(),nE)),k2=new Dt("maxEdgeThickness",0),Gf=new Dt("reversed",!1),S3=new lt(MXn),kf=new Dt("longEdgeSource",null),js=new Dt("longEdgeTarget",null),$w=new Dt("longEdgeHasLabelDummies",!1),jj=new Dt("longEdgeBeforeLabelDummy",!1),rI=new Dt("edgeConstraint",(hd(),Y_)),sb=new lt("inLayerLayoutUnit"),Od=new Dt("inLayerConstraint",(vl(),vj)),T3=new Dt("inLayerSuccessorConstraint",new Z),ifn=new Dt("inLayerSuccessorConstraintBetweenNonDummies",!1),Xu=new lt("portDummy"),iI=new Dt("crossingHint",Y(0)),Hc=new Dt("graphProperties",(e=u(uf(cH),9),new _o(e,u($s(e,e.length),9),0))),gc=new Dt("externalPortSide",(tn(),sc)),tfn=new Dt("externalPortSize",new Li),hH=new lt("externalPortReplacedDummies"),cI=new lt("externalPortReplacedDummy"),Nl=new Dt("externalPortConnections",(n=u(uf(lr),9),new _o(n,u($s(n,n.length),9),0))),fb=new Dt(gXn,0),Ysn=new lt("barycenterAssociates"),P3=new lt("TopSideComments"),C3=new lt("BottomSideComments"),tI=new lt("CommentConnectionPort"),aH=new Dt("inputCollect",!1),bH=new Dt("outputCollect",!1),kj=new Dt("cyclic",!1),efn=new lt("crossHierarchyMap"),pH=new lt("targetOffset"),new Dt("splineLabelSize",new Li),j2=new lt("spacings"),uI=new Dt("partitionConstraint",!1),ob=new lt("breakingPoint.info"),ffn=new lt("splines.survivingEdge"),Dd=new lt("splines.route.start"),E2=new lt("splines.edgeChain"),sfn=new lt("originalPortConstraints"),hb=new lt("selfLoopHolder"),jv=new lt("splines.nsPortY"),dt=new lt("modelOrder"),dH=new lt("longEdgeTargetNode"),va=new Dt(QXn,!1),y2=new Dt(QXn,!1),lH=new lt("layerConstraints.hiddenNodes"),ofn=new lt("layerConstraints.opposidePort"),gH=new lt("targetNode.modelOrder")}function QLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m;for(d=ge(n.b,0);d.b!=d.d.c;)if(a=u(be(d),40),!An(a.c,IS))for(c=u(Wr(new Tn(null,new In(uCe(a,n),16)),qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),e==(ci(),Br)||e==Xr?c.jd(new A4n):c.jd(new S4n),m=c.gc(),r=0;r0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a,a.e.b+a.f.b*s))):e==Xr?(l=$(R(v(a,(pt(),yf)))),a.e.a-i>l?ir(u(c.Xb(r),65).a,new V(l-t,a.e.b+a.f.b*s)):u(c.Xb(r),65).a.b>0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a,a.e.b+a.f.b*s))):e==us?(l=$(R(v(a,(pt(),Ws)))),a.e.b+a.f.b+i0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b+i/5.3+a.f.b)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b+i/5.3+a.f.b)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b+a.f.b))):(l=$(R(v(a,(pt(),yf)))),MFn(u(c.Xb(r),65),n)?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,u(Ns(u(c.Xb(r),65).a),8).b)):a.e.b-i>l?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,l-t)):u(c.Xb(r),65).a.b>0&&(f=u(Ns(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u(Ns(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b-i/5.3)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b-i/5.3)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b)))}function qe(){qe=F;var n,e;$v=new lt(xVn),H2=new lt(FVn),gan=(Rh(),Vq),Sue=new Mn(rrn,gan),$2=new Mn(l3,null),Pue=new lt(pcn),man=(wd(),yt(Qq,S(T(Yq,1),G,298,0,[Jq]))),Gj=new Mn(MS,man),zj=new Mn(Uy,(_n(),!1)),van=(ci(),Wf),_d=new Mn(xR,van),jan=(El(),lU),yan=new Mn(qy,jan),Due=new Mn(wcn,!1),Man=(jl(),uO),B2=new Mn(CS,Man),Nan=new f0(12),C1=new Mn(W0,Nan),Vj=new Mn(u8,!1),tU=new Mn(AS,!1),Wj=new Mn(o8,!1),Ran=(Oi(),Sa),j9=new Mn(tR,Ran),N3=new lt(TS),Jj=new lt(Ny),fU=new lt(uS),hU=new lt(c8),Tan=new Mu,kb=new Mn(wrn,Tan),Oue=new Mn(mrn,!1),Lue=new Mn(vrn,!1),Aan=new Yv,xv=new Mn(yrn,Aan),tO=new Mn(trn,!1),Fue=new Mn(BVn,1),F2=new lt(RVn),x2=new lt(KVn),Fv=new Mn($y,!1),new Mn(_Vn,!0),Y(0),new Mn(HVn,Y(100)),new Mn(qVn,!1),Y(0),new Mn(UVn,Y(4e3)),Y(0),new Mn(GVn,Y(400)),new Mn(zVn,!1),new Mn(XVn,!1),new Mn(VVn,!0),new Mn(WVn,!1),pan=(qT(),wU),Iue=new Mn(gcn,pan),Bue=new Mn(Gin,10),Rue=new Mn(zin,10),qan=new Mn(WB,20),Kue=new Mn(Xin,10),Uan=new Mn(eR,2),Gan=new Mn($R,10),zan=new Mn(Vin,0),iO=new Mn(Qin,5),Xan=new Mn(Win,1),Van=new Mn(Jin,1),qd=new Mn(yw,20),_ue=new Mn(Yin,10),Qan=new Mn(Zin,10),$3=new lt(nrn),Jan=new tTn,Wan=new Mn(jrn,Jan),$ue=new lt(BR),$an=!1,Nue=new Mn(FR,$an),Pan=new f0(5),San=new Mn(orn,Pan),Ian=(lw(),e=u(uf(yr),9),new _o(e,u($s(e,e.length),9),0)),R2=new Mn(Xm,Ian),Fan=(Fg(),Aa),xan=new Mn(hrn,Fan),rU=new lt(lrn),cU=new lt(arn),uU=new lt(drn),iU=new lt(brn),Oan=(n=u(uf(I9),9),new _o(n,u($s(n,n.length),9),0)),Hd=new Mn(i2,Oan),Lan=yn((io(),Hv)),Ma=new Mn(a3,Lan),Dan=new V(0,0),K2=new Mn(d3,Dan),Vw=new Mn(zm,!1),kan=(Nf(),Bv),nU=new Mn(grn,kan),Zq=new Mn(oS,!1),Y(1),new Mn(JVn,null),Ban=new lt(krn),oU=new lt(prn),Han=(tn(),sc),_2=new Mn(irn,Han),oo=new lt(ern),Kan=(zu(),yn(Pa)),Ww=new Mn(Vm,Kan),sU=new Mn(srn,!1),_an=new Mn(frn,!0),cO=new Mn(xy,1),Yan=new Mn(mcn,null),Qj=new Mn(Fy,150),rO=new Mn(By,1.414),x3=new Mn(J0,null),Hue=new Mn(vcn,1),Xj=new Mn(crn,!1),eU=new Mn(urn,!1),Ean=new Mn(JB,1),Can=(pA(),dU),new Mn(QVn,Can),xue=!0,Uue=(Gp(),Yw),Gue=Yw,que=Yw}function tr(){tr=F,Qon=new ei("DIRECTION_PREPROCESSOR",0),Von=new ei("COMMENT_PREPROCESSOR",1),d2=new ei("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),N_=new ei("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),gsn=new ei("PARTITION_PREPROCESSOR",4),IP=new ei("LABEL_DUMMY_INSERTER",5),KP=new ei("SELF_LOOP_PREPROCESSOR",6),Lw=new ei("LAYER_CONSTRAINT_PREPROCESSOR",7),bsn=new ei("PARTITION_MIDPROCESSOR",8),csn=new ei("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),asn=new ei("NODE_PROMOTION",10),Dw=new ei("LAYER_CONSTRAINT_POSTPROCESSOR",11),wsn=new ei("PARTITION_POSTPROCESSOR",12),tsn=new ei("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),psn=new ei("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Hon=new ei("BREAKING_POINT_INSERTER",15),NP=new ei("LONG_EDGE_SPLITTER",16),$_=new ei("PORT_SIDE_PROCESSOR",17),SP=new ei("INVERTED_PORT_PROCESSOR",18),FP=new ei("PORT_LIST_SORTER",19),vsn=new ei("SORT_BY_INPUT_ORDER_OF_MODEL",20),xP=new ei("NORTH_SOUTH_PORT_PREPROCESSOR",21),qon=new ei("BREAKING_POINT_PROCESSOR",22),dsn=new ei(qXn,23),ksn=new ei(UXn,24),BP=new ei("SELF_LOOP_PORT_RESTORER",25),msn=new ei("SINGLE_EDGE_GRAPH_WRAPPER",26),PP=new ei("IN_LAYER_CONSTRAINT_PROCESSOR",27),Zon=new ei("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),hsn=new ei("LABEL_AND_NODE_SIZE_PROCESSOR",29),fsn=new ei("INNERMOST_NODE_MARGIN_CALCULATOR",30),_P=new ei("SELF_LOOP_ROUTER",31),zon=new ei("COMMENT_NODE_MARGIN_CALCULATOR",32),AP=new ei("END_LABEL_PREPROCESSOR",33),DP=new ei("LABEL_DUMMY_SWITCHER",34),Gon=new ei("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),hv=new ei("LABEL_SIDE_SELECTOR",36),osn=new ei("HYPEREDGE_DUMMY_MERGER",37),isn=new ei("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),lsn=new ei("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),x8=new ei("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),Won=new ei("CONSTRAINTS_POSTPROCESSOR",41),Xon=new ei("COMMENT_POSTPROCESSOR",42),ssn=new ei("HYPERNODE_PROCESSOR",43),rsn=new ei("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),LP=new ei("LONG_EDGE_JOINER",45),RP=new ei("SELF_LOOP_POSTPROCESSOR",46),Uon=new ei("BREAKING_POINT_REMOVER",47),$P=new ei("NORTH_SOUTH_PORT_POSTPROCESSOR",48),usn=new ei("HORIZONTAL_COMPACTOR",49),OP=new ei("LABEL_DUMMY_REMOVER",50),nsn=new ei("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),Yon=new ei("END_LABEL_SORTER",52),bj=new ei("REVERSED_EDGE_RESTORER",53),TP=new ei("END_LABEL_POSTPROCESSOR",54),esn=new ei("HIERARCHICAL_NODE_RESIZER",55),Jon=new ei("DIRECTION_POSTPROCESSOR",56)}function ltn(){ltn=F,kfn=(pk(),WP),iee=new Mn(uin,kfn),wee=new Mn(oin,(_n(),!1)),Tfn=(KM(),fH),kee=new Mn(lS,Tfn),$ee=new Mn(sin,!1),xee=new Mn(fin,!0),Pne=new Mn(hin,!1),Nfn=(wk(),UH),Qee=new Mn(lin,Nfn),Y(1),cte=new Mn(ain,Y(7)),ute=new Mn(din,!1),gee=new Mn(bin,!1),vfn=(o1(),J_),tee=new Mn(fR,vfn),Pfn=(a1(),xH),Nee=new Mn(Hy,Pfn),Afn=(Yo(),Ej),Tee=new Mn(win,Afn),Y(-1),Mee=new Mn(gin,null),Y(-1),Aee=new Mn(pin,Y(-1)),Y(-1),See=new Mn(hR,Y(4)),Y(-1),Iee=new Mn(lR,Y(2)),Sfn=(gs(),AI),Lee=new Mn(aR,Sfn),Y(0),Dee=new Mn(dR,Y(0)),Eee=new Mn(bR,Y(et)),mfn=(u5(),B8),eee=new Mn(h8,mfn),Kne=new Mn(min,!1),Xne=new Mn(wR,.1),Zne=new Mn(gR,!1),Wne=new Mn(vin,null),Jne=new Mn(kin,null),Y(-1),Qne=new Mn(yin,null),Y(-1),Yne=new Mn(jin,Y(-1)),Y(0),_ne=new Mn(Ein,Y(40)),pfn=(Z4(),oH),Gne=new Mn(pR,pfn),gfn=mj,Hne=new Mn(aS,gfn),Lfn=(T5(),Y8),Jee=new Mn(r2,Lfn),_ee=new lt(dS),Ifn=(hk(),QP),Fee=new Mn(mR,Ifn),Ofn=(Jk(),YP),Ree=new Mn(vR,Ofn),Uee=new Mn(kR,.3),zee=new lt(yR),Dfn=(cw(),TI),Xee=new Mn(jR,Dfn),Efn=(ST(),zH),see=new Mn(Cin,Efn),Cfn=(d5(),VH),fee=new Mn(Min,Cfn),Mfn=(om(),e9),hee=new Mn(bS,Mfn),aee=new Mn(wS,.2),uee=new Mn(ER,2),ete=new Mn(Tin,null),ite=new Mn(Ain,10),tte=new Mn(Sin,10),rte=new Mn(Pin,20),Y(0),Yee=new Mn(Iin,Y(0)),Y(0),Zee=new Mn(Oin,Y(0)),Y(0),nte=new Mn(Din,Y(0)),Ine=new Mn(CR,!1),afn=(jm(),R8),Dne=new Mn(Lin,afn),lfn=(QM(),V_),One=new Mn(Nin,lfn),mee=new Mn(gS,!1),Y(0),pee=new Mn(MR,Y(16)),Y(0),vee=new Mn(TR,Y(5)),Ffn=(DT(),QH),Tte=new Mn(Ol,Ffn),ote=new Mn(pS,10),hte=new Mn(mS,1),xfn=(bT(),VP),pte=new Mn(l8,xfn),dte=new lt(AR),$fn=Y(1),Y(0),wte=new Mn(SR,$fn),Bfn=(dT(),JH),Ite=new Mn(vS,Bfn),Ate=new lt(kS),jte=new Mn(yS,!0),kte=new Mn(jS,2),Cte=new Mn(PR,!0),jfn=(vA(),JP),cee=new Mn($in,jfn),yfn=(Yp(),bv),ree=new Mn(xin,yfn),wfn=(lh(),k1),Rne=new Mn(ES,wfn),Bne=new Mn(Fin,!1),Fne=new Mn(Bin,!1),dfn=(dd(),Ow),Lne=new Mn(IR,dfn),bfn=(g5(),FH),xne=new Mn(Rin,bfn),Nne=new Mn(OR,0),$ne=new Mn(DR,0),jee=Q_,yee=pj,Pee=CI,Oee=CI,Cee=$H,Vne=(jl(),M1),nee=B8,zne=B8,qne=B8,Une=M1,Hee=Z8,qee=Y8,Bee=Y8,Kee=Y8,Gee=_H,Wee=Z8,Vee=Z8,lee=(El(),F3),dee=F3,bee=e9,oee=Yj,ste=Ov,fte=Gw,lte=Ov,ate=Gw,mte=Ov,vte=Gw,bte=W_,gte=VP,Ote=Ov,Dte=Gw,Ste=Ov,Pte=Gw,Ete=Gw,yte=Gw,Mte=Gw}function YLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn,Kn,ue,Ze,Lt,Yu,Rr,Fo,V2,D1,tf,rf,Xd,q3,Fa,U3,Ih,cl,Mb,G3,W2,Oh,Vd,Rl,Dse,y0n,Tb,q9,DU,z3,U9,ug,G9,LU,Lse;for(y0n=0,Ze=e,Rr=0,D1=Ze.length;Rr0&&(n.a[Ih.p]=y0n++)}for(U9=0,Lt=t,Fo=0,tf=Lt.length;Fo0;){for(Ih=(oe(W2.b>0),u(W2.a.Xb(W2.c=--W2.b),12)),G3=0,f=new C(Ih.e);f.a0&&(Ih.j==(tn(),Xn)?(n.a[Ih.p]=U9,++U9):(n.a[Ih.p]=U9+rf+q3,++q3))}U9+=q3}for(Mb=new de,m=new ih,ue=e,Yu=0,V2=ue.length;Yul.b&&(l.b=Oh)):Ih.i.c==Dse&&(Ohl.c&&(l.c=Oh));for(F4(k,0,k.length,null),z3=K(ye,Ke,28,k.length,15,1),i=K(ye,Ke,28,U9+1,15,1),A=0;A0;)en%2>0&&(r+=LU[en+1]),en=(en-1)/2|0,++LU[en];for(kn=K(Iie,Fn,374,k.length*2,0,1),N=0;N0&&V7(Yu.f),z(A,Yan)!=null&&(f=u(z(A,Yan),347),Mb=f.Tg(A),vg(A,y.Math.max(A.g,Mb.a),y.Math.max(A.f,Mb.b)));if(tf=u(z(e,C1),107),p=e.g-(tf.b+tf.c),g=e.f-(tf.d+tf.a),Oh.bh("Available Child Area: ("+p+"|"+g+")"),ht(e,$2,p/g),cRn(e,r,i.eh(V2)),u(z(e,x3),280)==aO&&(otn(e),vg(e,tf.b+$(R(z(e,F2)))+tf.c,tf.d+$(R(z(e,x2)))+tf.a)),Oh.bh("Executed layout algorithm: "+Oe(z(e,$v))+" on node "+e.k),u(z(e,x3),280)==Yw){if(p<0||g<0)throw M(new _l("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+e.k));for(Df(e,F2)||Df(e,x2)||otn(e),k=$(R(z(e,F2))),m=$(R(z(e,x2))),Oh.bh("Desired Child Area: ("+k+"|"+m+")"),Xd=p/k,q3=g/m,rf=y.Math.min(Xd,y.Math.min(q3,$(R(z(e,Hue))))),ht(e,cO,rf),Oh.bh(e.k+" -- Local Scale Factor (X|Y): ("+Xd+"|"+q3+")"),N=u(z(e,Gj),21),c=0,s=0,rf'?":An(PWn,n)?"'(?<' or '(? toIndex: ",Stn=", toIndex: ",Ptn="Index: ",Itn=", Size: ",Hm="org.eclipse.elk.alg.common",Ne={50:1},Yzn="org.eclipse.elk.alg.common.compaction",Zzn="Scanline/EventHandler",zh="org.eclipse.elk.alg.common.compaction.oned",nXn="CNode belongs to another CGroup.",eXn="ISpacingsHandler/1",FB="The ",BB=" instance has been finished already.",tXn="The direction ",iXn=" is not supported by the CGraph instance.",rXn="OneDimensionalCompactor",cXn="OneDimensionalCompactor/lambda$0$Type",uXn="Quadruplet",oXn="ScanlineConstraintCalculator",sXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",fXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",hXn="ScanlineConstraintCalculator/Timestamp",lXn="ScanlineConstraintCalculator/lambda$0$Type",ph={178:1,46:1},RB="org.eclipse.elk.alg.common.compaction.options",oc="org.eclipse.elk.core.data",Otn="org.eclipse.elk.polyomino.traversalStrategy",Dtn="org.eclipse.elk.polyomino.lowLevelSort",Ltn="org.eclipse.elk.polyomino.highLevelSort",Ntn="org.eclipse.elk.polyomino.fill",ps={134:1},KB="polyomino",t8="org.eclipse.elk.alg.common.networksimplex",Xh={183:1,3:1,4:1},aXn="org.eclipse.elk.alg.common.nodespacing",kd="org.eclipse.elk.alg.common.nodespacing.cellsystem",qm="CENTER",dXn={217:1,336:1},$tn={3:1,4:1,5:1,603:1},s3="LEFT",f3="RIGHT",xtn="Vertical alignment cannot be null",Ftn="BOTTOM",nS="org.eclipse.elk.alg.common.nodespacing.internal",i8="UNDEFINED",Kf=.01,Oy="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",bXn="LabelPlacer/lambda$0$Type",wXn="LabelPlacer/lambda$1$Type",gXn="portRatioOrPosition",Um="org.eclipse.elk.alg.common.overlaps",_B="DOWN",mh="org.eclipse.elk.alg.common.polyomino",eS="NORTH",HB="EAST",qB="SOUTH",UB="WEST",tS="org.eclipse.elk.alg.common.polyomino.structures",Btn="Direction",GB="Grid is only of size ",zB=". Requested point (",XB=") is out of bounds.",iS=" Given center based coordinates were (",Dy="org.eclipse.elk.graph.properties",pXn="IPropertyHolder",Rtn={3:1,96:1,137:1},h3="org.eclipse.elk.alg.common.spore",mXn="org.eclipse.elk.alg.common.utils",yd={205:1},n2="org.eclipse.elk.core",vXn="Connected Components Compaction",kXn="org.eclipse.elk.alg.disco",rS="org.eclipse.elk.alg.disco.graph",VB="org.eclipse.elk.alg.disco.options",Ktn="CompactionStrategy",_tn="org.eclipse.elk.disco.componentCompaction.strategy",Htn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",qtn="org.eclipse.elk.disco.debug.discoGraph",Utn="org.eclipse.elk.disco.debug.discoPolys",yXn="componentCompaction",jd="org.eclipse.elk.disco",WB="org.eclipse.elk.spacing.componentComponent",JB="org.eclipse.elk.edge.thickness",l3="org.eclipse.elk.aspectRatio",W0="org.eclipse.elk.padding",e2="org.eclipse.elk.alg.disco.transform",QB=1.5707963267948966,t2=17976931348623157e292,kw={3:1,4:1,5:1,198:1},jXn={3:1,6:1,4:1,5:1,100:1,115:1},YB="org.eclipse.elk.alg.force",Gtn="ComponentsProcessor",EXn="ComponentsProcessor/1",ztn="ElkGraphImporter/lambda$0$Type",Ly="org.eclipse.elk.alg.force.graph",CXn="Component Layout",Xtn="org.eclipse.elk.alg.force.model",cS="org.eclipse.elk.force.model",Vtn="org.eclipse.elk.force.iterations",Wtn="org.eclipse.elk.force.repulsivePower",ZB="org.eclipse.elk.force.temperature",vh=.001,nR="org.eclipse.elk.force.repulsion",r8="org.eclipse.elk.alg.force.options",Gm=1.600000023841858,cu="org.eclipse.elk.force",Ny="org.eclipse.elk.priority",yw="org.eclipse.elk.spacing.nodeNode",eR="org.eclipse.elk.spacing.edgeLabel",uS="org.eclipse.elk.randomSeed",c8="org.eclipse.elk.separateConnectedComponents",u8="org.eclipse.elk.interactive",tR="org.eclipse.elk.portConstraints",oS="org.eclipse.elk.edgeLabels.inline",o8="org.eclipse.elk.omitNodeMicroLayout",zm="org.eclipse.elk.nodeSize.fixedGraphSize",a3="org.eclipse.elk.nodeSize.options",i2="org.eclipse.elk.nodeSize.constraints",Xm="org.eclipse.elk.nodeLabels.placement",Vm="org.eclipse.elk.portLabels.placement",$y="org.eclipse.elk.topdownLayout",xy="org.eclipse.elk.topdown.scaleFactor",Fy="org.eclipse.elk.topdown.hierarchicalNodeWidth",By="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",J0="org.eclipse.elk.topdown.nodeType",Jtn="origin",MXn="random",TXn="boundingBox.upLeft",AXn="boundingBox.lowRight",Qtn="org.eclipse.elk.stress.fixed",Ytn="org.eclipse.elk.stress.desiredEdgeLength",Ztn="org.eclipse.elk.stress.dimension",nin="org.eclipse.elk.stress.epsilon",ein="org.eclipse.elk.stress.iterationLimit",ha="org.eclipse.elk.stress",SXn="ELK Stress",d3="org.eclipse.elk.nodeSize.minimum",sS="org.eclipse.elk.alg.force.stress",PXn="Layered layout",b3="org.eclipse.elk.alg.layered",Ry="org.eclipse.elk.alg.layered.compaction.components",s8="org.eclipse.elk.alg.layered.compaction.oned",fS="org.eclipse.elk.alg.layered.compaction.oned.algs",Ed="org.eclipse.elk.alg.layered.compaction.recthull",_f="org.eclipse.elk.alg.layered.components",kh="NONE",tin="MODEL_ORDER",Mc={3:1,6:1,4:1,9:1,5:1,126:1},IXn={3:1,6:1,4:1,5:1,150:1,100:1,115:1},hS="org.eclipse.elk.alg.layered.compound",vt={47:1},Bc="org.eclipse.elk.alg.layered.graph",iR=" -> ",OXn="Not supported by LGraph",iin="Port side is undefined",rR={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},b1={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},DXn={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},LXn=`([{"' \r +`,NXn=`)]}"' \r +`,$Xn="The given string contains parts that cannot be parsed as numbers.",Ky="org.eclipse.elk.core.math",xXn={3:1,4:1,140:1,214:1,423:1},FXn={3:1,4:1,107:1,214:1,423:1},w1="org.eclipse.elk.alg.layered.graph.transform",BXn="ElkGraphImporter",RXn="ElkGraphImporter/lambda$1$Type",KXn="ElkGraphImporter/lambda$2$Type",_Xn="ElkGraphImporter/lambda$4$Type",Qn="org.eclipse.elk.alg.layered.intermediate",HXn="Node margin calculation",qXn="ONE_SIDED_GREEDY_SWITCH",UXn="TWO_SIDED_GREEDY_SWITCH",cR="No implementation is available for the layout processor ",uR="IntermediateProcessorStrategy",oR="Node '",GXn="FIRST_SEPARATE",zXn="LAST_SEPARATE",XXn="Odd port side processing",di="org.eclipse.elk.alg.layered.intermediate.compaction",f8="org.eclipse.elk.alg.layered.intermediate.greedyswitch",Vh="org.eclipse.elk.alg.layered.p3order.counting",_y={230:1},w3="org.eclipse.elk.alg.layered.intermediate.loops",Io="org.eclipse.elk.alg.layered.intermediate.loops.ordering",la="org.eclipse.elk.alg.layered.intermediate.loops.routing",rin="org.eclipse.elk.alg.layered.intermediate.preserveorder",yh="org.eclipse.elk.alg.layered.intermediate.wrapping",Tc="org.eclipse.elk.alg.layered.options",sR="INTERACTIVE",cin="GREEDY",VXn="DEPTH_FIRST",WXn="EDGE_LENGTH",JXn="SELF_LOOPS",QXn="firstTryWithInitialOrder",uin="org.eclipse.elk.layered.directionCongruency",oin="org.eclipse.elk.layered.feedbackEdges",lS="org.eclipse.elk.layered.interactiveReferencePoint",sin="org.eclipse.elk.layered.mergeEdges",fin="org.eclipse.elk.layered.mergeHierarchyEdges",hin="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",lin="org.eclipse.elk.layered.portSortingStrategy",ain="org.eclipse.elk.layered.thoroughness",din="org.eclipse.elk.layered.unnecessaryBendpoints",bin="org.eclipse.elk.layered.generatePositionAndLayerIds",fR="org.eclipse.elk.layered.cycleBreaking.strategy",Hy="org.eclipse.elk.layered.layering.strategy",win="org.eclipse.elk.layered.layering.layerConstraint",gin="org.eclipse.elk.layered.layering.layerChoiceConstraint",pin="org.eclipse.elk.layered.layering.layerId",hR="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",lR="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",aR="org.eclipse.elk.layered.layering.nodePromotion.strategy",dR="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",bR="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",h8="org.eclipse.elk.layered.crossingMinimization.strategy",min="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",wR="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",gR="org.eclipse.elk.layered.crossingMinimization.semiInteractive",vin="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",kin="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",yin="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",jin="org.eclipse.elk.layered.crossingMinimization.positionId",Ein="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",pR="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",aS="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",r2="org.eclipse.elk.layered.nodePlacement.strategy",dS="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",mR="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",vR="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",kR="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",yR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",jR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",Cin="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",Min="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",bS="org.eclipse.elk.layered.edgeRouting.splines.mode",wS="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",ER="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",Tin="org.eclipse.elk.layered.spacing.baseValue",Ain="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",Sin="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",Pin="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",Iin="org.eclipse.elk.layered.priority.direction",Oin="org.eclipse.elk.layered.priority.shortness",Din="org.eclipse.elk.layered.priority.straightness",CR="org.eclipse.elk.layered.compaction.connectedComponents",Lin="org.eclipse.elk.layered.compaction.postCompaction.strategy",Nin="org.eclipse.elk.layered.compaction.postCompaction.constraints",gS="org.eclipse.elk.layered.highDegreeNodes.treatment",MR="org.eclipse.elk.layered.highDegreeNodes.threshold",TR="org.eclipse.elk.layered.highDegreeNodes.treeHeight",Ol="org.eclipse.elk.layered.wrapping.strategy",pS="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",mS="org.eclipse.elk.layered.wrapping.correctionFactor",l8="org.eclipse.elk.layered.wrapping.cutting.strategy",AR="org.eclipse.elk.layered.wrapping.cutting.cuts",SR="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",vS="org.eclipse.elk.layered.wrapping.validify.strategy",kS="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",yS="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",jS="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",PR="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",$in="org.eclipse.elk.layered.edgeLabels.sideSelection",xin="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",ES="org.eclipse.elk.layered.considerModelOrder.strategy",Fin="org.eclipse.elk.layered.considerModelOrder.portModelOrder",Bin="org.eclipse.elk.layered.considerModelOrder.noModelOrder",IR="org.eclipse.elk.layered.considerModelOrder.components",Rin="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",OR="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",DR="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",LR="layering",YXn="layering.minWidth",ZXn="layering.nodePromotion",Wm="crossingMinimization",CS="org.eclipse.elk.hierarchyHandling",nVn="crossingMinimization.greedySwitch",eVn="nodePlacement",tVn="nodePlacement.bk",iVn="edgeRouting",qy="org.eclipse.elk.edgeRouting",Hf="spacing",Kin="priority",_in="compaction",rVn="compaction.postCompaction",cVn="Specifies whether and how post-process compaction is applied.",Hin="highDegreeNodes",qin="wrapping",uVn="wrapping.cutting",oVn="wrapping.validify",Uin="wrapping.multiEdge",NR="edgeLabels",a8="considerModelOrder",Gin="org.eclipse.elk.spacing.commentComment",zin="org.eclipse.elk.spacing.commentNode",Xin="org.eclipse.elk.spacing.edgeEdge",$R="org.eclipse.elk.spacing.edgeNode",Vin="org.eclipse.elk.spacing.labelLabel",Win="org.eclipse.elk.spacing.labelPortHorizontal",Jin="org.eclipse.elk.spacing.labelPortVertical",Qin="org.eclipse.elk.spacing.labelNode",Yin="org.eclipse.elk.spacing.nodeSelfLoop",Zin="org.eclipse.elk.spacing.portPort",nrn="org.eclipse.elk.spacing.individual",ern="org.eclipse.elk.port.borderOffset",trn="org.eclipse.elk.noLayout",irn="org.eclipse.elk.port.side",Uy="org.eclipse.elk.debugMode",rrn="org.eclipse.elk.alignment",crn="org.eclipse.elk.insideSelfLoops.activate",urn="org.eclipse.elk.insideSelfLoops.yo",xR="org.eclipse.elk.direction",orn="org.eclipse.elk.nodeLabels.padding",srn="org.eclipse.elk.portLabels.nextToPortIfPossible",frn="org.eclipse.elk.portLabels.treatAsGroup",hrn="org.eclipse.elk.portAlignment.default",lrn="org.eclipse.elk.portAlignment.north",arn="org.eclipse.elk.portAlignment.south",drn="org.eclipse.elk.portAlignment.west",brn="org.eclipse.elk.portAlignment.east",MS="org.eclipse.elk.contentAlignment",wrn="org.eclipse.elk.junctionPoints",grn="org.eclipse.elk.edgeLabels.placement",prn="org.eclipse.elk.port.index",mrn="org.eclipse.elk.commentBox",vrn="org.eclipse.elk.hypernode",krn="org.eclipse.elk.port.anchor",FR="org.eclipse.elk.partitioning.activate",BR="org.eclipse.elk.partitioning.partition",TS="org.eclipse.elk.position",yrn="org.eclipse.elk.margins",jrn="org.eclipse.elk.spacing.portsSurrounding",AS="org.eclipse.elk.interactiveLayout",dc="org.eclipse.elk.core.util",Ern={3:1,4:1,5:1,601:1},sVn="NETWORK_SIMPLEX",Crn="SIMPLE",vr={106:1,47:1},SS="org.eclipse.elk.alg.layered.p1cycles",Dl="org.eclipse.elk.alg.layered.p2layers",Mrn={413:1,230:1},fVn={846:1,3:1,4:1},Nu="org.eclipse.elk.alg.layered.p3order",kr="org.eclipse.elk.alg.layered.p4nodes",hVn={3:1,4:1,5:1,854:1},jh=1e-5,aa="org.eclipse.elk.alg.layered.p4nodes.bk",RR="org.eclipse.elk.alg.layered.p5edges",pf="org.eclipse.elk.alg.layered.p5edges.orthogonal",KR="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",_R=1e-6,jw="org.eclipse.elk.alg.layered.p5edges.splines",HR=.09999999999999998,PS=1e-8,lVn=4.71238898038469,Trn=3.141592653589793,Ll="org.eclipse.elk.alg.mrtree",qR=.10000000149011612,IS="SUPER_ROOT",d8="org.eclipse.elk.alg.mrtree.graph",Arn=-17976931348623157e292,Rc="org.eclipse.elk.alg.mrtree.intermediate",aVn="Processor compute fanout",OS={3:1,6:1,4:1,5:1,534:1,100:1,115:1},dVn="Set neighbors in level",Gy="org.eclipse.elk.alg.mrtree.options",bVn="DESCENDANTS",Srn="org.eclipse.elk.mrtree.compaction",Prn="org.eclipse.elk.mrtree.edgeEndTextureLength",Irn="org.eclipse.elk.mrtree.treeLevel",Orn="org.eclipse.elk.mrtree.positionConstraint",Drn="org.eclipse.elk.mrtree.weighting",Lrn="org.eclipse.elk.mrtree.edgeRoutingMode",Nrn="org.eclipse.elk.mrtree.searchOrder",wVn="Position Constraint",uu="org.eclipse.elk.mrtree",gVn="org.eclipse.elk.tree",pVn="Processor arrange level",Jm="org.eclipse.elk.alg.mrtree.p2order",po="org.eclipse.elk.alg.mrtree.p4route",$rn="org.eclipse.elk.alg.radial",Cd=6.283185307179586,xrn="Before",Frn=5e-324,DS="After",Brn="org.eclipse.elk.alg.radial.intermediate",mVn="COMPACTION",UR="org.eclipse.elk.alg.radial.intermediate.compaction",vVn={3:1,4:1,5:1,100:1},Rrn="org.eclipse.elk.alg.radial.intermediate.optimization",GR="No implementation is available for the layout option ",b8="org.eclipse.elk.alg.radial.options",Krn="org.eclipse.elk.radial.centerOnRoot",_rn="org.eclipse.elk.radial.orderId",Hrn="org.eclipse.elk.radial.radius",LS="org.eclipse.elk.radial.rotate",zR="org.eclipse.elk.radial.compactor",XR="org.eclipse.elk.radial.compactionStepSize",qrn="org.eclipse.elk.radial.sorter",Urn="org.eclipse.elk.radial.wedgeCriteria",Grn="org.eclipse.elk.radial.optimizationCriteria",VR="org.eclipse.elk.radial.rotation.targetAngle",WR="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",zrn="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",kVn="Compaction",Xrn="rotation",es="org.eclipse.elk.radial",yVn="org.eclipse.elk.alg.radial.p1position.wedge",Vrn="org.eclipse.elk.alg.radial.sorting",jVn=5.497787143782138,EVn=3.9269908169872414,CVn=2.356194490192345,MVn="org.eclipse.elk.alg.rectpacking",NS="org.eclipse.elk.alg.rectpacking.intermediate",JR="org.eclipse.elk.alg.rectpacking.options",Wrn="org.eclipse.elk.rectpacking.trybox",Jrn="org.eclipse.elk.rectpacking.currentPosition",Qrn="org.eclipse.elk.rectpacking.desiredPosition",Yrn="org.eclipse.elk.rectpacking.inNewRow",Zrn="org.eclipse.elk.rectpacking.widthApproximation.strategy",ncn="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",ecn="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",tcn="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",icn="org.eclipse.elk.rectpacking.packing.strategy",rcn="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",ccn="org.eclipse.elk.rectpacking.packing.compaction.iterations",ucn="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",QR="widthApproximation",TVn="Compaction Strategy",AVn="packing.compaction",co="org.eclipse.elk.rectpacking",Qm="org.eclipse.elk.alg.rectpacking.p1widthapproximation",$S="org.eclipse.elk.alg.rectpacking.p2packing",SVn="No Compaction",ocn="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",zy="org.eclipse.elk.alg.rectpacking.util",xS="No implementation available for ",Ew="org.eclipse.elk.alg.spore",Cw="org.eclipse.elk.alg.spore.options",Q0="org.eclipse.elk.sporeCompaction",YR="org.eclipse.elk.underlyingLayoutAlgorithm",scn="org.eclipse.elk.processingOrder.treeConstruction",fcn="org.eclipse.elk.processingOrder.spanningTreeCostFunction",ZR="org.eclipse.elk.processingOrder.preferredRoot",nK="org.eclipse.elk.processingOrder.rootSelection",eK="org.eclipse.elk.structure.structureExtractionStrategy",hcn="org.eclipse.elk.compaction.compactionStrategy",lcn="org.eclipse.elk.compaction.orthogonal",acn="org.eclipse.elk.overlapRemoval.maxIterations",dcn="org.eclipse.elk.overlapRemoval.runScanline",tK="processingOrder",PVn="overlapRemoval",Ym="org.eclipse.elk.sporeOverlap",IVn="org.eclipse.elk.alg.spore.p1structure",iK="org.eclipse.elk.alg.spore.p2processingorder",rK="org.eclipse.elk.alg.spore.p3execution",OVn="Topdown Layout",DVn="Invalid index: ",Zm="org.eclipse.elk.core.alg",c2={341:1},Mw={295:1},LVn="Make sure its type is registered with the ",bcn=" utility class.",nv="true",cK="false",NVn="Couldn't clone property '",Y0=.05,uo="org.eclipse.elk.core.options",$Vn=1.2999999523162842,Z0="org.eclipse.elk.box",wcn="org.eclipse.elk.expandNodes",gcn="org.eclipse.elk.box.packingMode",xVn="org.eclipse.elk.algorithm",FVn="org.eclipse.elk.resolvedAlgorithm",pcn="org.eclipse.elk.bendPoints",iNe="org.eclipse.elk.labelManager",BVn="org.eclipse.elk.scaleFactor",RVn="org.eclipse.elk.childAreaWidth",KVn="org.eclipse.elk.childAreaHeight",_Vn="org.eclipse.elk.animate",HVn="org.eclipse.elk.animTimeFactor",qVn="org.eclipse.elk.layoutAncestors",UVn="org.eclipse.elk.maxAnimTime",GVn="org.eclipse.elk.minAnimTime",zVn="org.eclipse.elk.progressBar",XVn="org.eclipse.elk.validateGraph",VVn="org.eclipse.elk.validateOptions",WVn="org.eclipse.elk.zoomToFit",rNe="org.eclipse.elk.font.name",JVn="org.eclipse.elk.font.size",mcn="org.eclipse.elk.topdown.sizeApproximator",vcn="org.eclipse.elk.topdown.scaleCap",QVn="org.eclipse.elk.edge.type",YVn="partitioning",ZVn="nodeLabels",FS="portAlignment",uK="nodeSize",oK="port",kcn="portLabels",Xy="topdown",nWn="insideSelfLoops",w8="org.eclipse.elk.fixed",BS="org.eclipse.elk.random",ycn={3:1,34:1,22:1,347:1},eWn="port must have a parent node to calculate the port side",tWn="The edge needs to have exactly one edge section. Found: ",g8="org.eclipse.elk.core.util.adapters",ts="org.eclipse.emf.ecore",u2="org.eclipse.elk.graph",iWn="EMapPropertyHolder",rWn="ElkBendPoint",cWn="ElkGraphElement",uWn="ElkConnectableShape",jcn="ElkEdge",oWn="ElkEdgeSection",sWn="EModelElement",fWn="ENamedElement",Ecn="ElkLabel",Ccn="ElkNode",Mcn="ElkPort",hWn={94:1,93:1},g3="org.eclipse.emf.common.notify.impl",da="The feature '",p8="' is not a valid changeable feature",lWn="Expecting null",sK="' is not a valid feature",aWn="The feature ID",dWn=" is not a valid feature ID",kc=32768,bWn={110:1,94:1,93:1,58:1,54:1,99:1},qn="org.eclipse.emf.ecore.impl",Md="org.eclipse.elk.graph.impl",m8="Recursive containment not allowed for ",ev="The datatype '",nb="' is not a valid classifier",fK="The value '",o2={195:1,3:1,4:1},hK="The class '",tv="http://www.eclipse.org/elk/ElkGraph",Tcn="property",v8="value",lK="source",wWn="properties",gWn="identifier",aK="height",dK="width",bK="parent",wK="text",gK="children",pWn="hierarchical",Acn="sources",pK="targets",Scn="sections",RS="bendPoints",Pcn="outgoingShape",Icn="incomingShape",Ocn="outgoingSections",Dcn="incomingSections",or="org.eclipse.emf.common.util",Lcn="Severe implementation error in the Json to ElkGraph importer.",Eh="id",Ui="org.eclipse.elk.graph.json",Ncn="Unhandled parameter types: ",mWn="startPoint",vWn="An edge must have at least one source and one target (edge id: '",iv="').",kWn="Referenced edge section does not exist: ",yWn=" (edge id: '",$cn="target",jWn="sourcePoint",EWn="targetPoint",KS="group",Je="name",CWn="connectableShape cannot be null",MWn="edge cannot be null",mK="Passed edge is not 'simple'.",_S="org.eclipse.elk.graph.util",Vy="The 'no duplicates' constraint is violated",vK="targetIndex=",Td=", size=",kK="sourceIndex=",Ch={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},yK={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},HS="logging",TWn="measureExecutionTime",AWn="parser.parse.1",SWn="parser.parse.2",qS="parser.next.1",jK="parser.next.2",PWn="parser.next.3",IWn="parser.next.4",Ad="parser.factor.1",xcn="parser.factor.2",OWn="parser.factor.3",DWn="parser.factor.4",LWn="parser.factor.5",NWn="parser.factor.6",$Wn="parser.atom.1",xWn="parser.atom.2",FWn="parser.atom.3",Fcn="parser.atom.4",EK="parser.atom.5",Bcn="parser.cc.1",US="parser.cc.2",BWn="parser.cc.3",RWn="parser.cc.5",Rcn="parser.cc.6",Kcn="parser.cc.7",CK="parser.cc.8",KWn="parser.ope.1",_Wn="parser.ope.2",HWn="parser.ope.3",g1="parser.descape.1",qWn="parser.descape.2",UWn="parser.descape.3",GWn="parser.descape.4",zWn="parser.descape.5",is="parser.process.1",XWn="parser.quantifier.1",VWn="parser.quantifier.2",WWn="parser.quantifier.3",JWn="parser.quantifier.4",_cn="parser.quantifier.5",QWn="org.eclipse.emf.common.notify",Hcn={424:1,686:1},YWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},Wy={378:1,152:1},k8="index=",MK={3:1,4:1,5:1,129:1},ZWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},qcn={3:1,6:1,4:1,5:1,198:1},nJn={3:1,4:1,5:1,173:1,379:1},eJn=";/?:@&=+$,",tJn="invalid authority: ",iJn="EAnnotation",rJn="ETypedElement",cJn="EStructuralFeature",uJn="EAttribute",oJn="EClassifier",sJn="EEnumLiteral",fJn="EGenericType",hJn="EOperation",lJn="EParameter",aJn="EReference",dJn="ETypeParameter",Tt="org.eclipse.emf.ecore.util",TK={79:1},Ucn={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},bJn="org.eclipse.emf.ecore.util.FeatureMap$Entry",$u=8192,Tw=2048,y8="byte",GS="char",j8="double",E8="float",C8="int",M8="long",T8="short",wJn="java.lang.Object",s2={3:1,4:1,5:1,254:1},Gcn={3:1,4:1,5:1,688:1},gJn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},Qr={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},Jy="mixed",Fe="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",ms="kind",pJn={3:1,4:1,5:1,689:1},zcn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},zS={20:1,31:1,56:1,16:1,15:1,61:1,71:1},XS={51:1,128:1,287:1},VS={76:1,343:1},WS="The value of type '",JS="' must be of type '",f2=1352,vs="http://www.eclipse.org/emf/2002/Ecore",QS=-32768,eb="constraints",Ji="baseType",mJn="getEStructuralFeature",vJn="getFeatureID",A8="feature",kJn="getOperationID",Xcn="operation",yJn="defaultValue",jJn="eTypeParameters",EJn="isInstance",CJn="getEEnumLiteral",MJn="eContainingClass",Ge={57:1},TJn={3:1,4:1,5:1,124:1},AJn="org.eclipse.emf.ecore.resource",SJn={94:1,93:1,599:1,2034:1},AK="org.eclipse.emf.ecore.resource.impl",Vcn="unspecified",Qy="simple",YS="attribute",PJn="attributeWildcard",ZS="element",SK="elementWildcard",mf="collapse",PK="itemType",nP="namespace",Yy="##targetNamespace",ks="whiteSpace",Wcn="wildcards",Sd="http://www.eclipse.org/emf/2003/XMLType",IK="##any",rv="uninitialized",Zy="The multiplicity constraint is violated",eP="org.eclipse.emf.ecore.xml.type",IJn="ProcessingInstruction",OJn="SimpleAnyType",DJn="XMLTypeDocumentRoot",oi="org.eclipse.emf.ecore.xml.type.impl",nj="INF",LJn="processing",NJn="ENTITIES_._base",Jcn="minLength",Qcn="ENTITY",tP="NCName",$Jn="IDREFS_._base",Ycn="integer",OK="token",DK="pattern",xJn="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",Zcn="\\i\\c*",FJn="[\\i-[:]][\\c-[:]]*",BJn="nonPositiveInteger",ej="maxInclusive",nun="NMTOKEN",RJn="NMTOKENS_._base",eun="nonNegativeInteger",tj="minInclusive",KJn="normalizedString",_Jn="unsignedByte",HJn="unsignedInt",qJn="18446744073709551615",UJn="unsignedShort",GJn="processingInstruction",p1="org.eclipse.emf.ecore.xml.type.internal",cv=1114111,zJn="Internal Error: shorthands: \\u",S8="xml:isDigit",LK="xml:isWord",NK="xml:isSpace",$K="xml:isNameChar",xK="xml:isInitialNameChar",XJn="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",VJn="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",WJn="Private Use",FK="ASSIGNED",BK="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",tun="UNASSIGNED",uv={3:1,122:1},JJn="org.eclipse.emf.ecore.xml.type.util",iP={3:1,4:1,5:1,381:1},iun="org.eclipse.xtext.xbase.lib",QJn="Cannot add elements to a Range",YJn="Cannot set elements in a Range",ZJn="Cannot remove elements from a Range",nQn="user.agent",o,rP,RK;y.goog=y.goog||{},y.goog.global=y.goog.global||y,rP={},b(1,null,{},Bu),o.Fb=function(e){return YMn(this,e)},o.Gb=function(){return this.Rm},o.Hb=function(){return l0(this)},o.Ib=function(){var e;return za(wo(this))+"@"+(e=mt(this)>>>0,e.toString(16))},o.equals=function(n){return this.Fb(n)},o.hashCode=function(){return this.Hb()},o.toString=function(){return this.Ib()};var eQn,tQn,iQn;b(297,1,{297:1,2124:1},YQ),o.ve=function(e){var t;return t=new YQ,t.i=4,e>1?t.c=kOn(this,e-1):t.c=this,t},o.we=function(){return ll(this),this.b},o.xe=function(){return za(this)},o.ye=function(){return ll(this),this.k},o.ze=function(){return(this.i&4)!=0},o.Ae=function(){return(this.i&1)!=0},o.Ib=function(){return fQ(this)},o.i=0;var ki=w(ac,"Object",1),run=w(ac,"Class",297);b(2096,1,ky),w(yy,"Optional",2096),b(1191,2096,ky,Ht),o.Fb=function(e){return e===this},o.Hb=function(){return 2040732332},o.Ib=function(){return"Optional.absent()"},o.Jb=function(e){return Se(e),n6(),KK};var KK;w(yy,"Absent",1191),b(636,1,{},yD),w(yy,"Joiner",636);var cNe=Nt(yy,"Predicate");b(589,1,{178:1,589:1,3:1,46:1},A8n),o.Mb=function(e){return kFn(this,e)},o.Lb=function(e){return kFn(this,e)},o.Fb=function(e){var t;return O(e,589)?(t=u(e,589),Wnn(this.a,t.a)):!1},o.Hb=function(){return rY(this.a)+306654252},o.Ib=function(){return Gje(this.a)},w(yy,"Predicates/AndPredicate",589),b(419,2096,{419:1,3:1},TE),o.Fb=function(e){var t;return O(e,419)?(t=u(e,419),rt(this.a,t.a)):!1},o.Hb=function(){return 1502476572+mt(this.a)},o.Ib=function(){return Szn+this.a+")"},o.Jb=function(e){return new TE(TM(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},w(yy,"Present",419),b(204,1,$m),o.Nb=function(e){_i(this,e)},o.Qb=function(){_jn()},w(Cn,"UnmodifiableIterator",204),b(2076,204,xm),o.Qb=function(){_jn()},o.Rb=function(e){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(Cn,"UnmodifiableListIterator",2076),b(399,2076,xm),o.Ob=function(){return this.c0},o.Pb=function(){if(this.c>=this.d)throw M(new nc);return this.Xb(this.c++)},o.Tb=function(){return this.c},o.Ub=function(){if(this.c<=0)throw M(new nc);return this.Xb(--this.c)},o.Vb=function(){return this.c-1},o.c=0,o.d=0,w(Cn,"AbstractIndexedListIterator",399),b(713,204,$m),o.Ob=function(){return E$(this)},o.Pb=function(){return iQ(this)},o.e=1,w(Cn,"AbstractIterator",713),b(2084,1,{229:1}),o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.Fb=function(e){return G$(this,e)},o.Hb=function(){return mt(this.Zb())},o.dc=function(){return this.gc()==0},o.ec=function(){return Tp(this)},o.Ib=function(){return Jr(this.Zb())},w(Cn,"AbstractMultimap",2084),b(742,2084,md),o.$b=function(){gT(this)},o._b=function(e){return uEn(this,e)},o.ac=function(){return new h4(this,this.c)},o.ic=function(e){return this.hc()},o.bc=function(){return new Cg(this,this.c)},o.jc=function(){return this.mc(this.hc())},o.kc=function(){return new Mjn(this)},o.lc=function(){return nF(this.c.vc().Nc(),new ze,64,this.d)},o.cc=function(e){return ot(this,e)},o.fc=function(e){return Lk(this,e)},o.gc=function(){return this.d},o.mc=function(e){return Dn(),new Q3(e)},o.nc=function(){return new Cjn(this)},o.oc=function(){return nF(this.c.Cc().Nc(),new Jt,64,this.d)},o.pc=function(e,t){return new VM(this,e,t,null)},o.d=0,w(Cn,"AbstractMapBasedMultimap",742),b(1696,742,md),o.hc=function(){return new Gc(this.a)},o.jc=function(){return Dn(),Dn(),sr},o.cc=function(e){return u(ot(this,e),15)},o.fc=function(e){return u(Lk(this,e),15)},o.Zb=function(){return Dp(this)},o.Fb=function(e){return G$(this,e)},o.qc=function(e){return u(ot(this,e),15)},o.rc=function(e){return u(Lk(this,e),15)},o.mc=function(e){return TN(u(e,15))},o.pc=function(e,t){return ADn(this,e,u(t,15),null)},w(Cn,"AbstractListMultimap",1696),b(748,1,Si),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()||this.e.Ob()},o.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),44),this.b=e.ld(),this.a=u(e.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},o.Qb=function(){this.e.Qb(),u(as(this.a),16).dc()&&this.c.Qb(),--this.d.d},w(Cn,"AbstractMapBasedMultimap/Itr",748),b(1129,748,Si,Cjn),o.sc=function(e,t){return t},w(Cn,"AbstractMapBasedMultimap/1",1129),b(1130,1,{},Jt),o.Kb=function(e){return u(e,16).Nc()},w(Cn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),b(1131,748,Si,Mjn),o.sc=function(e,t){return new i0(e,t)},w(Cn,"AbstractMapBasedMultimap/2",1131);var cun=Nt(le,"Map");b(2065,1,X0),o.wc=function(e){h5(this,e)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.$b=function(){this.vc().$b()},o.tc=function(e){return xx(this,e)},o._b=function(e){return!!XZ(this,e,!1)},o.uc=function(e){var t,i,r;for(i=this.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),r=t.md(),x(e)===x(r)||e!=null&&rt(e,r))return!0;return!1},o.Fb=function(e){var t,i,r;if(e===this)return!0;if(!O(e,85)||(r=u(e,85),this.gc()!=r.gc()))return!1;for(i=r.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),!this.tc(t))return!1;return!0},o.xc=function(e){return Kr(XZ(this,e,!1))},o.Hb=function(){return VQ(this.vc())},o.dc=function(){return this.gc()==0},o.ec=function(){return new Ha(this)},o.zc=function(e,t){throw M(new Kl("Put not supported on this map"))},o.Ac=function(e){f5(this,e)},o.Bc=function(e){return Kr(XZ(this,e,!0))},o.gc=function(){return this.vc().gc()},o.Ib=function(){return DKn(this)},o.Cc=function(){return new ol(this)},w(le,"AbstractMap",2065),b(2085,2065,X0),o.bc=function(){return new VE(this)},o.vc=function(){return EPn(this)},o.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},o.Cc=function(){var e;return e=this.i,e||(this.i=new JEn(this))},w(Cn,"Maps/ViewCachingAbstractMap",2085),b(402,2085,X0,h4),o.xc=function(e){return hme(this,e)},o.Bc=function(e){return L6e(this,e)},o.$b=function(){this.d==this.e.c?this.e.$b():iM(new uW(this))},o._b=function(e){return rBn(this.d,e)},o.Ec=function(){return new S8n(this)},o.Dc=function(){return this.Ec()},o.Fb=function(e){return this===e||rt(this.d,e)},o.Hb=function(){return mt(this.d)},o.ec=function(){return this.e.ec()},o.gc=function(){return this.d.gc()},o.Ib=function(){return Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/AsMap",402);var Oo=Nt(ac,"Iterable");b(31,1,pw),o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){throw M(new Kl("Add not supported on this collection"))},o.Gc=function(e){return Bi(this,e)},o.$b=function(){zW(this)},o.Hc=function(e){return iw(this,e,!1)},o.Ic=function(e){return Mk(this,e)},o.dc=function(){return this.gc()==0},o.Mc=function(e){return iw(this,e,!0)},o.Pc=function(){return gW(this)},o.Qc=function(e){return S5(this,e)},o.Ib=function(){return ra(this)},w(le,"AbstractCollection",31);var ys=Nt(le,"Set");b(Rf,31,Lu),o.Nc=function(){return new In(this,1)},o.Fb=function(e){return WBn(this,e)},o.Hb=function(){return VQ(this)},w(le,"AbstractSet",Rf),b(2068,Rf,Lu),w(Cn,"Sets/ImprovedAbstractSet",2068),b(2069,2068,Lu),o.$b=function(){this.Rc().$b()},o.Hc=function(e){return LBn(this,e)},o.dc=function(){return this.Rc().dc()},o.Mc=function(e){var t;return this.Hc(e)&&O(e,44)?(t=u(e,44),this.Rc().ec().Mc(t.ld())):!1},o.gc=function(){return this.Rc().gc()},w(Cn,"Maps/EntrySet",2069),b(1127,2069,Lu,S8n),o.Hc=function(e){return yY(this.a.d.vc(),e)},o.Kc=function(){return new uW(this.a)},o.Rc=function(){return this.a},o.Mc=function(e){var t;return yY(this.a.d.vc(),e)?(t=u(as(u(e,44)),44),Y3e(this.a.e,t.ld()),!0):!1},o.Nc=function(){return x7(this.a.d.vc().Nc(),new P8n(this.a))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),b(1128,1,{},P8n),o.Kb=function(e){return MLn(this.a,u(e,44))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),b(746,1,Si,uW),o.Nb=function(e){_i(this,e)},o.Pb=function(){var e;return e=u(this.b.Pb(),44),this.a=u(e.md(),16),MLn(this.c,e)},o.Ob=function(){return this.b.Ob()},o.Qb=function(){v4(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),b(542,2068,Lu,VE),o.$b=function(){this.b.$b()},o.Hc=function(e){return this.b._b(e)},o.Jc=function(e){Se(e),this.b.wc(new z8n(e))},o.dc=function(){return this.b.dc()},o.Kc=function(){return new e6(this.b.vc().Kc())},o.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},o.gc=function(){return this.b.gc()},w(Cn,"Maps/KeySet",542),b(327,542,Lu,Cg),o.$b=function(){var e;iM((e=this.b.vc().Kc(),new Iz(this,e)))},o.Ic=function(e){return this.b.ec().Ic(e)},o.Fb=function(e){return this===e||rt(this.b.ec(),e)},o.Hb=function(){return mt(this.b.ec())},o.Kc=function(){var e;return e=this.b.vc().Kc(),new Iz(this,e)},o.Mc=function(e){var t,i;return i=0,t=u(this.b.Bc(e),16),t&&(i=t.gc(),t.$b(),this.a.d-=i),i>0},o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/KeySet",327),b(747,1,Si,Iz),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()},o.Pb=function(){return this.a=u(this.c.Pb(),44),this.a.ld()},o.Qb=function(){var e;v4(!!this.a),e=u(this.a.md(),16),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/KeySet/1",747),b(503,402,{85:1,133:1},P7),o.bc=function(){return this.Sc()},o.ec=function(){return this.Uc()},o.Sc=function(){return new i7(this.c,this.Wc())},o.Tc=function(){return this.Wc().Tc()},o.Uc=function(){var e;return e=this.b,e||(this.b=this.Sc())},o.Vc=function(){return this.Wc().Vc()},o.Wc=function(){return u(this.d,133)},w(Cn,"AbstractMapBasedMultimap/SortedAsMap",503),b(446,503,wtn,$6),o.bc=function(){return new f4(this.a,u(u(this.d,133),139))},o.Sc=function(){return new f4(this.a,u(u(this.d,133),139))},o.ec=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Uc=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Wc=function(){return u(u(this.d,133),139)},o.Xc=function(e){return u(u(this.d,133),139).Xc(e)},o.Yc=function(e){return u(u(this.d,133),139).Yc(e)},o.Zc=function(e,t){return new $6(this.a,u(u(this.d,133),139).Zc(e,t))},o.$c=function(e){return u(u(this.d,133),139).$c(e)},o._c=function(e){return u(u(this.d,133),139)._c(e)},o.ad=function(e,t){return new $6(this.a,u(u(this.d,133),139).ad(e,t))},w(Cn,"AbstractMapBasedMultimap/NavigableAsMap",446),b(502,327,Pzn,i7),o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/SortedKeySet",502),b(401,502,gtn,f4),w(Cn,"AbstractMapBasedMultimap/NavigableKeySet",401),b(551,31,pw,VM),o.Fc=function(e){var t,i;return eo(this),i=this.d.dc(),t=this.d.Fc(e),t&&(++this.f.d,i&&L7(this)),t},o.Gc=function(e){var t,i,r;return e.dc()?!1:(r=(eo(this),this.d.gc()),t=this.d.Gc(e),t&&(i=this.d.gc(),this.f.d+=i-r,r==0&&L7(this)),t)},o.$b=function(){var e;e=(eo(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,fM(this))},o.Hc=function(e){return eo(this),this.d.Hc(e)},o.Ic=function(e){return eo(this),this.d.Ic(e)},o.Fb=function(e){return e===this?!0:(eo(this),rt(this.d,e))},o.Hb=function(){return eo(this),mt(this.d)},o.Kc=function(){return eo(this),new qV(this)},o.Mc=function(e){var t;return eo(this),t=this.d.Mc(e),t&&(--this.f.d,fM(this)),t},o.gc=function(){return BMn(this)},o.Nc=function(){return eo(this),this.d.Nc()},o.Ib=function(){return eo(this),Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection",551);var rs=Nt(le,"List");b(744,551,{20:1,31:1,16:1,15:1},vW),o.jd=function(e){ud(this,e)},o.Nc=function(){return eo(this),this.d.Nc()},o.bd=function(e,t){var i;eo(this),i=this.d.dc(),u(this.d,15).bd(e,t),++this.a.d,i&&L7(this)},o.cd=function(e,t){var i,r,c;return t.dc()?!1:(c=(eo(this),this.d.gc()),i=u(this.d,15).cd(e,t),i&&(r=this.d.gc(),this.a.d+=r-c,c==0&&L7(this)),i)},o.Xb=function(e){return eo(this),u(this.d,15).Xb(e)},o.dd=function(e){return eo(this),u(this.d,15).dd(e)},o.ed=function(){return eo(this),new bTn(this)},o.fd=function(e){return eo(this),new FIn(this,e)},o.gd=function(e){var t;return eo(this),t=u(this.d,15).gd(e),--this.a.d,fM(this),t},o.hd=function(e,t){return eo(this),u(this.d,15).hd(e,t)},o.kd=function(e,t){return eo(this),ADn(this.a,this.e,u(this.d,15).kd(e,t),this.b?this.b:this)},w(Cn,"AbstractMapBasedMultimap/WrappedList",744),b(1126,744,{20:1,31:1,16:1,15:1,59:1},iAn),w(Cn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),b(628,1,Si,qV),o.Nb=function(e){_i(this,e)},o.Ob=function(){return I4(this),this.b.Ob()},o.Pb=function(){return I4(this),this.b.Pb()},o.Qb=function(){_Tn(this)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),b(745,628,Hh,bTn,FIn),o.Qb=function(){_Tn(this)},o.Rb=function(e){var t;t=BMn(this.a)==0,(I4(this),u(this.b,128)).Rb(e),++this.a.a.d,t&&L7(this.a)},o.Sb=function(){return(I4(this),u(this.b,128)).Sb()},o.Tb=function(){return(I4(this),u(this.b,128)).Tb()},o.Ub=function(){return(I4(this),u(this.b,128)).Ub()},o.Vb=function(){return(I4(this),u(this.b,128)).Vb()},o.Wb=function(e){(I4(this),u(this.b,128)).Wb(e)},w(Cn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),b(743,551,Pzn,sV),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSortedSet",743),b(1125,743,gtn,fTn),w(Cn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),b(1124,551,Lu,CAn),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSet",1124),b(1133,1,{},ze),o.Kb=function(e){return s4e(u(e,44))},w(Cn,"AbstractMapBasedMultimap/lambda$1$Type",1133),b(1132,1,{},L8n),o.Kb=function(e){return new i0(this.a,e)},w(Cn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var Pd=Nt(le,"Map/Entry");b(358,1,tB),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),oh(this.ld(),t.ld())&&oh(this.md(),t.md())):!1},o.Hb=function(){var e,t;return e=this.ld(),t=this.md(),(e==null?0:mt(e))^(t==null?0:mt(t))},o.nd=function(e){throw M(new Pe)},o.Ib=function(){return this.ld()+"="+this.md()},w(Cn,Izn,358),b(2086,31,pw),o.$b=function(){this.od().$b()},o.Hc=function(e){var t;return O(e,44)?(t=u(e,44),Ppe(this.od(),t.ld(),t.md())):!1},o.Mc=function(e){var t;return O(e,44)?(t=u(e,44),sDn(this.od(),t.ld(),t.md())):!1},o.gc=function(){return this.od().d},w(Cn,"Multimaps/Entries",2086),b(749,2086,pw,fG),o.Kc=function(){return this.a.kc()},o.od=function(){return this.a},o.Nc=function(){return this.a.lc()},w(Cn,"AbstractMultimap/Entries",749),b(750,749,Lu,oz),o.Nc=function(){return this.a.lc()},o.Fb=function(e){return dnn(this,e)},o.Hb=function(){return vxn(this)},w(Cn,"AbstractMultimap/EntrySet",750),b(751,31,pw,hG),o.$b=function(){this.a.$b()},o.Hc=function(e){return A6e(this.a,e)},o.Kc=function(){return this.a.nc()},o.gc=function(){return this.a.d},o.Nc=function(){return this.a.oc()},w(Cn,"AbstractMultimap/Values",751),b(2087,31,{849:1,20:1,31:1,16:1}),o.Jc=function(e){Se(e),Tg(this).Jc(new Y8n(e))},o.Nc=function(){var e;return e=Tg(this).Nc(),nF(e,new Cf,64|e.yd()&1296,this.a.d)},o.Fc=function(e){return wz(),!0},o.Gc=function(e){return Se(this),Se(e),O(e,552)?Dpe(u(e,849)):!e.dc()&&b$(this,e.Kc())},o.Hc=function(e){var t;return t=u(tw(Dp(this.a),e),16),(t?t.gc():0)>0},o.Fb=function(e){return nMe(this,e)},o.Hb=function(){return mt(Tg(this))},o.dc=function(){return Tg(this).dc()},o.Mc=function(e){return G_n(this,e,1)>0},o.Ib=function(){return Jr(Tg(this))},w(Cn,"AbstractMultiset",2087),b(2089,2068,Lu),o.$b=function(){gT(this.a.a)},o.Hc=function(e){var t,i;return O(e,504)?(i=u(e,425),u(i.a.md(),16).gc()<=0?!1:(t=$On(this.a,i.a.ld()),t==u(i.a.md(),16).gc())):!1},o.Mc=function(e){var t,i,r,c;return O(e,504)&&(i=u(e,425),t=i.a.ld(),r=u(i.a.md(),16).gc(),r!=0)?(c=this.a,UEe(c,t,r)):!1},w(Cn,"Multisets/EntrySet",2089),b(1139,2089,Lu,N8n),o.Kc=function(){return new Ijn(EPn(Dp(this.a.a)).Kc())},o.gc=function(){return Dp(this.a.a).gc()},w(Cn,"AbstractMultiset/EntrySet",1139),b(627,742,md),o.hc=function(){return this.pd()},o.jc=function(){return this.qd()},o.cc=function(e){return this.rd(e)},o.fc=function(e){return this.sd(e)},o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.qd=function(){return Dn(),Dn(),hP},o.Fb=function(e){return G$(this,e)},o.rd=function(e){return u(ot(this,e),21)},o.sd=function(e){return u(Lk(this,e),21)},o.mc=function(e){return Dn(),new r4(u(e,21))},o.pc=function(e,t){return new CAn(this,e,u(t,21))},w(Cn,"AbstractSetMultimap",627),b(1723,627,md),o.hc=function(){return new Ul(this.b)},o.pd=function(){return new Ul(this.b)},o.jc=function(){return KW(new Ul(this.b))},o.qd=function(){return KW(new Ul(this.b))},o.cc=function(e){return u(u(ot(this,e),21),87)},o.rd=function(e){return u(u(ot(this,e),21),87)},o.fc=function(e){return u(u(Lk(this,e),21),87)},o.sd=function(e){return u(u(Lk(this,e),21),87)},o.mc=function(e){return O(e,277)?KW(u(e,277)):(Dn(),new XX(u(e,87)))},o.Zb=function(){var e;return e=this.f,e||(this.f=O(this.c,139)?new $6(this,u(this.c,139)):O(this.c,133)?new P7(this,u(this.c,133)):new h4(this,this.c))},o.pc=function(e,t){return O(t,277)?new fTn(this,e,u(t,277)):new sV(this,e,u(t,87))},w(Cn,"AbstractSortedSetMultimap",1723),b(1724,1723,md),o.Zb=function(){var e;return e=this.f,u(u(e||(this.f=O(this.c,139)?new $6(this,u(this.c,139)):O(this.c,133)?new P7(this,u(this.c,133)):new h4(this,this.c)),133),139)},o.ec=function(){var e;return e=this.i,u(u(e||(this.i=O(this.c,139)?new f4(this,u(this.c,139)):O(this.c,133)?new i7(this,u(this.c,133)):new Cg(this,this.c)),87),277)},o.bc=function(){return O(this.c,139)?new f4(this,u(this.c,139)):O(this.c,133)?new i7(this,u(this.c,133)):new Cg(this,this.c)},w(Cn,"AbstractSortedKeySortedSetMultimap",1724),b(2109,1,{2046:1}),o.Fb=function(e){return Mke(this,e)},o.Hb=function(){var e;return VQ((e=this.g,e||(this.g=new zO(this))))},o.Ib=function(){var e;return DKn((e=this.f,e||(this.f=new qX(this))))},w(Cn,"AbstractTable",2109),b(679,Rf,Lu,zO),o.$b=function(){Hjn()},o.Hc=function(e){var t,i;return O(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&yY(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.Kc=function(){return Pge(this.a)},o.Mc=function(e){var t,i;return O(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&u5e(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.gc=function(){return JSn(this.a)},o.Nc=function(){return $pe(this.a)},w(Cn,"AbstractTable/CellSet",679),b(2025,31,pw,x8n),o.$b=function(){Hjn()},o.Hc=function(e){return pye(this.a,e)},o.Kc=function(){return Ige(this.a)},o.gc=function(){return JSn(this.a)},o.Nc=function(){return oDn(this.a)},w(Cn,"AbstractTable/Values",2025),b(1697,1696,md),w(Cn,"ArrayListMultimapGwtSerializationDependencies",1697),b(520,1697,md,CD,sJ),o.hc=function(){return new Gc(this.a)},o.a=0,w(Cn,"ArrayListMultimap",520),b(678,2109,{678:1,2046:1,3:1},rHn),w(Cn,"ArrayTable",678),b(2021,399,xm,HTn),o.Xb=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1",2021),b(2022,1,{},I8n),o.td=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1methodref$getCell$Type",2022),b(2110,1,{697:1}),o.Fb=function(e){var t;return e===this?!0:O(e,479)?(t=u(e,697),oh(_1(this.c.e,this.b),_1(t.c.e,t.b))&&oh(_1(this.c.c,this.a),_1(t.c.c,t.a))&&oh(Rp(this.c,this.b,this.a),Rp(t.c,t.b,t.a))):!1},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[_1(this.c.e,this.b),_1(this.c.c,this.a),Rp(this.c,this.b,this.a)]))},o.Ib=function(){return"("+_1(this.c.e,this.b)+","+_1(this.c.c,this.a)+")="+Rp(this.c,this.b,this.a)},w(Cn,"Tables/AbstractCell",2110),b(479,2110,{479:1,697:1},ZQ),o.a=0,o.b=0,o.d=0,w(Cn,"ArrayTable/2",479),b(2024,1,{},O8n),o.td=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/2methodref$getValue$Type",2024),b(2023,399,xm,qTn),o.Xb=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/3",2023),b(2077,2065,X0),o.$b=function(){iM(this.kc())},o.vc=function(){return new G8n(this)},o.lc=function(){return new AIn(this.kc(),this.gc())},w(Cn,"Maps/IteratorBasedAbstractMap",2077),b(842,2077,X0),o.$b=function(){throw M(new Pe)},o._b=function(e){return oEn(this.c,e)},o.kc=function(){return new UTn(this,this.c.b.c.gc())},o.lc=function(){return XL(this.c.b.c.gc(),16,new D8n(this))},o.xc=function(e){var t;return t=u(x6(this.c,e),17),t?this.vd(t.a):null},o.dc=function(){return this.c.b.c.dc()},o.ec=function(){return eN(this.c)},o.zc=function(e,t){var i;if(i=u(x6(this.c,e),17),!i)throw M(new Gn(this.ud()+" "+e+" not in "+eN(this.c)));return this.wd(i.a,t)},o.Bc=function(e){throw M(new Pe)},o.gc=function(){return this.c.b.c.gc()},w(Cn,"ArrayTable/ArrayMap",842),b(2020,1,{},D8n),o.td=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),b(2018,358,tB,LEn),o.ld=function(){return q1e(this.a,this.b)},o.md=function(){return this.a.vd(this.b)},o.nd=function(e){return this.a.wd(this.b,e)},o.b=0,w(Cn,"ArrayTable/ArrayMap/1",2018),b(2019,399,xm,UTn),o.Xb=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/2",2019),b(2017,842,X0,xPn),o.ud=function(){return"Column"},o.vd=function(e){return Rp(this.b,this.a,e)},o.wd=function(e,t){return cFn(this.b,this.a,e,t)},o.a=0,w(Cn,"ArrayTable/Row",2017),b(843,842,X0,qX),o.vd=function(e){return new xPn(this.a,e)},o.zc=function(e,t){return u(t,85),hhe()},o.wd=function(e,t){return u(t,85),lhe()},o.ud=function(){return"Row"},w(Cn,"ArrayTable/RowMap",843),b(1157,1,Po,NEn),o.Ad=function(e){return(this.a.yd()&-262&e)!=0},o.yd=function(){return this.a.yd()&-262},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Nb(new xEn(e,this.b))},o.Bd=function(e){return this.a.Bd(new $En(e,this.b))},w(Cn,"CollectSpliterators/1",1157),b(1158,1,ie,$En),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$0$Type",1158),b(1159,1,ie,xEn),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$1$Type",1159),b(1154,1,Po,cSn),o.Ad=function(e){return((16464|this.b)&e)!=0},o.yd=function(){return 16464|this.b},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Qe(new BEn(e,this.c))},o.Bd=function(e){return this.a.Re(new FEn(e,this.c))},o.b=0,w(Cn,"CollectSpliterators/1WithCharacteristics",1154),b(1155,1,jy,FEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),b(1156,1,jy,BEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),b(1150,1,Po),o.Ad=function(e){return(this.a&e)!=0},o.yd=function(){return this.a},o.zd=function(){return this.e&&(this.b=OX(this.b,this.e.zd())),OX(this.b,0)},o.Nb=function(e){this.e&&(this.e.Nb(e),this.e=null),this.c.Nb(new REn(this,e)),this.b=0},o.Bd=function(e){for(;;){if(this.e&&this.e.Bd(e))return M6(this.b,Ey)&&(this.b=bs(this.b,1)),!0;if(this.e=null,!this.c.Bd(new F8n(this)))return!1}},o.a=0,o.b=0,w(Cn,"CollectSpliterators/FlatMapSpliterator",1150),b(1152,1,ie,F8n),o.Cd=function(e){_ae(this.a,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),b(1153,1,ie,REn),o.Cd=function(e){age(this.a,this.b,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),b(1151,1150,Po,MDn),w(Cn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),b(253,1,iB),o.Fd=function(e){return this.Ed(u(e,253))},o.Ed=function(e){var t;return e==(bD(),HK)?1:e==(dD(),_K)?-1:(t=(YC(),kk(this.a,e.a)),t!=0?t:O(this,526)==O(e,526)?0:O(this,526)?1:-1)},o.Id=function(){return this.a},o.Fb=function(e){return vZ(this,e)},w(Cn,"Cut",253),b(1823,253,iB,Ejn),o.Ed=function(e){return e==this?0:1},o.Gd=function(e){throw M(new HG)},o.Hd=function(e){e.a+="+∞)"},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!1},o.Ib=function(){return"+∞"};var _K;w(Cn,"Cut/AboveAll",1823),b(526,253,{253:1,526:1,3:1,34:1},JTn),o.Gd=function(e){Dc((e.a+="(",e),this.a)},o.Hd=function(e){Ya(Dc(e,this.a),93)},o.Hb=function(){return~mt(this.a)},o.Jd=function(e){return YC(),kk(this.a,e)<0},o.Ib=function(){return"/"+this.a+"\\"},w(Cn,"Cut/AboveValue",526),b(1822,253,iB,jjn),o.Ed=function(e){return e==this?0:-1},o.Gd=function(e){e.a+="(-∞"},o.Hd=function(e){throw M(new HG)},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!0},o.Ib=function(){return"-∞"};var HK;w(Cn,"Cut/BelowAll",1822),b(1824,253,iB,QTn),o.Gd=function(e){Dc((e.a+="[",e),this.a)},o.Hd=function(e){Ya(Dc(e,this.a),41)},o.Hb=function(){return mt(this.a)},o.Jd=function(e){return YC(),kk(this.a,e)<=0},o.Ib=function(){return"\\"+this.a+"/"},w(Cn,"Cut/BelowValue",1824),b(547,1,qh),o.Jc=function(e){qi(this,e)},o.Ib=function(){return A5e(u(TM(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},w(Cn,"FluentIterable",547),b(442,547,qh,S6),o.Kc=function(){return new te(re(this.a.Kc(),new En))},w(Cn,"FluentIterable/2",442),b(1059,547,qh,cTn),o.Kc=function(){return $h(this)},w(Cn,"FluentIterable/3",1059),b(724,399,xm,UX),o.Xb=function(e){return this.a[e].Kc()},w(Cn,"FluentIterable/3/1",724),b(2070,1,{}),o.Ib=function(){return Jr(this.Kd().b)},w(Cn,"ForwardingObject",2070),b(2071,2070,Lzn),o.Kd=function(){return this.Ld()},o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){return this.Ld(),fEn()},o.Gc=function(e){return this.Ld(),hEn()},o.$b=function(){this.Ld(),lEn()},o.Hc=function(e){return this.Ld().Hc(e)},o.Ic=function(e){return this.Ld().Ic(e)},o.dc=function(){return this.Ld().b.dc()},o.Kc=function(){return this.Ld().Kc()},o.Mc=function(e){return this.Ld(),aEn()},o.gc=function(){return this.Ld().b.gc()},o.Pc=function(){return this.Ld().Pc()},o.Qc=function(e){return this.Ld().Qc(e)},w(Cn,"ForwardingCollection",2071),b(2078,31,ptn),o.Kc=function(){return this.Od()},o.Fc=function(e){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.Md=function(){var e;return e=this.c,e||(this.c=this.Nd())},o.$b=function(){throw M(new Pe)},o.Hc=function(e){return e!=null&&iw(this,e,!1)},o.Nd=function(){switch(this.gc()){case 0:return m0(),m0(),qK;case 1:return m0(),new VL(Se(this.Od().Pb()));default:return new EW(this,this.Pc())}},o.Mc=function(e){throw M(new Pe)},w(Cn,"ImmutableCollection",2078),b(727,2078,ptn,KG),o.Kc=function(){return Kp(this.a.Kc())},o.Hc=function(e){return e!=null&&this.a.Hc(e)},o.Ic=function(e){return this.a.Ic(e)},o.dc=function(){return this.a.dc()},o.Od=function(){return Kp(this.a.Kc())},o.gc=function(){return this.a.gc()},o.Pc=function(){return this.a.Pc()},o.Qc=function(e){return this.a.Qc(e)},o.Ib=function(){return Jr(this.a)},w(Cn,"ForwardingImmutableCollection",727),b(307,2078,Fm),o.Kc=function(){return this.Od()},o.ed=function(){return this.Pd(0)},o.fd=function(e){return this.Pd(e)},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.kd=function(e,t){return this.Qd(e,t)},o.bd=function(e,t){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Md=function(){return this},o.Fb=function(e){return HCe(this,e)},o.Hb=function(){return xve(this)},o.dd=function(e){return e==null?-1:c7e(this,e)},o.Od=function(){return this.Pd(0)},o.Pd=function(e){return TL(this,e)},o.gd=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},o.Qd=function(e,t){var i;return FT((i=new WEn(this),new Jl(i,e,t)))};var qK;w(Cn,"ImmutableList",307),b(2105,307,Fm),o.Kc=function(){return Kp(this.Rd().Kc())},o.kd=function(e,t){return FT(this.Rd().kd(e,t))},o.Hc=function(e){return e!=null&&this.Rd().Hc(e)},o.Ic=function(e){return this.Rd().Ic(e)},o.Fb=function(e){return rt(this.Rd(),e)},o.Xb=function(e){return _1(this,e)},o.Hb=function(){return mt(this.Rd())},o.dd=function(e){return this.Rd().dd(e)},o.dc=function(){return this.Rd().dc()},o.Od=function(){return Kp(this.Rd().Kc())},o.gc=function(){return this.Rd().gc()},o.Qd=function(e,t){return FT(this.Rd().kd(e,t))},o.Pc=function(){return this.Rd().Qc(K(ki,Fn,1,this.Rd().gc(),5,1))},o.Qc=function(e){return this.Rd().Qc(e)},o.Ib=function(){return Jr(this.Rd())},w(Cn,"ForwardingImmutableList",2105),b(729,1,Bm),o.vc=function(){return Wa(this)},o.wc=function(e){h5(this,e)},o.ec=function(){return eN(this)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.Cc=function(){return this.Vd()},o.$b=function(){throw M(new Pe)},o._b=function(e){return this.xc(e)!=null},o.uc=function(e){return this.Vd().Hc(e)},o.Td=function(){return new Oyn(this)},o.Ud=function(){return new Dyn(this)},o.Fb=function(e){return S6e(this,e)},o.Hb=function(){return Wa(this).Hb()},o.dc=function(){return this.gc()==0},o.zc=function(e,t){return fhe()},o.Bc=function(e){throw M(new Pe)},o.Ib=function(){return wje(this)},o.Vd=function(){return this.e?this.e:this.e=this.Ud()},o.c=null,o.d=null,o.e=null;var rQn;w(Cn,"ImmutableMap",729),b(730,729,Bm),o._b=function(e){return oEn(this,e)},o.uc=function(e){return eCn(this.b,e)},o.Sd=function(){return eBn(new $8n(this))},o.Td=function(){return eBn(pIn(this.b))},o.Ud=function(){return uh(),new KG(gIn(this.b))},o.Fb=function(e){return tCn(this.b,e)},o.xc=function(e){return x6(this,e)},o.Hb=function(){return mt(this.b.c)},o.dc=function(){return this.b.c.dc()},o.gc=function(){return this.b.c.gc()},o.Ib=function(){return Jr(this.b.c)},w(Cn,"ForwardingImmutableMap",730),b(2072,2071,rB),o.Kd=function(){return this.Wd()},o.Ld=function(){return this.Wd()},o.Nc=function(){return new In(this,1)},o.Fb=function(e){return e===this||this.Wd().Fb(e)},o.Hb=function(){return this.Wd().Hb()},w(Cn,"ForwardingSet",2072),b(1085,2072,rB,$8n),o.Kd=function(){return S4(this.a.b)},o.Ld=function(){return S4(this.a.b)},o.Hc=function(e){if(O(e,44)&&u(e,44).ld()==null)return!1;try{return nCn(S4(this.a.b),e)}catch(t){if(t=It(t),O(t,212))return!1;throw M(t)}},o.Wd=function(){return S4(this.a.b)},o.Qc=function(e){var t;return t=eOn(S4(this.a.b),e),S4(this.a.b).b.gc()=0?"+":"")+(i/60|0),t=OC(y.Math.abs(i)%60),(UKn(),EQn)[this.q.getDay()]+" "+CQn[this.q.getMonth()]+" "+OC(this.q.getDate())+" "+OC(this.q.getHours())+":"+OC(this.q.getMinutes())+":"+OC(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var oP=w(le,"Date",206);b(2015,206,Hzn,dKn),o.a=!1,o.b=0,o.c=0,o.d=0,o.e=0,o.f=0,o.g=!1,o.i=0,o.j=0,o.k=0,o.n=0,o.o=0,o.p=0,w("com.google.gwt.i18n.shared.impl","DateRecord",2015),b(2064,1,{}),o.pe=function(){return null},o.qe=function(){return null},o.re=function(){return null},o.se=function(){return null},o.te=function(){return null},w(u3,"JSONValue",2064),b(221,2064,{221:1},Ka,aG),o.Fb=function(e){return O(e,221)?hJ(this.a,u(e,221).a):!1},o.oe=function(){return Nfe},o.Hb=function(){return ZW(this.a)},o.pe=function(){return this},o.Ib=function(){var e,t,i;for(i=new mo("["),t=0,e=this.a.length;t0&&(i.a+=","),Dc(i,Jb(this,t));return i.a+="]",i.a},w(u3,"JSONArray",221),b(493,2064,{493:1},dG),o.oe=function(){return $fe},o.qe=function(){return this},o.Ib=function(){return _n(),""+this.a},o.a=!1;var lQn,aQn;w(u3,"JSONBoolean",493),b(997,63,Pl,Ojn),w(u3,"JSONException",997),b(1036,2064,{},M0n),o.oe=function(){return xfe},o.Ib=function(){return gu};var dQn;w(u3,"JSONNull",1036),b(263,2064,{263:1},AE),o.Fb=function(e){return O(e,263)?this.a==u(e,263).a:!1},o.oe=function(){return Dfe},o.Hb=function(){return pp(this.a)},o.re=function(){return this},o.Ib=function(){return this.a+""},o.a=0,w(u3,"JSONNumber",263),b(190,2064,{190:1},op,z9),o.Fb=function(e){return O(e,190)?hJ(this.a,u(e,190).a):!1},o.oe=function(){return Lfe},o.Hb=function(){return ZW(this.a)},o.se=function(){return this},o.Ib=function(){var e,t,i,r,c,s,f;for(f=new mo("{"),e=!0,s=S$(this,K(fn,J,2,0,6,1)),i=s,r=0,c=i.length;r=0?":"+this.c:"")+")"},o.c=0;var jun=w(ac,"StackTraceElement",319);iQn={3:1,484:1,34:1,2:1};var fn=w(ac,mtn,2);b(111,427,{484:1},Hl,r6,ls),w(ac,"StringBuffer",111),b(104,427,{484:1},x1,lp,mo),w(ac,"StringBuilder",104),b(702,77,AB,gz),w(ac,"StringIndexOutOfBoundsException",702),b(2145,1,{});var pQn;b(48,63,{3:1,103:1,63:1,82:1,48:1},Pe,Kl),w(ac,"UnsupportedOperationException",48),b(247,242,{3:1,34:1,242:1,247:1},xk,Az),o.Fd=function(e){return FUn(this,u(e,247))},o.ue=function(){return sw(lGn(this))},o.Fb=function(e){var t;return this===e?!0:O(e,247)?(t=u(e,247),this.e==t.e&&FUn(this,t)==0):!1},o.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=vc(this.f),this.b=Ae(vi(e,-1)),this.b=33*this.b+Ae(vi(w0(e,32),-1)),this.b=17*this.b+wi(this.e),this.b):(this.b=17*JFn(this.c)+wi(this.e),this.b)},o.Ib=function(){return lGn(this)},o.a=0,o.b=0,o.d=0,o.e=0,o.f=0;var mQn,Id,Eun,Cun,Mun,Tun,Aun,Sun,QK=w("java.math","BigDecimal",247);b(92,242,{3:1,34:1,242:1,92:1},gl,HOn,Qa,QBn,H1),o.Fd=function(e){return XBn(this,u(e,92))},o.ue=function(){return sw(ZF(this,0))},o.Fb=function(e){return _Y(this,e)},o.Hb=function(){return JFn(this)},o.Ib=function(){return ZF(this,0)},o.b=-2,o.c=0,o.d=0,o.e=0;var vQn,sP,kQn,YK,fP,O8,h2=w("java.math","BigInteger",92),yQn,jQn,m3,D8;b(498,2065,X0),o.$b=function(){Hu(this)},o._b=function(e){return Zc(this,e)},o.uc=function(e){return OFn(this,e,this.i)||OFn(this,e,this.f)},o.vc=function(){return new qa(this)},o.xc=function(e){return ee(this,e)},o.zc=function(e,t){return Xe(this,e,t)},o.Bc=function(e){return Bp(this,e)},o.gc=function(){return u6(this)},o.g=0,w(le,"AbstractHashMap",498),b(267,Rf,Lu,qa),o.$b=function(){this.a.$b()},o.Hc=function(e){return mDn(this,e)},o.Kc=function(){return new sd(this.a)},o.Mc=function(e){var t;return mDn(this,e)?(t=u(e,44).ld(),this.a.Bc(t),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractHashMap/EntrySet",267),b(268,1,Si,sd),o.Nb=function(e){_i(this,e)},o.Pb=function(){return L0(this)},o.Ob=function(){return this.b},o.Qb=function(){XNn(this)},o.b=!1,o.d=0,w(le,"AbstractHashMap/EntrySetIterator",268),b(426,1,Si,Xv),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this)},o.Pb=function(){return VW(this)},o.Qb=function(){bo(this)},o.b=0,o.c=-1,w(le,"AbstractList/IteratorImpl",426),b(98,426,Hh,xi),o.Qb=function(){bo(this)},o.Rb=function(e){Rb(this,e)},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Ub=function(){return oe(this.b>0),this.a.Xb(this.c=--this.b)},o.Vb=function(){return this.b-1},o.Wb=function(e){Fb(this.c!=-1),this.a.hd(this.c,e)},w(le,"AbstractList/ListIteratorImpl",98),b(244,56,Rm,Jl),o.bd=function(e,t){zb(e,this.b),this.c.bd(this.a+e,t),++this.b},o.Xb=function(e){return Ln(e,this.b),this.c.Xb(this.a+e)},o.gd=function(e){var t;return Ln(e,this.b),t=this.c.gd(this.a+e),--this.b,t},o.hd=function(e,t){return Ln(e,this.b),this.c.hd(this.a+e,t)},o.gc=function(){return this.b},o.a=0,o.b=0,w(le,"AbstractList/SubList",244),b(266,Rf,Lu,Ha),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new PE(e)},o.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/1",266),b(541,1,Si,PE),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.ld()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/1/1",541),b(231,31,pw,ol),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a.uc(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new Sb(e)},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/2",231),b(301,1,Si,Sb),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.md()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/2/1",301),b(494,1,{494:1,44:1}),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),mc(this.d,t.ld())&&mc(this.e,t.md())):!1},o.ld=function(){return this.d},o.md=function(){return this.e},o.Hb=function(){return kg(this.d)^kg(this.e)},o.nd=function(e){return wV(this,e)},o.Ib=function(){return this.d+"="+this.e},w(le,"AbstractMap/AbstractEntry",494),b(397,494,{494:1,397:1,44:1},oC),w(le,"AbstractMap/SimpleEntry",397),b(2082,1,IB),o.Fb=function(e){var t;return O(e,44)?(t=u(e,44),mc(this.ld(),t.ld())&&mc(this.md(),t.md())):!1},o.Hb=function(){return kg(this.ld())^kg(this.md())},o.Ib=function(){return this.ld()+"="+this.md()},w(le,Izn,2082),b(2090,2065,wtn),o.Xc=function(e){return MD(this.Ee(e))},o.tc=function(e){return CLn(this,e)},o._b=function(e){return gV(this,e)},o.vc=function(){return new ZO(this)},o.Tc=function(){return BPn(this.Ge())},o.Yc=function(e){return MD(this.He(e))},o.xc=function(e){var t;return t=e,Kr(this.Fe(t))},o.$c=function(e){return MD(this.Ie(e))},o.ec=function(){return new o9n(this)},o.Vc=function(){return BPn(this.Je())},o._c=function(e){return MD(this.Ke(e))},w(le,"AbstractNavigableMap",2090),b(629,Rf,Lu,ZO),o.Hc=function(e){return O(e,44)&&CLn(this.b,u(e,44))},o.Kc=function(){return this.b.De()},o.Mc=function(e){var t;return O(e,44)?(t=u(e,44),this.b.Le(t)):!1},o.gc=function(){return this.b.gc()},w(le,"AbstractNavigableMap/EntrySet",629),b(1146,Rf,gtn,o9n),o.Nc=function(){return new cC(this)},o.$b=function(){this.a.$b()},o.Hc=function(e){return gV(this.a,e)},o.Kc=function(){var e;return e=this.a.vc().b.De(),new s9n(e)},o.Mc=function(e){return gV(this.a,e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractNavigableMap/NavigableKeySet",1146),b(1147,1,Si,s9n),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this.a.a)},o.Pb=function(){var e;return e=oAn(this.a),e.ld()},o.Qb=function(){dSn(this.a)},w(le,"AbstractNavigableMap/NavigableKeySet/1",1147),b(2103,31,pw),o.Fc=function(e){return Mp(ym(this,e),_m),!0},o.Gc=function(e){return Jn(e),B7(e!=this,"Can't add a queue to itself"),Bi(this,e)},o.$b=function(){for(;w$(this)!=null;);},w(le,"AbstractQueue",2103),b(310,31,{4:1,20:1,31:1,16:1},Eg,dDn),o.Fc=function(e){return kJ(this,e),!0},o.$b=function(){TJ(this)},o.Hc=function(e){return Zxn(new W6(this),e)},o.dc=function(){return i6(this)},o.Kc=function(){return new W6(this)},o.Mc=function(e){return p2e(new W6(this),e)},o.gc=function(){return this.c-this.b&this.a.length-1},o.Nc=function(){return new In(this,272)},o.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&$t(e,t,null),e},o.b=0,o.c=0,w(le,"ArrayDeque",310),b(459,1,Si,W6),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a!=this.b},o.Pb=function(){return xT(this)},o.Qb=function(){W$n(this)},o.a=0,o.b=0,o.c=-1,w(le,"ArrayDeque/IteratorImpl",459),b(13,56,Gzn,Z,Gc,_u),o.bd=function(e,t){b0(this,e,t)},o.Fc=function(e){return nn(this,e)},o.cd=function(e,t){return dY(this,e,t)},o.Gc=function(e){return hi(this,e)},o.$b=function(){Pb(this.c,0)},o.Hc=function(e){return qr(this,e,0)!=-1},o.Jc=function(e){nu(this,e)},o.Xb=function(e){return sn(this,e)},o.dd=function(e){return qr(this,e,0)},o.dc=function(){return this.c.length==0},o.Kc=function(){return new C(this)},o.gd=function(e){return Yl(this,e)},o.Mc=function(e){return du(this,e)},o.ce=function(e,t){xOn(this,e,t)},o.hd=function(e,t){return Go(this,e,t)},o.gc=function(){return this.c.length},o.jd=function(e){Yt(this,e)},o.Pc=function(){return ZC(this.c)},o.Qc=function(e){return xf(this,e)};var uNe=w(le,"ArrayList",13);b(7,1,Si,C),o.Nb=function(e){_i(this,e)},o.Ob=function(){return tc(this)},o.Pb=function(){return E(this)},o.Qb=function(){U6(this)},o.a=0,o.b=-1,w(le,"ArrayList/1",7),b(2112,y.Function,{},mE),o.Me=function(e,t){return bt(e,t)},b(151,56,zzn,Ku),o.Hc=function(e){return J$n(this,e)!=-1},o.Jc=function(e){var t,i,r,c;for(Jn(e),i=this.a,r=0,c=i.length;r0)throw M(new Gn(Ttn+e+" greater than "+this.e));return this.f.Te()?cOn(this.c,this.b,this.a,e,t):FOn(this.c,e,t)},o.zc=function(e,t){if(!qx(this.c,this.f,e,this.b,this.a,this.e,this.d))throw M(new Gn(e+" outside the range "+this.b+" to "+this.e));return gFn(this.c,e,t)},o.Bc=function(e){var t;return t=e,qx(this.c,this.f,t,this.b,this.a,this.e,this.d)?uOn(this.c,t):null},o.Le=function(e){return vM(this,e.ld())&&GJ(this.c,e)},o.gc=function(){var e,t,i;if(this.f.Te()?this.a?t=bm(this.c,this.b,!0):t=bm(this.c,this.b,!1):t=eQ(this.c),!(t&&vM(this,t.d)&&t))return 0;for(e=0,i=new P$(this.c,this.f,this.b,this.a,this.e,this.d);DD(i.a);i.b=u(VW(i.a),44))++e;return e},o.ad=function(e,t){if(this.f.Te()&&this.c.a.Ne(e,this.b)<0)throw M(new Gn(Ttn+e+Wzn+this.b));return this.f.Ue()?cOn(this.c,e,t,this.e,this.d):BOn(this.c,e,t)},o.a=!1,o.d=!1,w(le,"TreeMap/SubMap",631),b(304,22,NB,uC),o.Te=function(){return!1},o.Ue=function(){return!1};var e_,t_,i_,r_,lP=we(le,"TreeMap/SubMapType",304,ke,Upe,nde);b(1143,304,NB,lTn),o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/1",1143,lP,null,null),b(1144,304,NB,kTn),o.Te=function(){return!0},o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/2",1144,lP,null,null),b(1145,304,NB,hTn),o.Te=function(){return!0},we(le,"TreeMap/SubMapType/3",1145,lP,null,null);var IQn;b(157,Rf,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},GG,Ul,Y3),o.Nc=function(){return new cC(this)},o.Fc=function(e){return _7(this,e)},o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){return this.a.ec().Kc()},o.Mc=function(e){return EL(this,e)},o.gc=function(){return this.a.gc()};var aNe=w(le,"TreeSet",157);b(1082,1,{},a9n),o.Ve=function(e,t){return pae(this.a,e,t)},w($B,"BinaryOperator/lambda$0$Type",1082),b(1083,1,{},d9n),o.Ve=function(e,t){return mae(this.a,e,t)},w($B,"BinaryOperator/lambda$1$Type",1083),b(952,1,{},B0n),o.Kb=function(e){return e},w($B,"Function/lambda$0$Type",952),b(395,1,De,Z3),o.Mb=function(e){return!this.a.Mb(e)},w($B,"Predicate/lambda$2$Type",395),b(581,1,{581:1});var OQn=w(e8,"Handler",581);b(2107,1,ky),o.xe=function(){return"DUMMY"},o.Ib=function(){return this.xe()};var $un;w(e8,"Level",2107),b(1706,2107,ky,R0n),o.xe=function(){return"INFO"},w(e8,"Level/LevelInfo",1706),b(1843,1,{},Ryn);var c_;w(e8,"LogManager",1843),b(1896,1,ky,aSn),o.b=null,w(e8,"LogRecord",1896),b(525,1,{525:1},VN),o.e=!1;var DQn=!1,LQn=!1,qf=!1,NQn=!1,$Qn=!1;w(e8,"Logger",525),b(835,581,{581:1},BU),w(e8,"SimpleConsoleLogHandler",835),b(108,22,{3:1,34:1,22:1,108:1},$D);var xun,Yr,Aw,xr=we(ai,"Collector/Characteristics",108,ke,O2e,ede),xQn;b(758,1,{},AW),w(ai,"CollectorImpl",758),b(1074,1,{},K0n),o.Ve=function(e,t){return l5e(u(e,213),u(t,213))},w(ai,"Collectors/10methodref$merge$Type",1074),b(1075,1,{},_0n),o.Kb=function(e){return bDn(u(e,213))},w(ai,"Collectors/11methodref$toString$Type",1075),b(1076,1,{},b9n),o.Kb=function(e){return _n(),!!yX(e)},w(ai,"Collectors/12methodref$test$Type",1076),b(144,1,{},yu),o.Yd=function(e,t){u(e,16).Fc(t)},w(ai,"Collectors/20methodref$add$Type",144),b(146,1,{},ju),o.Xe=function(){return new Z},w(ai,"Collectors/21methodref$ctor$Type",146),b(359,1,{},Q2),o.Xe=function(){return new ni},w(ai,"Collectors/23methodref$ctor$Type",359),b(360,1,{},Y2),o.Yd=function(e,t){fi(u(e,49),t)},w(ai,"Collectors/24methodref$add$Type",360),b(1069,1,{},H0n),o.Ve=function(e,t){return cCn(u(e,15),u(t,16))},w(ai,"Collectors/4methodref$addAll$Type",1069),b(1073,1,{},q0n),o.Yd=function(e,t){pl(u(e,213),u(t,484))},w(ai,"Collectors/9methodref$add$Type",1073),b(1072,1,{},PSn),o.Xe=function(){return new fd(this.a,this.b,this.c)},w(ai,"Collectors/lambda$15$Type",1072),b(1077,1,{},U0n),o.Xe=function(){var e;return e=new Ql,s1(e,(_n(),!1),new Z),s1(e,!0,new Z),e},w(ai,"Collectors/lambda$22$Type",1077),b(1078,1,{},w9n),o.Xe=function(){return S(T(ki,1),Fn,1,5,[this.a])},w(ai,"Collectors/lambda$25$Type",1078),b(1079,1,{},g9n),o.Yd=function(e,t){Fbe(this.a,cd(e))},w(ai,"Collectors/lambda$26$Type",1079),b(1080,1,{},p9n),o.Ve=function(e,t){return lwe(this.a,cd(e),cd(t))},w(ai,"Collectors/lambda$27$Type",1080),b(1081,1,{},G0n),o.Kb=function(e){return cd(e)[0]},w(ai,"Collectors/lambda$28$Type",1081),b(728,1,{},RU),o.Ve=function(e,t){return oW(e,t)},w(ai,"Collectors/lambda$4$Type",728),b(145,1,{},Eu),o.Ve=function(e,t){return zhe(u(e,16),u(t,16))},w(ai,"Collectors/lambda$42$Type",145),b(361,1,{},Z2),o.Ve=function(e,t){return Xhe(u(e,49),u(t,49))},w(ai,"Collectors/lambda$50$Type",361),b(362,1,{},np),o.Kb=function(e){return u(e,49)},w(ai,"Collectors/lambda$51$Type",362),b(1068,1,{},m9n),o.Yd=function(e,t){p6e(this.a,u(e,85),t)},w(ai,"Collectors/lambda$7$Type",1068),b(1070,1,{},z0n),o.Ve=function(e,t){return Xve(u(e,85),u(t,85),new H0n)},w(ai,"Collectors/lambda$8$Type",1070),b(1071,1,{},v9n),o.Kb=function(e){return U5e(this.a,u(e,85))},w(ai,"Collectors/lambda$9$Type",1071),b(550,1,{}),o.$e=function(){V6(this)},o.d=!1,w(ai,"TerminatableStream",550),b(827,550,Atn,uV),o.$e=function(){V6(this)},w(ai,"DoubleStreamImpl",827),b(1847,736,Po,ISn),o.Re=function(e){return X9e(this,u(e,189))},o.a=null,w(ai,"DoubleStreamImpl/2",1847),b(1848,1,Py,k9n),o.Pe=function(e){Kle(this.a,e)},w(ai,"DoubleStreamImpl/2/lambda$0$Type",1848),b(1845,1,Py,y9n),o.Pe=function(e){Rle(this.a,e)},w(ai,"DoubleStreamImpl/lambda$0$Type",1845),b(1846,1,Py,j9n),o.Pe=function(e){IBn(this.a,e)},w(ai,"DoubleStreamImpl/lambda$2$Type",1846),b(1397,735,Po,vLn),o.Re=function(e){return Lpe(this,u(e,202))},o.a=0,o.b=0,o.c=0,w(ai,"IntStream/5",1397),b(806,550,Atn,oV),o.$e=function(){V6(this)},o._e=function(){return z1(this),this.a},w(ai,"IntStreamImpl",806),b(807,550,Atn,Dz),o.$e=function(){V6(this)},o._e=function(){return z1(this),HX(),PQn},w(ai,"IntStreamImpl/Empty",807),b(1687,1,jy,E9n),o.Dd=function(e){Kxn(this.a,e)},w(ai,"IntStreamImpl/lambda$4$Type",1687);var dNe=Nt(ai,"Stream");b(26,550,{533:1,687:1,848:1},Tn),o.$e=function(){V6(this)};var v3;w(ai,"StreamImpl",26),b(1102,500,Po,rSn),o.Bd=function(e){for(;x4e(this);){if(this.a.Bd(e))return!0;V6(this.b),this.b=null,this.a=null}return!1},w(ai,"StreamImpl/1",1102),b(1103,1,ie,C9n),o.Cd=function(e){fbe(this.a,u(e,848))},w(ai,"StreamImpl/1/lambda$0$Type",1103),b(1104,1,De,M9n),o.Mb=function(e){return fi(this.a,e)},w(ai,"StreamImpl/1methodref$add$Type",1104),b(1105,500,Po,BIn),o.Bd=function(e){var t;return this.a||(t=new Z,this.b.a.Nb(new T9n(t)),Dn(),Yt(t,this.c),this.a=new In(t,16)),y$n(this.a,e)},o.a=null,w(ai,"StreamImpl/5",1105),b(1106,1,ie,T9n),o.Cd=function(e){nn(this.a,e)},w(ai,"StreamImpl/5/2methodref$add$Type",1106),b(737,500,Po,tQ),o.Bd=function(e){for(this.b=!1;!this.b&&this.c.Bd(new jCn(this,e)););return this.b},o.b=!1,w(ai,"StreamImpl/FilterSpliterator",737),b(1096,1,ie,jCn),o.Cd=function(e){cwe(this.a,this.b,e)},w(ai,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),b(1091,736,Po,ILn),o.Re=function(e){return Rae(this,u(e,189))},w(ai,"StreamImpl/MapToDoubleSpliterator",1091),b(1095,1,ie,ECn),o.Cd=function(e){fle(this.a,this.b,e)},w(ai,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),b(1090,735,Po,OLn),o.Re=function(e){return Kae(this,u(e,202))},w(ai,"StreamImpl/MapToIntSpliterator",1090),b(1094,1,ie,CCn),o.Cd=function(e){hle(this.a,this.b,e)},w(ai,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),b(734,500,Po,_J),o.Bd=function(e){return eSn(this,e)},w(ai,"StreamImpl/MapToObjSpliterator",734),b(1093,1,ie,MCn),o.Cd=function(e){lle(this.a,this.b,e)},w(ai,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),b(1092,500,Po,uxn),o.Bd=function(e){for(;LD(this.b,0);){if(!this.a.Bd(new X0n))return!1;this.b=bs(this.b,1)}return this.a.Bd(e)},o.b=0,w(ai,"StreamImpl/SkipSpliterator",1092),b(1097,1,ie,X0n),o.Cd=function(e){},w(ai,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),b(626,1,ie,LO),o.Cd=function(e){t9n(this,e)},w(ai,"StreamImpl/ValueConsumer",626),b(1098,1,ie,V0n),o.Cd=function(e){Xa()},w(ai,"StreamImpl/lambda$0$Type",1098),b(1099,1,ie,W0n),o.Cd=function(e){Xa()},w(ai,"StreamImpl/lambda$1$Type",1099),b(1100,1,{},A9n),o.Ve=function(e,t){return mde(this.a,e,t)},w(ai,"StreamImpl/lambda$4$Type",1100),b(1101,1,ie,TCn),o.Cd=function(e){Cae(this.b,this.a,e)},w(ai,"StreamImpl/lambda$5$Type",1101),b(1107,1,ie,S9n),o.Cd=function(e){$ve(this.a,u(e,380))},w(ai,"TerminatableStream/lambda$0$Type",1107),b(2142,1,{}),b(2014,1,{},J0n),w("javaemul.internal","ConsoleLogger",2014);var bNe=0;b(2134,1,{}),b(1830,1,ie,Q0n),o.Cd=function(e){u(e,317)},w(Hm,"BowyerWatsonTriangulation/lambda$0$Type",1830),b(1831,1,ie,P9n),o.Cd=function(e){Bi(this.a,u(e,317).e)},w(Hm,"BowyerWatsonTriangulation/lambda$1$Type",1831),b(1832,1,ie,Y0n),o.Cd=function(e){u(e,177)},w(Hm,"BowyerWatsonTriangulation/lambda$2$Type",1832),b(1827,1,Ne,I9n),o.Ne=function(e,t){return m3e(this.a,u(e,177),u(t,177))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Hm,"NaiveMinST/lambda$0$Type",1827),b(449,1,{},Vv),w(Hm,"NodeMicroLayout",449),b(177,1,{177:1},bp),o.Fb=function(e){var t;return O(e,177)?(t=u(e,177),mc(this.a,t.a)&&mc(this.b,t.b)||mc(this.a,t.b)&&mc(this.b,t.a)):!1},o.Hb=function(){return kg(this.a)+kg(this.b)};var wNe=w(Hm,"TEdge",177);b(317,1,{317:1},_en),o.Fb=function(e){var t;return O(e,317)?(t=u(e,317),tT(this,t.a)&&tT(this,t.b)&&tT(this,t.c)):!1},o.Hb=function(){return kg(this.a)+kg(this.b)+kg(this.c)},w(Hm,"TTriangle",317),b(225,1,{225:1},LC),w(Hm,"Tree",225),b(1218,1,{},EOn),w(Yzn,"Scanline",1218);var FQn=Nt(Yzn,Zzn);b(1758,1,{},m$n),w(zh,"CGraph",1758),b(316,1,{316:1},TOn),o.b=0,o.c=0,o.d=0,o.g=0,o.i=0,o.k=li,w(zh,"CGroup",316),b(830,1,{},VG),w(zh,"CGroup/CGroupBuilder",830),b(60,1,{60:1},BAn),o.Ib=function(){var e;return this.j?Oe(this.j.Kb(this)):(ll(aP),aP.o+"@"+(e=l0(this)>>>0,e.toString(16)))},o.f=0,o.i=li;var aP=w(zh,"CNode",60);b(829,1,{},WG),w(zh,"CNode/CNodeBuilder",829);var BQn;b(1590,1,{},Z0n),o.ff=function(e,t){return 0},o.gf=function(e,t){return 0},w(zh,eXn,1590),b(1853,1,{},nbn),o.cf=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(a=St,r=new C(e.a.b);r.ar.d.c||r.d.c==s.d.c&&r.d.b0?e+this.n.d+this.n.a:0},o.kf=function(){var e,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].kf());else if(this.g)c=RY(this,Gx(this,null,!0));else for(t=(bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])),i=0,r=t.length;i0?c+this.n.b+this.n.c:0},o.lf=function(){var e,t,i,r,c;if(this.g)for(e=Gx(this,null,!1),i=(bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])),r=0,c=i.length;r0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=y.Math.max(0,i),this.c.d=t.d+e.d+(this.c.a-i)/2,r[1]=y.Math.max(r[1],i),FJ(this,Wc,t.d+e.d+r[0]-(r[1]-i)/2,r)},o.b=null,o.d=0,o.e=!1,o.f=!1,o.g=!1;var h_=0,dP=0;w(kd,"GridContainerCell",1538),b(471,22,{3:1,34:1,22:1,471:1},FD);var ga,Mh,Gs,VQn=we(kd,"HorizontalLabelAlignment",471,ke,L2e,ude),WQn;b(314,217,{217:1,314:1},fOn,k$n,tOn),o.jf=function(){return qSn(this)},o.kf=function(){return eW(this)},o.a=0,o.c=!1;var gNe=w(kd,"LabelCell",314);b(252,336,{217:1,336:1,252:1},C5),o.jf=function(){return N5(this)},o.kf=function(){return $5(this)},o.lf=function(){LF(this)},o.mf=function(){NF(this)},o.b=0,o.c=0,o.d=!1,w(kd,"StripContainerCell",252),b(1691,1,De,obn),o.Mb=function(e){return uhe(u(e,217))},w(kd,"StripContainerCell/lambda$0$Type",1691),b(1692,1,{},sbn),o.Ye=function(e){return u(e,217).kf()},w(kd,"StripContainerCell/lambda$1$Type",1692),b(1693,1,De,fbn),o.Mb=function(e){return ohe(u(e,217))},w(kd,"StripContainerCell/lambda$2$Type",1693),b(1694,1,{},hbn),o.Ye=function(e){return u(e,217).jf()},w(kd,"StripContainerCell/lambda$3$Type",1694),b(472,22,{3:1,34:1,22:1,472:1},BD);var zs,pa,vf,JQn=we(kd,"VerticalLabelAlignment",472,ke,D2e,ode),QQn;b(800,1,{},rtn),o.c=0,o.d=0,o.k=0,o.s=0,o.t=0,o.v=!1,o.w=0,o.D=!1,o.F=!1,w(nS,"NodeContext",800),b(1536,1,Ne,lbn),o.Ne=function(e,t){return eTn(u(e,64),u(t,64))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/0methodref$comparePortSides$Type",1536),b(1537,1,Ne,abn),o.Ne=function(e,t){return xye(u(e,117),u(t,117))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/1methodref$comparePortContexts$Type",1537),b(164,22,{3:1,34:1,22:1,164:1},Vo);var YQn,ZQn,nYn,eYn,tYn,iYn,rYn,cYn,uYn,oYn,sYn,fYn,hYn,lYn,aYn,dYn,bYn,wYn,gYn,pYn,mYn,l_,vYn=we(nS,"NodeLabelLocation",164,ke,jx,sde),kYn;b(117,1,{117:1},sHn),o.a=!1,w(nS,"PortContext",117),b(1541,1,ie,dbn),o.Cd=function(e){kEn(u(e,314))},w(Oy,bXn,1541),b(1542,1,De,bbn),o.Mb=function(e){return!!u(e,117).c},w(Oy,wXn,1542),b(1543,1,ie,wbn),o.Cd=function(e){kEn(u(e,117).c)},w(Oy,"LabelPlacer/lambda$2$Type",1543);var ron;b(1540,1,ie,gbn),o.Cd=function(e){Bb(),Rfe(u(e,117))},w(Oy,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),b(801,1,ie,NV),o.Cd=function(e){Zhe(this.b,this.c,this.a,u(e,187))},o.a=!1,o.c=!1,w(Oy,"NodeLabelCellCreator/lambda$0$Type",801),b(1539,1,ie,L9n),o.Cd=function(e){Hfe(this.a,u(e,187))},w(Oy,"PortContextCreator/lambda$0$Type",1539);var bP;b(1902,1,{},pbn),w(Um,"GreedyRectangleStripOverlapRemover",1902),b(1903,1,Ne,mbn),o.Ne=function(e,t){return O1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),b(1849,1,{},qyn),o.a=5,o.e=0,w(Um,"RectangleStripOverlapRemover",1849),b(1850,1,Ne,vbn),o.Ne=function(e,t){return D1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),b(1852,1,Ne,kbn),o.Ne=function(e,t){return ywe(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),b(417,22,{3:1,34:1,22:1,417:1},sC);var ij,a_,d_,rj,yYn=we(Um,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,ke,Xpe,fde),jYn;b(226,1,{226:1},ZL),w(Um,"RectangleStripOverlapRemover/RectangleNode",226),b(1851,1,ie,N9n),o.Cd=function(e){s7e(this.a,u(e,226))},w(Um,"RectangleStripOverlapRemover/lambda$1$Type",1851),b(1323,1,Ne,ybn),o.Ne=function(e,t){return AIe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),b(1326,1,{},jbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),b(1327,1,De,Ebn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),b(1328,1,De,Cbn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),b(1321,1,Ne,Mbn),o.Ne=function(e,t){return rSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),b(1324,1,{},Tbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),b(781,1,Ne,KU),o.Ne=function(e,t){return Kve(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionsComparator",781),b(1319,1,Ne,Abn),o.Ne=function(e,t){return Vme(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparator",1319),b(1320,1,Ne,Sbn),o.Ne=function(e,t){return D9e(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),b(1322,1,Ne,Pbn),o.Ne=function(e,t){return CSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),b(1325,1,{},Ibn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),b(782,1,{},Gz),o.Ve=function(e,t){return Rpe(this,u(e,42),u(t,176))},w(mh,"SuccessorCombination",782),b(649,1,{},NO),o.Ve=function(e,t){var i;return eCe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorJitter",649),b(648,1,{},$O),o.Ve=function(e,t){var i;return _Te((i=u(e,42),u(t,176),i))},w(mh,"SuccessorLineByLine",648),b(573,1,{},vE),o.Ve=function(e,t){var i;return eMe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorManhattan",573),b(1344,1,{},Obn),o.Ve=function(e,t){var i;return lTe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorMaxNormWindingInMathPosSense",1344),b(409,1,{},n4),o.Ve=function(e,t){return MW(this,e,t)},o.c=!1,o.d=!1,o.e=!1,o.f=!1,w(mh,"SuccessorQuadrantsGeneric",409),b(1345,1,{},Dbn),o.Kb=function(e){return u(e,334).a},w(mh,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),b(332,22,{3:1,34:1,22:1,332:1},fC),o.a=!1;var cj,uj,oj,sj,EYn=we(tS,Btn,332,ke,Gpe,hde),CYn;b(1317,1,{}),o.Ib=function(){var e,t,i,r,c,s;for(i=" ",e=Y(0),c=0;c=0?"b"+e+"["+XN(this.a)+"]":"b["+XN(this.a)+"]"):"b_"+l0(this)},w(Ly,"FBendpoint",250),b(290,137,{3:1,290:1,96:1,137:1},RAn),o.Ib=function(){return XN(this)},w(Ly,"FEdge",290),b(235,137,{3:1,235:1,96:1,137:1},zM);var mNe=w(Ly,"FGraph",235);b(454,309,{3:1,454:1,309:1,96:1,137:1},_Dn),o.Ib=function(){return this.b==null||this.b.length==0?"l["+XN(this.a)+"]":"l_"+this.b},w(Ly,"FLabel",454),b(153,309,{3:1,153:1,309:1,96:1,137:1},vTn),o.Ib=function(){return aJ(this)},o.a=0,w(Ly,"FNode",153),b(2100,1,{}),o.vf=function(e){xen(this,e)},o.wf=function(){HRn(this)},o.d=0,w(Xtn,"AbstractForceModel",2100),b(641,2100,{641:1},Rxn),o.uf=function(e,t){var i,r,c,s,f;return wGn(this.f,e,t),c=mi(Ki(t.d),e.d),f=y.Math.sqrt(c.a*c.a+c.b*c.b),r=y.Math.max(0,f-X6(e.e)/2-X6(t.e)/2),i=Q_n(this.e,e,t),i>0?s=-mwe(r,this.c)*i:s=X1e(r,this.b)*u(v(e,(qs(),k3)),17).a,rh(c,s/f),c},o.vf=function(e){xen(this,e),this.a=u(v(e,(qs(),kP)),17).a,this.c=$(R(v(e,yP))),this.b=$(R(v(e,k_)))},o.xf=function(e){return e0&&(s-=the(r,this.a)*i),rh(c,s*this.b/f),c},o.vf=function(e){var t,i,r,c,s,f,h;for(xen(this,e),this.b=$(R(v(e,(qs(),y_)))),this.c=this.b/u(v(e,kP),17).a,r=e.e.c.length,s=0,c=0,h=new C(e.e);h.a0},o.a=0,o.b=0,o.c=0,w(Xtn,"FruchtermanReingoldModel",642),b(860,1,ps,N5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,cS),""),"Force Model"),"Determines the model for force calculation."),don),(l1(),Pt)),bon),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vtn),""),"Iterations"),"The number of iterations on the force model."),Y(300)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Wtn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ZB),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),vh),Qi),si),yn(xn)))),ri(e,ZB,cS,UYn),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nR),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Qi),si),yn(xn)))),ri(e,nR,cS,_Yn),izn((new $5n,e))};var BYn,RYn,don,KYn,_Yn,HYn,qYn,UYn;w(r8,"ForceMetaDataProvider",860),b(432,22,{3:1,34:1,22:1,432:1},Xz);var v_,vP,bon=we(r8,"ForceModelStrategy",432,ke,Rge,dde),GYn;b(d1,1,ps,$5n),o.hf=function(e){izn(e)};var zYn,XYn,won,kP,gon,VYn,WYn,JYn,QYn,pon,YYn,mon,von,ZYn,k3,nZn,k_,kon,eZn,tZn,yP,y_,iZn,rZn,cZn,yon,uZn;w(r8,"ForceOptions",d1),b(1001,1,{},Wbn),o.sf=function(){var e;return e=new XG,e},o.tf=function(e){},w(r8,"ForceOptions/ForceFactory",1001);var lj,$8,y3,jP;b(861,1,ps,x5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qtn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(_n(),!1)),(l1(),yi)),Gt),yn((gf(),pi))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ytn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ztn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),jon),Pt),Pon),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nin),""),"Stress Epsilon"),"Termination criterion for the iterative process."),vh),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ein),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Y(et)),Zr),Gi),yn(xn)))),OGn((new F5n,e))};var oZn,sZn,jon,fZn,hZn,lZn;w(r8,"StressMetaDataProvider",861),b(1004,1,ps,F5n),o.hf=function(e){OGn(e)};var EP,Eon,Con,Mon,Ton,Aon,aZn,dZn,bZn,wZn,Son,gZn;w(r8,"StressOptions",1004),b(1005,1,{},Xbn),o.sf=function(){var e;return e=new KAn,e},o.tf=function(e){},w(r8,"StressOptions/StressFactory",1005),b(1110,205,yd,KAn),o.rf=function(e,t){var i,r,c,s,f;for(t.Ug(SXn,1),on(un(z(e,(zk(),Ton))))?on(un(z(e,Son)))||W7((i=new Vv((c0(),new Qd(e))),i)):VHn(new XG,e,t.eh(1)),c=fFn(e),r=KUn(this.a,c),f=r.Kc();f.Ob();)s=u(f.Pb(),235),!(s.e.c.length<=1)&&(CIe(this.b,s),JCe(this.b),nu(s.d,new Vbn));c=nzn(r),hzn(c),t.Vg()},w(sS,"StressLayoutProvider",1110),b(1111,1,ie,Vbn),o.Cd=function(e){Uen(u(e,454))},w(sS,"StressLayoutProvider/lambda$0$Type",1111),b(1002,1,{},Byn),o.c=0,o.e=0,o.g=0,w(sS,"StressMajorization",1002),b(391,22,{3:1,34:1,22:1,391:1},RD);var j_,E_,C_,Pon=we(sS,"StressMajorization/Dimension",391,ke,$2e,bde),pZn;b(1003,1,Ne,B9n),o.Ne=function(e,t){return Hae(this.a,u(e,153),u(t,153))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(sS,"StressMajorization/lambda$0$Type",1003),b(1192,1,{},zOn),w(b3,"ElkLayered",1192),b(1193,1,ie,R9n),o.Cd=function(e){MEe(this.a,u(e,36))},w(b3,"ElkLayered/lambda$0$Type",1193),b(1194,1,ie,K9n),o.Cd=function(e){qae(this.a,u(e,36))},w(b3,"ElkLayered/lambda$1$Type",1194),b(1281,1,{},PTn);var mZn,vZn,kZn;w(b3,"GraphConfigurator",1281),b(770,1,ie,OG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$0$Type",770),b(771,1,{},HU),o.Kb=function(e){return LZ(),new Tn(null,new In(u(e,30).a,16))},w(b3,"GraphConfigurator/lambda$1$Type",771),b(772,1,ie,DG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$2$Type",772),b(1109,205,yd,Uyn),o.rf=function(e,t){var i;i=cIe(new zyn,e),x(z(e,(cn(),Bw)))===x((jl(),M1))?F5e(this.a,i,t):zCe(this.a,i,t),t.$g()||XGn(new B5n,i)},w(b3,"LayeredLayoutProvider",1109),b(367,22,{3:1,34:1,22:1,367:1},f7);var Xs,Jh,Oc,Kc,zr,Ion=we(b3,"LayeredPhases",367,ke,R3e,wde),yZn;b(1717,1,{},ixn),o.i=0;var jZn;w(Ry,"ComponentsToCGraphTransformer",1717);var EZn;b(1718,1,{},zbn),o.yf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(Ry,"ComponentsToCGraphTransformer/1",1718),b(86,1,{86:1}),o.i=0,o.k=!0,o.o=li;var M_=w(s8,"CNode",86);b(470,86,{470:1,86:1},QX,oZ),o.Ib=function(){return""},w(Ry,"ComponentsToCGraphTransformer/CRectNode",470),b(1688,1,{},Jbn);var T_,A_;w(Ry,"OneDimensionalComponentsCompaction",1688),b(1689,1,{},Qbn),o.Kb=function(e){return T2e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),b(1690,1,{},Ybn),o.Kb=function(e){return R5e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),b(1720,1,{},ZPn),w(s8,"CGraph",1720),b(194,1,{194:1},vx),o.b=0,o.c=0,o.e=0,o.g=!0,o.i=li,w(s8,"CGroup",194),b(1719,1,{},Zbn),o.yf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(s8,eXn,1719),b(1721,1,{},Z_n),o.d=!1;var CZn,S_=w(s8,rXn,1721);b(1722,1,{},nwn),o.Kb=function(e){return Nz(),_n(),u(u(e,42).a,86).d.e!=0},o.Fb=function(e){return this===e},w(s8,cXn,1722),b(833,1,{},sW),o.a=!1,o.b=!1,o.c=!1,o.d=!1,w(s8,uXn,833),b(1898,1,{},wPn),w(fS,oXn,1898);var aj=Nt(Ed,Zzn);b(1899,1,{382:1},WIn),o.bf=function(e){nAe(this,u(e,476))},w(fS,sXn,1899),b(fa,1,Ne,ewn),o.Ne=function(e,t){return fge(u(e,86),u(t,86))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,fXn,fa),b(476,1,{476:1},Wz),o.a=!1,w(fS,hXn,476),b(1901,1,Ne,twn),o.Ne=function(e,t){return hke(u(e,476),u(t,476))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,lXn,1901),b(148,1,{148:1},d4,GV),o.Fb=function(e){var t;return e==null||vNe!=wo(e)?!1:(t=u(e,148),mc(this.c,t.c)&&mc(this.d,t.d))},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.c,this.d]))},o.Ib=function(){return"("+this.c+ur+this.d+(this.a?"cx":"")+this.b+")"},o.a=!0,o.c=0,o.d=0;var vNe=w(Ed,"Point",148);b(416,22,{3:1,34:1,22:1,416:1},lC);var rb,Pw,a2,Iw,MZn=we(Ed,"Point/Quadrant",416,ke,Vpe,gde),TZn;b(1708,1,{},Hyn),o.b=null,o.c=null,o.d=null,o.e=null,o.f=null;var AZn,SZn,PZn,IZn,OZn;w(Ed,"RectilinearConvexHull",1708),b(583,1,{382:1},eA),o.bf=function(e){B4e(this,u(e,148))},o.b=0;var Oon;w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler",583),b(1710,1,Ne,iwn),o.Ne=function(e,t){return hge(R(e),R(t))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),b(1709,1,{382:1},v$n),o.bf=function(e){wTe(this,u(e,148))},o.a=0,o.b=null,o.c=null,o.d=null,o.e=null,w(Ed,"RectilinearConvexHull/RectangleEventHandler",1709),b(1711,1,Ne,rwn),o.Ne=function(e,t){return mpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$0$Type",1711),b(1712,1,Ne,own),o.Ne=function(e,t){return vpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$1$Type",1712),b(1713,1,Ne,swn),o.Ne=function(e,t){return ppe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$2$Type",1713),b(1714,1,Ne,uwn),o.Ne=function(e,t){return kpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$3$Type",1714),b(1715,1,Ne,fwn),o.Ne=function(e,t){return Qye(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$4$Type",1715),b(1716,1,{},COn),w(Ed,"Scanline",1716),b(2104,1,{}),w(_f,"AbstractGraphPlacer",2104),b(335,1,{335:1},lAn),o.Ff=function(e){return this.Gf(e)?(Pn(this.b,u(v(e,(W(),Nl)),21),e),!0):!1},o.Gf=function(e){var t,i,r,c;for(t=u(v(e,(W(),Nl)),21),c=u(ot(wt,t),21),r=c.Kc();r.Ob();)if(i=u(r.Pb(),21),!u(ot(this.b,i),15).dc())return!1;return!0};var wt;w(_f,"ComponentGroup",335),b(779,2104,{},JG),o.Hf=function(e){var t,i;for(i=new C(this.a);i.ai&&(d=0,g+=h+r,h=0),l=s.c,Sm(s,d+l.a,g+l.b),sf(l),c=y.Math.max(c,d+a.a),h=y.Math.max(h,a.b),d+=a.a+r;t.f.a=c,t.f.b=g+h},o.Jf=function(e,t){var i,r,c,s,f;if(x(v(t,(cn(),Fw)))===x((dd(),Ow))){for(r=e.Kc();r.Ob();){for(i=u(r.Pb(),36),f=0,s=new C(i.a);s.ai&&!u(v(s,(W(),Nl)),21).Hc((tn(),Xn))||l&&u(v(l,(W(),Nl)),21).Hc((tn(),Zn))||u(v(s,(W(),Nl)),21).Hc((tn(),Wn)))&&(p=g,m+=h+r,h=0),a=s.c,u(v(s,(W(),Nl)),21).Hc((tn(),Xn))&&(p=c+r),Sm(s,p+a.a,m+a.b),c=y.Math.max(c,p+d.a),u(v(s,Nl),21).Hc(ae)&&(g=y.Math.max(g,p+d.a+r)),sf(a),h=y.Math.max(h,d.b),p+=d.a+r,l=s;t.f.a=c,t.f.b=m+h},o.Jf=function(e,t){},w(_f,"ModelOrderRowGraphPlacer",1313),b(1311,1,Ne,awn),o.Ne=function(e,t){return Fve(u(e,36),u(t,36))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(_f,"SimpleRowGraphPlacer/1",1311);var LZn;b(1280,1,ph,dwn),o.Lb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},o.Fb=function(e){return this===e},o.Mb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},w(hS,"CompoundGraphPostprocessor/1",1280),b(1279,1,vt,Xyn),o.Kf=function(e,t){jRn(this,u(e,36),t)},w(hS,"CompoundGraphPreprocessor",1279),b(453,1,{453:1},aBn),o.c=!1,w(hS,"CompoundGraphPreprocessor/ExternalPort",453),b(249,1,{249:1},zC),o.Ib=function(){return SL(this.c)+":"+X_n(this.b)},w(hS,"CrossHierarchyEdge",249),b(777,1,Ne,LG),o.Ne=function(e,t){return B7e(this,u(e,249),u(t,249))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(hS,"CrossHierarchyEdgeComparator",777),b(305,137,{3:1,305:1,96:1,137:1}),o.p=0,w(Bc,"LGraphElement",305),b(18,305,{3:1,18:1,305:1,96:1,137:1},E0),o.Ib=function(){return X_n(this)};var O_=w(Bc,"LEdge",18);b(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},EQ),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.b)},o.Ib=function(){return this.b.c.length==0?"G-unlayered"+ra(this.a):this.a.c.length==0?"G-layered"+ra(this.b):"G[layerless"+ra(this.a)+", layers"+ra(this.b)+"]"};var NZn=w(Bc,"LGraph",36),$Zn;b(666,1,{}),o.Lf=function(){return this.e.n},o.of=function(e){return v(this.e,e)},o.Mf=function(){return this.e.o},o.Nf=function(){return this.e.p},o.pf=function(e){return kt(this.e,e)},o.Of=function(e){this.e.n.a=e.a,this.e.n.b=e.b},o.Pf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},o.Qf=function(e){this.e.p=e},w(Bc,"LGraphAdapters/AbstractLShapeAdapter",666),b(474,1,{853:1},Wv),o.Rf=function(){var e,t;if(!this.b)for(this.b=Dh(this.a.b.c.length),t=new C(this.a.b);t.a0&&qFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(s> ",e),lA(i)),Be(Dc((e.a+="[",e),i.i),"]")),e.a},o.c=!0,o.d=!1;var xon,Fon,Bon,Ron,Kon,_on,FZn=w(Bc,"LPort",12);b(408,1,qh,e4),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.e),new _9n(e)},w(Bc,"LPort/1",408),b(1309,1,Si,_9n),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).c},o.Ob=function(){return tc(this.a)},o.Qb=function(){U6(this.a)},w(Bc,"LPort/1/1",1309),b(369,1,qh,tp),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.g),new NG(e)},w(Bc,"LPort/2",369),b(776,1,Si,NG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).d},o.Ob=function(){return tc(this.a)},o.Qb=function(){U6(this.a)},w(Bc,"LPort/2/1",776),b(1302,1,qh,ICn),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new Of(this)},w(Bc,"LPort/CombineIter",1302),b(208,1,Si,Of),o.Nb=function(e){_i(this,e)},o.Qb=function(){sEn()},o.Ob=function(){return L6(this)},o.Pb=function(){return tc(this.a)?E(this.a):E(this.b)},w(Bc,"LPort/CombineIter/1",208),b(1303,1,ph,wwn),o.Lb=function(e){return PPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).g.c.length!=0},w(Bc,"LPort/lambda$0$Type",1303),b(1304,1,ph,gwn),o.Lb=function(e){return IPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).e.c.length!=0},w(Bc,"LPort/lambda$1$Type",1304),b(1305,1,ph,pwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Xn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Xn)},w(Bc,"LPort/lambda$2$Type",1305),b(1306,1,ph,mwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Zn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Zn)},w(Bc,"LPort/lambda$3$Type",1306),b(1307,1,ph,vwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),ae)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),ae)},w(Bc,"LPort/lambda$4$Type",1307),b(1308,1,ph,kwn),o.Lb=function(e){return Ou(),u(e,12).j==(tn(),Wn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(tn(),Wn)},w(Bc,"LPort/lambda$5$Type",1308),b(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},Lc),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.a)},o.Ib=function(){return"L_"+qr(this.b.b,this,0)+ra(this.a)},w(Bc,"Layer",30),b(1330,1,{},zyn),w(w1,BXn,1330),b(1334,1,{},ywn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),b(1337,1,{},jwn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),b(1331,1,ie,H9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,ztn,1331),b(1332,1,ie,q9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,RXn,1332),b(1333,1,{},Ewn),o.Kb=function(e){return new Tn(null,new In(UW(u(e,74)),16))},w(w1,KXn,1333),b(1335,1,De,U9n),o.Mb=function(e){return _le(this.a,u(e,27))},w(w1,_Xn,1335),b(1336,1,{},Cwn),o.Kb=function(e){return new Tn(null,new In(rge(u(e,74)),16))},w(w1,"ElkGraphImporter/lambda$5$Type",1336),b(1338,1,De,G9n),o.Mb=function(e){return Hle(this.a,u(e,27))},w(w1,"ElkGraphImporter/lambda$7$Type",1338),b(1339,1,De,Mwn),o.Mb=function(e){return mge(u(e,74))},w(w1,"ElkGraphImporter/lambda$8$Type",1339),b(1297,1,{},B5n);var BZn;w(w1,"ElkGraphLayoutTransferrer",1297),b(1298,1,De,z9n),o.Mb=function(e){return Iae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),b(1299,1,ie,X9n),o.Cd=function(e){o7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),b(1300,1,De,V9n),o.Mb=function(e){return wae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),b(1301,1,ie,W9n),o.Cd=function(e){o7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),b(819,1,{},kV),w(Qn,"BiLinkedHashMultiMap",819),b(1550,1,vt,Twn),o.Kf=function(e,t){ive(u(e,36),t)},w(Qn,"CommentNodeMarginCalculator",1550),b(1551,1,{},Awn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"CommentNodeMarginCalculator/lambda$0$Type",1551),b(1552,1,ie,Swn),o.Cd=function(e){iIe(u(e,10))},w(Qn,"CommentNodeMarginCalculator/lambda$1$Type",1552),b(1553,1,vt,Pwn),o.Kf=function(e,t){oAe(u(e,36),t)},w(Qn,"CommentPostprocessor",1553),b(1554,1,vt,Iwn),o.Kf=function(e,t){PDe(u(e,36),t)},w(Qn,"CommentPreprocessor",1554),b(1555,1,vt,Own),o.Kf=function(e,t){CTe(u(e,36),t)},w(Qn,"ConstraintsPostprocessor",1555),b(1556,1,vt,Dwn),o.Kf=function(e,t){Ove(u(e,36),t)},w(Qn,"EdgeAndLayerConstraintEdgeReverser",1556),b(1557,1,vt,Lwn),o.Kf=function(e,t){y8e(u(e,36),t)},w(Qn,"EndLabelPostprocessor",1557),b(1558,1,{},Nwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPostprocessor/lambda$0$Type",1558),b(1559,1,De,$wn),o.Mb=function(e){return x3e(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$1$Type",1559),b(1560,1,ie,xwn),o.Cd=function(e){lke(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$2$Type",1560),b(1561,1,vt,Fwn),o.Kf=function(e,t){Zje(u(e,36),t)},w(Qn,"EndLabelPreprocessor",1561),b(1562,1,{},Bwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPreprocessor/lambda$0$Type",1562),b(1563,1,ie,pSn),o.Cd=function(e){nle(this.a,this.b,this.c,u(e,10))},o.a=0,o.b=0,o.c=!1,w(Qn,"EndLabelPreprocessor/lambda$1$Type",1563),b(1564,1,De,Rwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Rv))},w(Qn,"EndLabelPreprocessor/lambda$2$Type",1564),b(1565,1,ie,J9n),o.Cd=function(e){xe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$3$Type",1565),b(1566,1,De,Kwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Jw))},w(Qn,"EndLabelPreprocessor/lambda$4$Type",1566),b(1567,1,ie,Q9n),o.Cd=function(e){xe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$5$Type",1567),b(1615,1,vt,I5n),o.Kf=function(e,t){k5e(u(e,36),t)};var RZn;w(Qn,"EndLabelSorter",1615),b(1616,1,Ne,_wn),o.Ne=function(e,t){return Z8e(u(e,466),u(t,466))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"EndLabelSorter/1",1616),b(466,1,{466:1},qIn),w(Qn,"EndLabelSorter/LabelGroup",466),b(1617,1,{},Hwn),o.Kb=function(e){return u7(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelSorter/lambda$0$Type",1617),b(1618,1,De,qwn),o.Mb=function(e){return u7(),u(e,10).k==(Vn(),zt)},w(Qn,"EndLabelSorter/lambda$1$Type",1618),b(1619,1,ie,Uwn),o.Cd=function(e){dje(u(e,10))},w(Qn,"EndLabelSorter/lambda$2$Type",1619),b(1620,1,De,Gwn),o.Mb=function(e){return u7(),x(v(u(e,72),(cn(),Ah)))===x((Nf(),Jw))},w(Qn,"EndLabelSorter/lambda$3$Type",1620),b(1621,1,De,zwn),o.Mb=function(e){return u7(),x(v(u(e,72),(cn(),Ah)))===x((Nf(),Rv))},w(Qn,"EndLabelSorter/lambda$4$Type",1621),b(1568,1,vt,Xwn),o.Kf=function(e,t){pIe(this,u(e,36))},o.b=0,o.c=0,w(Qn,"FinalSplineBendpointsCalculator",1568),b(1569,1,{},Vwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),b(1570,1,{},Wwn),o.Kb=function(e){return new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),b(1571,1,De,Jwn),o.Mb=function(e){return!fr(u(e,18))},w(Qn,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),b(1572,1,De,Qwn),o.Mb=function(e){return kt(u(e,18),(W(),Dd))},w(Qn,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),b(1573,1,ie,Y9n),o.Cd=function(e){TSe(this.a,u(e,131))},w(Qn,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),b(1574,1,ie,Ywn),o.Cd=function(e){ny(u(e,18).a)},w(Qn,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),b(803,1,vt,$G),o.Kf=function(e,t){lOe(this,u(e,36),t)},w(Qn,"GraphTransformer",803),b(517,22,{3:1,34:1,22:1,517:1},Vz);var L_,dj,KZn=we(Qn,"GraphTransformer/Mode",517,ke,Kge,y0e),_Zn;b(1575,1,vt,Zwn),o.Kf=function(e,t){LMe(u(e,36),t)},w(Qn,"HierarchicalNodeResizingProcessor",1575),b(1576,1,vt,ngn),o.Kf=function(e,t){Yme(u(e,36),t)},w(Qn,"HierarchicalPortConstraintProcessor",1576),b(1577,1,Ne,egn),o.Ne=function(e,t){return k9e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortConstraintProcessor/NodeComparator",1577),b(1578,1,vt,tgn),o.Kf=function(e,t){yPe(u(e,36),t)},w(Qn,"HierarchicalPortDummySizeProcessor",1578),b(1579,1,vt,ign),o.Kf=function(e,t){OAe(this,u(e,36),t)},o.a=0,w(Qn,"HierarchicalPortOrthogonalEdgeRouter",1579),b(1580,1,Ne,rgn),o.Ne=function(e,t){return L1e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/1",1580),b(1581,1,Ne,cgn),o.Ne=function(e,t){return R4e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/2",1581),b(1582,1,vt,ugn),o.Kf=function(e,t){Vye(u(e,36),t)},w(Qn,"HierarchicalPortPositionProcessor",1582),b(1583,1,vt,R5n),o.Kf=function(e,t){hLe(this,u(e,36))},o.a=0,o.c=0;var CP,MP;w(Qn,"HighDegreeNodeLayeringProcessor",1583),b(580,1,{580:1},ogn),o.b=-1,o.d=-1,w(Qn,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),b(1584,1,{},sgn),o.Kb=function(e){return $7(),ji(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),b(1585,1,{},fgn),o.Kb=function(e){return $7(),Qt(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),b(1591,1,vt,hgn),o.Kf=function(e,t){dPe(this,u(e,36),t)},w(Qn,"HyperedgeDummyMerger",1591),b(804,1,{},$V),o.a=!1,o.b=!1,o.c=!1,w(Qn,"HyperedgeDummyMerger/MergeState",804),b(1592,1,{},lgn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"HyperedgeDummyMerger/lambda$0$Type",1592),b(1593,1,{},agn),o.Kb=function(e){return new Tn(null,new In(u(e,10).j,16))},w(Qn,"HyperedgeDummyMerger/lambda$1$Type",1593),b(1594,1,ie,dgn),o.Cd=function(e){u(e,12).p=-1},w(Qn,"HyperedgeDummyMerger/lambda$2$Type",1594),b(1595,1,vt,bgn),o.Kf=function(e,t){lPe(u(e,36),t)},w(Qn,"HypernodesProcessor",1595),b(1596,1,vt,wgn),o.Kf=function(e,t){kPe(u(e,36),t)},w(Qn,"InLayerConstraintProcessor",1596),b(1597,1,vt,ggn),o.Kf=function(e,t){dve(u(e,36),t)},w(Qn,"InnermostNodeMarginCalculator",1597),b(1598,1,vt,pgn),o.Kf=function(e,t){MDe(this,u(e,36))},o.a=li,o.b=li,o.c=St,o.d=St;var kNe=w(Qn,"InteractiveExternalPortPositioner",1598);b(1599,1,{},mgn),o.Kb=function(e){return u(e,18).d.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$0$Type",1599),b(1600,1,{},Z9n),o.Kb=function(e){return N1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$1$Type",1600),b(1601,1,{},vgn),o.Kb=function(e){return u(e,18).c.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$2$Type",1601),b(1602,1,{},n7n),o.Kb=function(e){return $1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$3$Type",1602),b(1603,1,{},e7n),o.Kb=function(e){return Dae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$4$Type",1603),b(1604,1,{},t7n),o.Kb=function(e){return Lae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$5$Type",1604),b(81,22,{3:1,34:1,22:1,81:1,196:1},ei),o.dg=function(){switch(this.g){case 15:return new xpn;case 22:return new Fpn;case 47:return new Kpn;case 28:case 35:return new Ign;case 32:return new Twn;case 42:return new Pwn;case 1:return new Iwn;case 41:return new Own;case 56:return new $G((V4(),dj));case 0:return new $G((V4(),L_));case 2:return new Dwn;case 54:return new Lwn;case 33:return new Fwn;case 51:return new Xwn;case 55:return new Zwn;case 13:return new ngn;case 38:return new tgn;case 44:return new ign;case 40:return new ugn;case 9:return new R5n;case 49:return new tAn;case 37:return new hgn;case 43:return new bgn;case 27:return new wgn;case 30:return new ggn;case 3:return new pgn;case 18:return new ygn;case 29:return new jgn;case 5:return new K5n;case 50:return new kgn;case 34:return new _5n;case 36:return new Ogn;case 52:return new I5n;case 11:return new Dgn;case 7:return new H5n;case 39:return new Lgn;case 45:return new Ngn;case 16:return new $gn;case 10:return new VCn;case 48:return new Rgn;case 21:return new Kgn;case 23:return new gD((O0(),t9));case 8:return new Hgn;case 12:return new Ugn;case 4:return new Ggn;case 19:return new V5n;case 17:return new e2n;case 53:return new t2n;case 6:return new b2n;case 25:return new Wyn;case 46:return new o2n;case 31:return new UAn;case 14:return new j2n;case 26:return new qpn;case 20:return new A2n;case 24:return new gD((O0(),PI));default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var Hon,qon,Uon,Gon,zon,Xon,Von,Won,Jon,Qon,d2,TP,AP,Yon,Zon,nsn,esn,tsn,isn,rsn,x8,csn,usn,osn,ssn,fsn,N_,SP,PP,hsn,IP,OP,DP,hv,Dw,Lw,lsn,LP,NP,asn,$P,xP,dsn,bsn,wsn,gsn,FP,$_,bj,BP,RP,KP,_P,psn,msn,vsn,ksn,yNe=we(Qn,uR,81,ke,iqn,kde),HZn;b(1605,1,vt,ygn),o.Kf=function(e,t){EDe(u(e,36),t)},w(Qn,"InvertedPortProcessor",1605),b(1606,1,vt,jgn),o.Kf=function(e,t){mSe(u(e,36),t)},w(Qn,"LabelAndNodeSizeProcessor",1606),b(1607,1,De,Egn),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),b(1608,1,De,Cgn),o.Mb=function(e){return u(e,10).k==(Vn(),Zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),b(1609,1,ie,mSn),o.Cd=function(e){ele(this.b,this.a,this.c,u(e,10))},o.a=!1,o.c=!1,w(Qn,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),b(1610,1,vt,K5n),o.Kf=function(e,t){WOe(u(e,36),t)};var qZn;w(Qn,"LabelDummyInserter",1610),b(1611,1,ph,Mgn),o.Lb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Bv))},o.Fb=function(e){return this===e},o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x((Nf(),Bv))},w(Qn,"LabelDummyInserter/1",1611),b(1612,1,vt,kgn),o.Kf=function(e,t){FOe(u(e,36),t)},w(Qn,"LabelDummyRemover",1612),b(1613,1,De,Tgn),o.Mb=function(e){return on(un(v(u(e,72),(cn(),EH))))},w(Qn,"LabelDummyRemover/lambda$0$Type",1613),b(1378,1,vt,_5n),o.Kf=function(e,t){POe(this,u(e,36),t)},o.a=null;var x_;w(Qn,"LabelDummySwitcher",1378),b(293,1,{293:1},tUn),o.c=0,o.d=null,o.f=0,w(Qn,"LabelDummySwitcher/LabelDummyInfo",293),b(1379,1,{},Agn),o.Kb=function(e){return Hp(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"LabelDummySwitcher/lambda$0$Type",1379),b(1380,1,De,Sgn),o.Mb=function(e){return Hp(),u(e,10).k==(Vn(),Ac)},w(Qn,"LabelDummySwitcher/lambda$1$Type",1380),b(1381,1,{},i7n),o.Kb=function(e){return gae(this.a,u(e,10))},w(Qn,"LabelDummySwitcher/lambda$2$Type",1381),b(1382,1,ie,r7n),o.Cd=function(e){xwe(this.a,u(e,293))},w(Qn,"LabelDummySwitcher/lambda$3$Type",1382),b(1383,1,Ne,Pgn),o.Ne=function(e,t){return uwe(u(e,293),u(t,293))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"LabelDummySwitcher/lambda$4$Type",1383),b(802,1,vt,Ign),o.Kf=function(e,t){m4e(u(e,36),t)},w(Qn,"LabelManagementProcessor",802),b(1614,1,vt,Ogn),o.Kf=function(e,t){WTe(u(e,36),t)},w(Qn,"LabelSideSelector",1614),b(1622,1,vt,Dgn),o.Kf=function(e,t){xPe(u(e,36),t)},w(Qn,"LayerConstraintPostprocessor",1622),b(1623,1,vt,H5n),o.Kf=function(e,t){OCe(u(e,36),t)};var ysn;w(Qn,"LayerConstraintPreprocessor",1623),b(371,22,{3:1,34:1,22:1,371:1},dC);var wj,HP,qP,F_,UZn=we(Qn,"LayerConstraintPreprocessor/HiddenNodeConnections",371,ke,Jpe,yde),GZn;b(1624,1,vt,Lgn),o.Kf=function(e,t){ZIe(u(e,36),t)},w(Qn,"LayerSizeAndGraphHeightCalculator",1624),b(1625,1,vt,Ngn),o.Kf=function(e,t){NMe(u(e,36),t)},w(Qn,"LongEdgeJoiner",1625),b(1626,1,vt,$gn),o.Kf=function(e,t){SIe(u(e,36),t)},w(Qn,"LongEdgeSplitter",1626),b(1627,1,vt,VCn),o.Kf=function(e,t){hDe(this,u(e,36),t)},o.e=0,o.f=0,o.j=0,o.k=0,o.n=0,o.o=0;var zZn,XZn;w(Qn,"NodePromotion",1627),b(1628,1,Ne,xgn),o.Ne=function(e,t){return E6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/1",1628),b(1629,1,Ne,Fgn),o.Ne=function(e,t){return C6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/2",1629),b(1630,1,{},Bgn),o.Kb=function(e){return u(e,42),VC(),_n(),!0},o.Fb=function(e){return this===e},w(Qn,"NodePromotion/lambda$0$Type",1630),b(1631,1,{},s7n),o.Kb=function(e){return v2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$1$Type",1631),b(1632,1,{},f7n),o.Kb=function(e){return m2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$2$Type",1632),b(1633,1,vt,Rgn),o.Kf=function(e,t){rLe(u(e,36),t)},w(Qn,"NorthSouthPortPostprocessor",1633),b(1634,1,vt,Kgn),o.Kf=function(e,t){BDe(u(e,36),t)},w(Qn,"NorthSouthPortPreprocessor",1634),b(1635,1,Ne,_gn),o.Ne=function(e,t){return Bve(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NorthSouthPortPreprocessor/lambda$0$Type",1635),b(1636,1,vt,Hgn),o.Kf=function(e,t){ZSe(u(e,36),t)},w(Qn,"PartitionMidprocessor",1636),b(1637,1,De,qgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionMidprocessor/lambda$0$Type",1637),b(1638,1,ie,h7n),o.Cd=function(e){vge(this.a,u(e,10))},w(Qn,"PartitionMidprocessor/lambda$1$Type",1638),b(1639,1,vt,Ugn),o.Kf=function(e,t){eTe(u(e,36),t)},w(Qn,"PartitionPostprocessor",1639),b(1640,1,vt,Ggn),o.Kf=function(e,t){wCe(u(e,36),t)},w(Qn,"PartitionPreprocessor",1640),b(1641,1,De,zgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionPreprocessor/lambda$0$Type",1641),b(1642,1,{},Xgn),o.Kb=function(e){return new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"PartitionPreprocessor/lambda$1$Type",1642),b(1643,1,De,Vgn),o.Mb=function(e){return c9e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$2$Type",1643),b(1644,1,ie,Wgn),o.Cd=function(e){e6e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$3$Type",1644),b(1645,1,vt,V5n),o.Kf=function(e,t){LSe(u(e,36),t)};var jsn,VZn,WZn,JZn,Esn,Csn;w(Qn,"PortListSorter",1645),b(1648,1,Ne,Jgn),o.Ne=function(e,t){return XDn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$0$Type",1648),b(1650,1,Ne,Qgn),o.Ne=function(e,t){return TUn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$1$Type",1650),b(1646,1,{},Ygn),o.Kb=function(e){return cm(),u(e,12).e},w(Qn,"PortListSorter/lambda$2$Type",1646),b(1647,1,{},Zgn),o.Kb=function(e){return cm(),u(e,12).g},w(Qn,"PortListSorter/lambda$3$Type",1647),b(1649,1,Ne,n2n),o.Ne=function(e,t){return P7e(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$4$Type",1649),b(1651,1,vt,e2n),o.Kf=function(e,t){UCe(u(e,36),t)},w(Qn,"PortSideProcessor",1651),b(1652,1,vt,t2n),o.Kf=function(e,t){GAe(u(e,36),t)},w(Qn,"ReversedEdgeRestorer",1652),b(1657,1,vt,Wyn),o.Kf=function(e,t){l7e(this,u(e,36),t)},w(Qn,"SelfLoopPortRestorer",1657),b(1658,1,{},i2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPortRestorer/lambda$0$Type",1658),b(1659,1,De,r2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPortRestorer/lambda$1$Type",1659),b(1660,1,De,c2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPortRestorer/lambda$2$Type",1660),b(1661,1,{},u2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopPortRestorer/lambda$3$Type",1661),b(1662,1,ie,u7n),o.Cd=function(e){Tje(this.a,u(e,337))},w(Qn,"SelfLoopPortRestorer/lambda$4$Type",1662),b(805,1,ie,GU),o.Cd=function(e){Rje(u(e,105))},w(Qn,"SelfLoopPortRestorer/lambda$5$Type",805),b(1663,1,vt,o2n),o.Kf=function(e,t){p9e(u(e,36),t)},w(Qn,"SelfLoopPostProcessor",1663),b(1664,1,{},s2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPostProcessor/lambda$0$Type",1664),b(1665,1,De,f2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPostProcessor/lambda$1$Type",1665),b(1666,1,De,h2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPostProcessor/lambda$2$Type",1666),b(1667,1,ie,l2n),o.Cd=function(e){Ske(u(e,10))},w(Qn,"SelfLoopPostProcessor/lambda$3$Type",1667),b(1668,1,{},a2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPostProcessor/lambda$4$Type",1668),b(1669,1,ie,c7n),o.Cd=function(e){n3e(this.a,u(e,340))},w(Qn,"SelfLoopPostProcessor/lambda$5$Type",1669),b(1670,1,De,d2n),o.Mb=function(e){return!!u(e,105).i},w(Qn,"SelfLoopPostProcessor/lambda$6$Type",1670),b(1671,1,ie,o7n),o.Cd=function(e){nhe(this.a,u(e,105))},w(Qn,"SelfLoopPostProcessor/lambda$7$Type",1671),b(1653,1,vt,b2n),o.Kf=function(e,t){vMe(u(e,36),t)},w(Qn,"SelfLoopPreProcessor",1653),b(1654,1,{},w2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPreProcessor/lambda$0$Type",1654),b(1655,1,{},g2n),o.Kb=function(e){return u(e,340).a},w(Qn,"SelfLoopPreProcessor/lambda$1$Type",1655),b(1656,1,ie,p2n),o.Cd=function(e){i1e(u(e,18))},w(Qn,"SelfLoopPreProcessor/lambda$2$Type",1656),b(1672,1,vt,UAn),o.Kf=function(e,t){oje(this,u(e,36),t)},w(Qn,"SelfLoopRouter",1672),b(1673,1,{},m2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopRouter/lambda$0$Type",1673),b(1674,1,De,v2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopRouter/lambda$1$Type",1674),b(1675,1,De,k2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopRouter/lambda$2$Type",1675),b(1676,1,{},y2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopRouter/lambda$3$Type",1676),b(1677,1,ie,SCn),o.Cd=function(e){dge(this.a,this.b,u(e,337))},w(Qn,"SelfLoopRouter/lambda$4$Type",1677),b(1678,1,vt,j2n),o.Kf=function(e,t){FTe(u(e,36),t)},w(Qn,"SemiInteractiveCrossMinProcessor",1678),b(1679,1,De,E2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),b(1680,1,De,C2n),o.Mb=function(e){return oPn(u(e,10))._b((cn(),Hw))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),b(1681,1,Ne,M2n),o.Ne=function(e,t){return nve(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),b(1682,1,{},T2n),o.Ve=function(e,t){return kge(u(e,10),u(t,10))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),b(1684,1,vt,A2n),o.Kf=function(e,t){oIe(u(e,36),t)},w(Qn,"SortByInputModelProcessor",1684),b(1685,1,De,S2n),o.Mb=function(e){return u(e,12).g.c.length!=0},w(Qn,"SortByInputModelProcessor/lambda$0$Type",1685),b(1686,1,ie,l7n),o.Cd=function(e){Uje(this.a,u(e,12))},w(Qn,"SortByInputModelProcessor/lambda$1$Type",1686),b(1759,817,{},pxn),o.df=function(e){var t,i,r,c;switch(this.c=e,this.a.g){case 2:t=new Z,qt(ut(new Tn(null,new In(this.c.a.b,16)),new H2n),new FCn(this,t)),ey(this,new I2n),nu(t,new O2n),t.c.length=0,qt(ut(new Tn(null,new In(this.c.a.b,16)),new D2n),new d7n(t)),ey(this,new L2n),nu(t,new N2n),t.c.length=0,i=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new b7n(this))),new $2n),qt(new Tn(null,new In(this.c.a.a,16)),new OCn(i,t)),ey(this,new F2n),nu(t,new B2n),t.c.length=0;break;case 3:r=new Z,ey(this,new P2n),c=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new a7n(this))),new x2n),qt(ut(new Tn(null,new In(this.c.a.b,16)),new R2n),new LCn(c,r)),ey(this,new K2n),nu(r,new _2n),r.c.length=0;break;default:throw M(new xyn)}},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation",1759),b(1760,1,ph,P2n),o.Lb=function(e){return O(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),b(1761,1,{},a7n),o.Ye=function(e){return AEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),b(1769,1,JA,PCn),o.de=function(){I5(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),b(1771,1,ph,I2n),o.Lb=function(e){return O(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),b(1772,1,ie,O2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),b(1773,1,De,D2n),o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),b(1775,1,ie,d7n),o.Cd=function(e){X5e(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),b(1774,1,JA,NCn),o.de=function(){I5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),b(1776,1,ph,L2n),o.Lb=function(e){return O(u(e,60).g,10)},o.Fb=function(e){return this===e},o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),b(1777,1,ie,N2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),b(1778,1,{},b7n),o.Ye=function(e){return SEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),b(1779,1,{},$2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),b(1762,1,{},x2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),b(1781,1,ie,OCn),o.Cd=function(e){Ybe(this.a,this.b,u(e,316))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),b(1780,1,JA,DCn),o.de=function(){DHn(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),b(1782,1,ph,F2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),b(1783,1,ie,B2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),b(1763,1,De,R2n),o.Mb=function(e){return O(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),b(1765,1,ie,LCn),o.Cd=function(e){Zbe(this.a,this.b,u(e,60))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),b(1764,1,JA,$Cn),o.de=function(){I5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),b(1766,1,ph,K2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),b(1767,1,ie,_2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),b(1768,1,De,H2n),o.Mb=function(e){return O(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),b(1770,1,ie,FCn),o.Cd=function(e){pme(this.a,this.b,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),b(1586,1,vt,tAn),o.Kf=function(e,t){NIe(this,u(e,36),t)};var QZn;w(di,"HorizontalGraphCompactor",1586),b(1587,1,{},w7n),o.ff=function(e,t){var i,r,c;return rQ(e,t)||(i=Sg(e),r=Sg(t),i&&i.k==(Vn(),Zt)||r&&r.k==(Vn(),Zt))?0:(c=u(v(this.a.a,(W(),j2)),312),R1e(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},o.gf=function(e,t){var i,r,c;return rQ(e,t)?1:(i=Sg(e),r=Sg(t),c=u(v(this.a.a,(W(),j2)),312),WX(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},w(di,"HorizontalGraphCompactor/1",1587),b(1588,1,{},q2n),o.ef=function(e,t){return s6(),e.a.i==0},w(di,"HorizontalGraphCompactor/lambda$0$Type",1588),b(1589,1,{},g7n),o.ef=function(e,t){return Ege(this.a,e,t)},w(di,"HorizontalGraphCompactor/lambda$1$Type",1589),b(1730,1,{},zNn);var YZn,ZZn;w(di,"LGraphToCGraphTransformer",1730),b(1738,1,De,U2n),o.Mb=function(e){return e!=null},w(di,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),b(1731,1,{},G2n),o.Kb=function(e){return xs(),Jr(v(u(u(e,60).g,10),(W(),st)))},w(di,"LGraphToCGraphTransformer/lambda$0$Type",1731),b(1732,1,{},z2n),o.Kb=function(e){return xs(),iBn(u(u(e,60).g,154))},w(di,"LGraphToCGraphTransformer/lambda$1$Type",1732),b(1741,1,De,X2n),o.Mb=function(e){return xs(),O(u(e,60).g,10)},w(di,"LGraphToCGraphTransformer/lambda$10$Type",1741),b(1742,1,ie,V2n),o.Cd=function(e){Sge(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$11$Type",1742),b(1743,1,De,W2n),o.Mb=function(e){return xs(),O(u(e,60).g,154)},w(di,"LGraphToCGraphTransformer/lambda$12$Type",1743),b(1747,1,ie,J2n),o.Cd=function(e){c5e(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$13$Type",1747),b(1744,1,ie,p7n),o.Cd=function(e){Dle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$14$Type",1744),b(1745,1,ie,m7n),o.Cd=function(e){Nle(this.a,u(e,116))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$15$Type",1745),b(1746,1,ie,v7n),o.Cd=function(e){Lle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$16$Type",1746),b(1748,1,{},Q2n),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$17$Type",1748),b(1749,1,De,Y2n),o.Mb=function(e){return xs(),fr(u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$18$Type",1749),b(1750,1,ie,k7n),o.Cd=function(e){W4e(this.a,u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$19$Type",1750),b(1734,1,ie,y7n),o.Cd=function(e){jpe(this.a,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$2$Type",1734),b(1751,1,{},Z2n),o.Kb=function(e){return xs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$20$Type",1751),b(1752,1,{},npn),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$21$Type",1752),b(1753,1,{},epn),o.Kb=function(e){return xs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$22$Type",1753),b(1754,1,De,tpn),o.Mb=function(e){return K1e(u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$23$Type",1754),b(1755,1,ie,j7n),o.Cd=function(e){gEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$24$Type",1755),b(1733,1,ie,BCn),o.Cd=function(e){v3e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$3$Type",1733),b(1735,1,{},ipn),o.Kb=function(e){return xs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$4$Type",1735),b(1736,1,{},rpn),o.Kb=function(e){return xs(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$5$Type",1736),b(1737,1,{},cpn),o.Kb=function(e){return xs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$6$Type",1737),b(1739,1,ie,E7n),o.Cd=function(e){PEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$8$Type",1739),b(1740,1,ie,RCn),o.Cd=function(e){r1e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$9$Type",1740),b(1729,1,{},upn),o.cf=function(e){var t,i,r,c,s;for(this.a=e,this.d=new oD,this.c=K(ion,Fn,125,this.a.a.a.c.length,0,1),this.b=0,i=new C(this.a.a.a);i.a=j&&(nn(s,Y(d)),D=y.Math.max(D,N[d-1]-g),h+=k,A+=N[d-1]-A,g=N[d-1],k=l[d]),k=y.Math.max(k,l[d]),++d;h+=k}m=y.Math.min(1/D,1/t.b/h),m>r&&(r=m,i=s)}return i},o.pg=function(){return!1},w(yh,"MSDCutIndexHeuristic",816),b(1683,1,vt,qpn),o.Kf=function(e,t){BPe(u(e,36),t)},w(yh,"SingleEdgeGraphWrapper",1683),b(232,22,{3:1,34:1,22:1,232:1},g6);var w2,dv,bv,Nw,F8,g2,wv=we(Tc,"CenterEdgeLabelPlacementStrategy",232,ke,E4e,Mde),lne;b(431,22,{3:1,34:1,22:1,431:1},Jz);var Tsn,V_,Asn=we(Tc,"ConstraintCalculationStrategy",431,ke,qge,Tde),ane;b(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},_D),o.dg=function(){return K_n(this)},o.qg=function(){return K_n(this)};var pj,B8,Ssn,Psn=we(Tc,"CrossingMinimizationStrategy",322,ke,F2e,Ade),dne;b(351,22,{3:1,34:1,22:1,351:1},HD);var Isn,W_,VP,Osn=we(Tc,"CuttingStrategy",351,ke,B2e,Sde),bne;b(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},l7),o.dg=function(){return IHn(this)},o.qg=function(){return IHn(this)};var Dsn,J_,gv,Q_,pv,Lsn=we(Tc,"CycleBreakingStrategy",348,ke,_3e,Pde),wne;b(428,22,{3:1,34:1,22:1,428:1},Qz);var WP,Nsn,$sn=we(Tc,"DirectionCongruency",428,ke,Hge,Ide),gne;b(460,22,{3:1,34:1,22:1,460:1},qD);var mv,Y_,p2,pne=we(Tc,"EdgeConstraint",460,ke,R2e,Fde),mne;b(283,22,{3:1,34:1,22:1,283:1},p6);var Z_,nH,eH,tH,JP,iH,xsn=we(Tc,"EdgeLabelSideSelection",283,ke,k4e,Bde),vne;b(488,22,{3:1,34:1,22:1,488:1},Yz);var QP,Fsn,Bsn=we(Tc,"EdgeStraighteningStrategy",488,ke,Jge,Rde),kne;b(281,22,{3:1,34:1,22:1,281:1},m6);var rH,Rsn,Ksn,YP,_sn,Hsn,qsn=we(Tc,"FixedAlignment",281,ke,y4e,xde),yne;b(282,22,{3:1,34:1,22:1,282:1},v6);var Usn,Gsn,zsn,Xsn,R8,Vsn,Wsn=we(Tc,"GraphCompactionStrategy",282,ke,j4e,Ode),jne;b(259,22,{3:1,34:1,22:1,259:1},Db);var vv,ZP,kv,cs,K8,nI,yv,m2,eI,_8,cH=we(Tc,"GraphProperties",259,ke,uve,Dde),Ene;b(299,22,{3:1,34:1,22:1,299:1},UD);var mj,uH,oH,sH=we(Tc,"GreedySwitchType",299,ke,K2e,Lde),Cne;b(311,22,{3:1,34:1,22:1,311:1},GD);var E3,vj,v2,Mne=we(Tc,"InLayerConstraint",311,ke,_2e,Nde),Tne;b(429,22,{3:1,34:1,22:1,429:1},Zz);var fH,Jsn,Qsn=we(Tc,"InteractiveReferencePoint",429,ke,_ge,$de),Ane,Ysn,C3,ob,tI,Zsn,nfn,iI,efn,kj,rI,H8,M3,Nl,hH,cI,gc,tfn,va,Hc,lH,aH,yj,Od,sb,T3,ifn,A3,jj,$w,kf,js,dH,k2,dt,st,rfn,cfn,ufn,ofn,sfn,bH,uI,Xu,fb,wH,S3,q8,Gf,y2,hb,j2,E2,jv,Dd,ffn,gH,pH,P3;b(171,22,{3:1,34:1,22:1,171:1},a7);var U8,ka,G8,xw,Ej,hfn=we(Tc,"LayerConstraint",171,ke,q3e,Kde),Sne;b(859,1,ps,e8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,uin),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),kfn),(l1(),Pt)),$sn),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oin),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(_n(),!1)),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lS),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Tfn),Pt),Qsn),yn(xn)))),ri(e,lS,fR,jee),ri(e,lS,h8,yee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,sin),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fin),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),yi),Gt),yn(xn)))),vn(e,new ln(Dhe(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hin),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),yi),Gt),yn(Kd)),S(T(fn,1),J,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lin),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),Nfn),Pt),qhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ain),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Y(7)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,din),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bin),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fR),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),vfn),Pt),Lsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Hy),LR),"Node Layering Strategy"),"Strategy for node layering."),Pfn),Pt),Ohn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,win),LR),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),Afn),Pt),hfn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gin),LR),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pin),LR),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hR),YXn),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Y(4)),Zr),Gi),yn(xn)))),ri(e,hR,Hy,Pee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lR),YXn),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Y(2)),Zr),Gi),yn(xn)))),ri(e,lR,Hy,Oee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aR),ZXn),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),Sfn),Pt),Khn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,dR),ZXn),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Y(0)),Zr),Gi),yn(xn)))),ri(e,dR,aR,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bR),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Y(et)),Zr),Gi),yn(xn)))),ri(e,bR,Hy,Cee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,h8),Wm),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),mfn),Pt),Psn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,min),Wm),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wR),Wm),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Qi),si),yn(xn)))),ri(e,wR,CS,Vne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gR),Wm),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),yi),Gt),yn(xn)))),ri(e,gR,h8,nee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vin),Wm),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),N2),fn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kin),Wm),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),N2),fn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yin),Wm),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jin),Wm),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ein),nVn),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Y(40)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pR),nVn),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),pfn),Pt),sH),yn(xn)))),ri(e,pR,h8,zne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aS),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),gfn),Pt),sH),yn(xn)))),ri(e,aS,h8,qne),ri(e,aS,CS,Une),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,r2),eVn),"Node Placement Strategy"),"Strategy for node placement."),Lfn),Pt),$hn),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,dS),eVn),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),yi),Gt),yn(xn)))),ri(e,dS,r2,Hee),ri(e,dS,r2,qee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mR),tVn),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Ifn),Pt),Bsn),yn(xn)))),ri(e,mR,r2,Bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vR),tVn),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),Ofn),Pt),qsn),yn(xn)))),ri(e,vR,r2,Kee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kR),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Qi),si),yn(xn)))),ri(e,kR,r2,Gee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,yR),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),Pt),RH),yn(pi)))),ri(e,yR,r2,Wee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jR),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Dfn),Pt),RH),yn(xn)))),ri(e,jR,r2,Vee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Cin),iVn),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),Efn),Pt),zhn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Min),iVn),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Cfn),Pt),Xhn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bS),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Mfn),Pt),Whn),yn(xn)))),ri(e,bS,qy,lee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wS),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Qi),si),yn(xn)))),ri(e,wS,qy,dee),ri(e,wS,bS,bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ER),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Qi),si),yn(xn)))),ri(e,ER,qy,oee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Tin),Hf),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ain),Hf),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Sin),Hf),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Pin),Hf),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Iin),Kin),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Oin),Kin),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Din),Kin),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Y(0)),Zr),Gi),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CR),_in),vXn),"Tries to further compact components (disconnected sub-graphs)."),!1),yi),Gt),yn(xn)))),ri(e,CR,c8,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lin),rVn),"Post Compaction Strategy"),cVn),afn),Pt),Wsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nin),rVn),"Post Compaction Constraint Calculation"),cVn),lfn),Pt),Asn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gS),Hin),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MR),Hin),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Y(16)),Zr),Gi),yn(xn)))),ri(e,MR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,TR),Hin),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Y(5)),Zr),Gi),yn(xn)))),ri(e,TR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ol),qin),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Ffn),Pt),Zhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pS),qin),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Qi),si),yn(xn)))),ri(e,pS,Ol,ste),ri(e,pS,Ol,fte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mS),qin),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Qi),si),yn(xn)))),ri(e,mS,Ol,lte),ri(e,mS,Ol,ate),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,l8),uVn),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),xfn),Pt),Osn),yn(xn)))),ri(e,l8,Ol,mte),ri(e,l8,Ol,vte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,AR),uVn),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),Xf),rs),yn(xn)))),ri(e,AR,l8,bte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,SR),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),$fn),Zr),Gi),yn(xn)))),ri(e,SR,l8,gte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vS),oVn),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),Bfn),Pt),Yhn),yn(xn)))),ri(e,vS,Ol,Ote),ri(e,vS,Ol,Dte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,kS),oVn),"Valid Indices for Wrapping"),null),Xf),rs),yn(xn)))),ri(e,kS,Ol,Ste),ri(e,kS,Ol,Pte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yS),Uin),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),yi),Gt),yn(xn)))),ri(e,yS,Ol,Ete),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jS),Uin),"Distance Penalty When Improving Cuts"),null),2),Qi),si),yn(xn)))),ri(e,jS,Ol,yte),ri(e,jS,yS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,PR),Uin),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),yi),Gt),yn(xn)))),ri(e,PR,Ol,Mte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$in),NR),"Edge Label Side Selection"),"Method to decide on edge label sides."),jfn),Pt),xsn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xin),NR),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),yfn),Pt),wv),yt(xn,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ES),a8),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),wfn),Pt),Hhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fin),a8),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Bin),a8),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,IR),a8),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),dfn),Pt),Lon),yn(xn)))),ri(e,IR,c8,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Rin),a8),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bfn),Pt),Lhn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,OR),a8),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Qi),si),yn(xn)))),ri(e,OR,ES,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,DR),a8),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Qi),si),yn(xn)))),ri(e,DR,ES,null),Czn((new t8n,e))};var Pne,Ine,One,lfn,Dne,afn,Lne,dfn,Nne,$ne,xne,bfn,Fne,Bne,Rne,wfn,Kne,_ne,Hne,gfn,qne,Une,Gne,pfn,zne,Xne,Vne,Wne,Jne,Qne,Yne,Zne,nee,eee,mfn,tee,vfn,iee,kfn,ree,yfn,cee,jfn,uee,oee,see,Efn,fee,Cfn,hee,Mfn,lee,aee,dee,bee,wee,gee,pee,mee,vee,kee,Tfn,yee,jee,Eee,Cee,Mee,Tee,Afn,Aee,See,Pee,Iee,Oee,Dee,Lee,Sfn,Nee,Pfn,$ee,xee,Fee,Ifn,Bee,Ree,Ofn,Kee,_ee,Hee,qee,Uee,Gee,zee,Xee,Dfn,Vee,Wee,Jee,Lfn,Qee,Nfn,Yee,Zee,nte,ete,tte,ite,rte,cte,ute,ote,ste,fte,hte,lte,ate,dte,bte,wte,$fn,gte,pte,xfn,mte,vte,kte,yte,jte,Ete,Cte,Mte,Tte,Ffn,Ate,Ste,Pte,Ite,Bfn,Ote,Dte;w(Tc,"LayeredMetaDataProvider",859),b(998,1,ps,t8n),o.hf=function(e){Czn(e)};var Th,mH,oI,z8,sI,Rfn,fI,Fw,hI,Kfn,_fn,lI,vH,Yh,kH,lb,Hfn,Cj,yH,qfn,Lte,Nte,$te,aI,jH,X8,Ld,xte,Do,Ufn,Gfn,dI,EH,Ah,bI,$l,zfn,Xfn,Vfn,CH,MH,Wfn,m1,TH,Jfn,Bw,Qfn,Yfn,Zfn,wI,Rw,Nd,nhn,ehn,Fr,thn,Fte,ou,gI,ihn,rhn,chn,ya,$d,pI,uhn,ohn,mI,ab,shn,AH,V8,fhn,db,W8,vI,xd,SH,Ev,kI,Fd,hhn,lhn,ahn,Cv,dhn,Bte,Rte,Kte,_te,bb,Kw,Kt,v1,Hte,_w,bhn,Mv,whn,Hw,qte,Tv,ghn,I3,Ute,Gte,Mj,PH,phn,Tj,Vs,C2,M2,wb,Bd,yI,qw,IH,Av,Sv,gb,T2,OH,Aj,J8,Q8,zte,Xte,Vte,mhn,Wte,DH,vhn,khn,yhn,jhn,LH,Ehn,Chn,Mhn,Thn,NH,jI;w(Tc,"LayeredOptions",998),b(999,1,{},Upn),o.sf=function(){var e;return e=new Uyn,e},o.tf=function(e){},w(Tc,"LayeredOptions/LayeredFactory",999),b(1391,1,{}),o.a=0;var Jte;w(dc,"ElkSpacings/AbstractSpacingsBuilder",1391),b(792,1391,{},XY);var EI,Qte;w(Tc,"LayeredSpacings/LayeredSpacingsBuilder",792),b(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},ag),o.dg=function(){return Rqn(this)},o.qg=function(){return Rqn(this)};var Pv,$H,Iv,Ahn,Shn,Phn,CI,xH,Ihn,Ohn=we(Tc,"LayeringStrategy",265,ke,xme,_de),Yte;b(390,22,{3:1,34:1,22:1,390:1},zD);var FH,Dhn,MI,Lhn=we(Tc,"LongEdgeOrderingStrategy",390,ke,H2e,Hde),Zte;b(203,22,{3:1,34:1,22:1,203:1},wC);var A2,S2,TI,BH,RH=we(Tc,"NodeFlexibility",203,ke,Qpe,qde),nie;b(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},d7),o.dg=function(){return PHn(this)},o.qg=function(){return PHn(this)};var Y8,KH,_H,Z8,Nhn,$hn=we(Tc,"NodePlacementStrategy",323,ke,H3e,Ude),eie;b(243,22,{3:1,34:1,22:1,243:1},Lb);var xhn,pb,Uw,Sj,Fhn,Bhn,Pj,Rhn,AI,SI,Khn=we(Tc,"NodePromotionStrategy",243,ke,ove,Gde),tie;b(284,22,{3:1,34:1,22:1,284:1},gC);var _hn,k1,HH,qH,Hhn=we(Tc,"OrderingStrategy",284,ke,Ype,zde),iie;b(430,22,{3:1,34:1,22:1,430:1},nX);var UH,GH,qhn=we(Tc,"PortSortingStrategy",430,ke,Uge,Xde),rie;b(463,22,{3:1,34:1,22:1,463:1},XD);var Vu,Jc,n9,cie=we(Tc,"PortType",463,ke,q2e,Vde),uie;b(387,22,{3:1,34:1,22:1,387:1},VD);var Uhn,zH,Ghn,zhn=we(Tc,"SelfLoopDistributionStrategy",387,ke,U2e,Wde),oie;b(349,22,{3:1,34:1,22:1,349:1},WD);var XH,Ij,VH,Xhn=we(Tc,"SelfLoopOrderingStrategy",349,ke,G2e,Jde),sie;b(312,1,{312:1},yGn),w(Tc,"Spacings",312),b(350,22,{3:1,34:1,22:1,350:1},JD);var WH,Vhn,e9,Whn=we(Tc,"SplineRoutingMode",350,ke,z2e,Qde),fie;b(352,22,{3:1,34:1,22:1,352:1},QD);var JH,Jhn,Qhn,Yhn=we(Tc,"ValidifyStrategy",352,ke,X2e,Yde),hie;b(388,22,{3:1,34:1,22:1,388:1},YD);var Gw,QH,Ov,Zhn=we(Tc,"WrappingStrategy",388,ke,V2e,Zde),lie;b(1398,1,vr,X5n),o.rg=function(e){return u(e,36),aie},o.Kf=function(e,t){OIe(this,u(e,36),t)};var aie;w(SS,"DepthFirstCycleBreaker",1398),b(793,1,vr,dW),o.rg=function(e){return u(e,36),die},o.Kf=function(e,t){$Le(this,u(e,36),t)},o.sg=function(e){return u(sn(e,cA(this.d,e.c.length)),10)};var die;w(SS,"GreedyCycleBreaker",793),b(1401,793,vr,KMn),o.sg=function(e){var t,i,r,c;for(c=null,t=et,r=new C(e);r.a1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,u(this,669)):(Dn(),Yt(e,this.d)),qxn(this.e,e))},o.lg=function(e,t,i,r){var c,s,f,h,l,a,d;for(t!=uPn(i,e.length)&&(s=e[t-(i?1:-1)],HJ(this.f,s,i?(gr(),Jc):(gr(),Vu))),c=e[t][0],d=!r||c.k==(Vn(),Zt),a=If(e[t]),this.vg(a,d,!1,i),f=0,l=new C(a);l.a"),e0?DN(this.a,e[t-1],e[t]):!i&&t1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,this):(Dn(),Yt(e,this.d)),on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),lb)))||qxn(this.e,e))},w(Nu,"ModelOrderBarycenterHeuristic",669),b(1866,1,Ne,q7n),o.Ne=function(e,t){return Oje(this.a,u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Nu,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),b(1423,1,vr,r8n),o.rg=function(e){var t;return u(e,36),t=DC(Pie),Re(t,(Vi(),Oc),(tr(),FP)),t},o.Kf=function(e,t){bge((u(e,36),t))};var Pie;w(Nu,"NoCrossingMinimizer",1423),b(809,413,Mrn,Ez),o.tg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m;switch(g=this.g,i.g){case 1:{for(c=0,s=0,d=new C(e.j);d.a1&&(c.j==(tn(),Zn)?this.b[e]=!0:c.j==Wn&&e>0&&(this.b[e-1]=!0))},o.f=0,w(Vh,"AllCrossingsCounter",1861),b(595,1,{},ET),o.b=0,o.d=0,w(Vh,"BinaryIndexedTree",595),b(532,1,{},N7);var tln,II;w(Vh,"CrossingsCounter",532),b(1950,1,Ne,U7n),o.Ne=function(e,t){return Kbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$0$Type",1950),b(1951,1,Ne,G7n),o.Ne=function(e,t){return _be(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$1$Type",1951),b(1952,1,Ne,z7n),o.Ne=function(e,t){return Hbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$2$Type",1952),b(1953,1,Ne,X7n),o.Ne=function(e,t){return qbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$3$Type",1953),b(1954,1,ie,V7n),o.Cd=function(e){q4e(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$4$Type",1954),b(1955,1,De,W7n),o.Mb=function(e){return ble(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$5$Type",1955),b(1956,1,ie,J7n),o.Cd=function(e){OMn(this,e)},w(Vh,"CrossingsCounter/lambda$6$Type",1956),b(1957,1,ie,HCn),o.Cd=function(e){var t;k4(),V1(this.b,(t=this.a,u(e,12),t))},w(Vh,"CrossingsCounter/lambda$7$Type",1957),b(839,1,ph,YU),o.Lb=function(e){return k4(),kt(u(e,12),(W(),Xu))},o.Fb=function(e){return this===e},o.Mb=function(e){return k4(),kt(u(e,12),(W(),Xu))},w(Vh,"CrossingsCounter/lambda$8$Type",839),b(1949,1,{},Q7n),w(Vh,"HyperedgeCrossingsCounter",1949),b(478,1,{34:1,478:1},GAn),o.Fd=function(e){return H8e(this,u(e,478))},o.b=0,o.c=0,o.e=0,o.f=0;var jNe=w(Vh,"HyperedgeCrossingsCounter/Hyperedge",478);b(374,1,{34:1,374:1},CM),o.Fd=function(e){return tMe(this,u(e,374))},o.b=0,o.c=0;var Iie=w(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner",374);b(531,22,{3:1,34:1,22:1,531:1},eX);var i9,r9,Oie=we(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,ke,Gge,e0e),Die;b(1425,1,vr,c8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Lie:null},o.Kf=function(e,t){dke(this,u(e,36),t)};var Lie;w(kr,"InteractiveNodePlacer",1425),b(1426,1,vr,u8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Nie:null},o.Kf=function(e,t){Q9e(this,u(e,36),t)};var Nie,OI,DI;w(kr,"LinearSegmentsNodePlacer",1426),b(261,1,{34:1,261:1},QG),o.Fd=function(e){return The(this,u(e,261))},o.Fb=function(e){var t;return O(e,261)?(t=u(e,261),this.b==t.b):!1},o.Hb=function(){return this.b},o.Ib=function(){return"ls"+ra(this.e)},o.a=0,o.b=0,o.c=-1,o.d=-1,o.g=0;var $ie=w(kr,"LinearSegmentsNodePlacer/LinearSegment",261);b(1428,1,vr,gPn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?xie:null},o.Kf=function(e,t){TLe(this,u(e,36),t)},o.b=0,o.g=0;var xie;w(kr,"NetworkSimplexPlacer",1428),b(1447,1,Ne,n3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/0methodref$compare$Type",1447),b(1449,1,Ne,e3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/1methodref$compare$Type",1449),b(655,1,{655:1},qCn);var ENe=w(kr,"NetworkSimplexPlacer/EdgeRep",655);b(412,1,{412:1},XW),o.b=!1;var CNe=w(kr,"NetworkSimplexPlacer/NodeRep",412);b(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},Zyn),w(kr,"NetworkSimplexPlacer/Path",515),b(1429,1,{},t3n),o.Kb=function(e){return u(e,18).d.i.k},w(kr,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),b(1430,1,De,i3n),o.Mb=function(e){return u(e,273)==(Vn(),Mi)},w(kr,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),b(1431,1,{},r3n),o.Kb=function(e){return u(e,18).d.i},w(kr,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),b(1432,1,De,Y7n),o.Mb=function(e){return PAn(DBn(u(e,10)))},w(kr,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),b(1433,1,De,c3n),o.Mb=function(e){return Cbe(u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$0$Type",1433),b(1434,1,ie,UCn),o.Cd=function(e){c1e(this.a,this.b,u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$1$Type",1434),b(1443,1,ie,Z7n),o.Cd=function(e){OEe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$10$Type",1443),b(1444,1,{},u3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$11$Type",1444),b(1445,1,ie,nkn),o.Cd=function(e){MAe(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$12$Type",1445),b(1446,1,{},o3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$13$Type",1446),b(1448,1,{},s3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$15$Type",1448),b(1450,1,De,f3n),o.Mb=function(e){return ko(),u(e,412).c.k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$17$Type",1450),b(1451,1,De,h3n),o.Mb=function(e){return ko(),u(e,412).c.j.c.length>1},w(kr,"NetworkSimplexPlacer/lambda$18$Type",1451),b(1452,1,ie,CIn),o.Cd=function(e){h8e(this.c,this.b,this.d,this.a,u(e,412))},o.c=0,o.d=0,w(kr,"NetworkSimplexPlacer/lambda$19$Type",1452),b(1435,1,{},l3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$2$Type",1435),b(1453,1,ie,ekn),o.Cd=function(e){o1e(this.a,u(e,12))},o.a=0,w(kr,"NetworkSimplexPlacer/lambda$20$Type",1453),b(1454,1,{},a3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$21$Type",1454),b(1455,1,ie,tkn),o.Cd=function(e){v1e(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$22$Type",1455),b(1456,1,De,d3n),o.Mb=function(e){return PAn(e)},w(kr,"NetworkSimplexPlacer/lambda$23$Type",1456),b(1457,1,{},b3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$24$Type",1457),b(1458,1,De,ikn),o.Mb=function(e){return Sle(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$25$Type",1458),b(1459,1,ie,GCn),o.Cd=function(e){$je(this.a,this.b,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$26$Type",1459),b(1460,1,De,w3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$27$Type",1460),b(1461,1,De,g3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$28$Type",1461),b(1462,1,{},rkn),o.Ve=function(e,t){return u1e(this.a,u(e,30),u(t,30))},w(kr,"NetworkSimplexPlacer/lambda$29$Type",1462),b(1436,1,{},p3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new te(re(Qt(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$3$Type",1436),b(1437,1,De,m3n),o.Mb=function(e){return ko(),xpe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$4$Type",1437),b(1438,1,ie,ckn),o.Cd=function(e){NPe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$5$Type",1438),b(1439,1,{},v3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$6$Type",1439),b(1440,1,De,k3n),o.Mb=function(e){return ko(),u(e,10).k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$7$Type",1440),b(1441,1,{},y3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new te(re(Cl(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$8$Type",1441),b(1442,1,De,j3n),o.Mb=function(e){return ko(),Ebe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$9$Type",1442),b(1424,1,vr,o8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Fie:null},o.Kf=function(e,t){bIe(u(e,36),t)};var Fie;w(kr,"SimpleNodePlacer",1424),b(185,1,{185:1},Vg),o.Ib=function(){var e;return e="",this.c==(sh(),mb)?e+=f3:this.c==y1&&(e+=s3),this.o==(Sf(),Rd)?e+=_B:this.o==zf?e+="UP":e+="BALANCED",e},w(aa,"BKAlignedLayout",185),b(523,22,{3:1,34:1,22:1,523:1},tX);var y1,mb,Bie=we(aa,"BKAlignedLayout/HDirection",523,ke,Xge,t0e),Rie;b(522,22,{3:1,34:1,22:1,522:1},iX);var Rd,zf,Kie=we(aa,"BKAlignedLayout/VDirection",522,ke,Vge,i0e),_ie;b(1699,1,{},zCn),w(aa,"BKAligner",1699),b(1702,1,{},iKn),w(aa,"BKCompactor",1702),b(663,1,{663:1},E3n),o.a=0,w(aa,"BKCompactor/ClassEdge",663),b(467,1,{467:1},Jyn),o.a=null,o.b=0,w(aa,"BKCompactor/ClassNode",467),b(1427,1,vr,JCn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Hie:null},o.Kf=function(e,t){ULe(this,u(e,36),t)},o.d=!1;var Hie;w(aa,"BKNodePlacer",1427),b(1700,1,{},C3n),o.d=0,w(aa,"NeighborhoodInformation",1700),b(1701,1,Ne,ukn),o.Ne=function(e,t){return mme(this,u(e,42),u(t,42))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(aa,"NeighborhoodInformation/NeighborComparator",1701),b(823,1,{}),w(aa,"ThresholdStrategy",823),b(1825,823,{},Qyn),o.wg=function(e,t,i){return this.a.o==(Sf(),zf)?St:li},o.xg=function(){},w(aa,"ThresholdStrategy/NullThresholdStrategy",1825),b(587,1,{587:1},QCn),o.c=!1,o.d=!1,w(aa,"ThresholdStrategy/Postprocessable",587),b(1826,823,{},Yyn),o.wg=function(e,t,i){var r,c,s;return c=t==i,r=this.a.a[i.p]==t,c||r?(s=e,this.a.c==(sh(),mb)?(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))):(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))),s):e},o.xg=function(){for(var e,t,i,r,c;this.d.b!=0;)c=u(f2e(this.d),587),r=PUn(this,c),r.a&&(e=r.a,i=on(this.a.f[this.a.g[c.b.p].p]),!(!i&&!fr(e)&&e.c.i.c==e.d.i.c)&&(t=NHn(this,c),t||Ole(this.e,c)));for(;this.e.a.c.length!=0;)NHn(this,u($Fn(this.e),587))},w(aa,"ThresholdStrategy/SimpleThresholdStrategy",1826),b(645,1,{645:1,188:1,196:1},M3n),o.dg=function(){return Uxn(this)},o.qg=function(){return Uxn(this)};var YH;w(RR,"EdgeRouterFactory",645),b(1485,1,vr,s8n),o.rg=function(e){return eAe(u(e,36))},o.Kf=function(e,t){kIe(u(e,36),t)};var qie,Uie,Gie,zie,Xie,iln,Vie,Wie;w(RR,"OrthogonalEdgeRouter",1485),b(1478,1,vr,WCn),o.rg=function(e){return Eke(u(e,36))},o.Kf=function(e,t){UDe(this,u(e,36),t)};var Jie,Qie,Yie,Zie,Dj,nre;w(RR,"PolylineEdgeRouter",1478),b(1479,1,ph,A3n),o.Lb=function(e){return UQ(u(e,10))},o.Fb=function(e){return this===e},o.Mb=function(e){return UQ(u(e,10))},w(RR,"PolylineEdgeRouter/1",1479),b(1872,1,De,S3n),o.Mb=function(e){return u(e,132).c==(lf(),ja)},w(pf,"HyperEdgeCycleDetector/lambda$0$Type",1872),b(1873,1,{},P3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$1$Type",1873),b(1874,1,De,I3n),o.Mb=function(e){return u(e,132).c==(lf(),ja)},w(pf,"HyperEdgeCycleDetector/lambda$2$Type",1874),b(1875,1,{},O3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$3$Type",1875),b(1876,1,{},D3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$4$Type",1876),b(1877,1,{},T3n),o.Ze=function(e){return u(e,132).d},w(pf,"HyperEdgeCycleDetector/lambda$5$Type",1877),b(118,1,{34:1,118:1},Ek),o.Fd=function(e){return Ahe(this,u(e,118))},o.Fb=function(e){var t;return O(e,118)?(t=u(e,118),this.g==t.g):!1},o.Hb=function(){return this.g},o.Ib=function(){var e,t,i,r;for(e=new mo("{"),r=new C(this.n);r.a"+this.b+" ("+z1e(this.c)+")"},o.d=0,w(pf,"HyperEdgeSegmentDependency",132),b(528,22,{3:1,34:1,22:1,528:1},rX);var ja,zw,ere=we(pf,"HyperEdgeSegmentDependency/DependencyType",528,ke,Wge,r0e),tre;b(1878,1,{},okn),w(pf,"HyperEdgeSegmentSplitter",1878),b(1879,1,{},Zjn),o.a=0,o.b=0,w(pf,"HyperEdgeSegmentSplitter/AreaRating",1879),b(339,1,{339:1},KL),o.a=0,o.b=0,o.c=0,w(pf,"HyperEdgeSegmentSplitter/FreeArea",339),b(1880,1,Ne,L3n),o.Ne=function(e,t){return zae(u(e,118),u(t,118))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(pf,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),b(1881,1,ie,MIn),o.Cd=function(e){k3e(this.a,this.d,this.c,this.b,u(e,118))},o.b=0,w(pf,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),b(1882,1,{},N3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(pf,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),b(1883,1,{},$3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(pf,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),b(1884,1,{},x3n),o.Ye=function(e){return $(R(e))},w(pf,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),b(664,1,{},lN),o.a=0,o.b=0,o.c=0,w(pf,"OrthogonalRoutingGenerator",664),b(1703,1,{},F3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(pf,"OrthogonalRoutingGenerator/lambda$0$Type",1703),b(1704,1,{},B3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(pf,"OrthogonalRoutingGenerator/lambda$1$Type",1704),b(670,1,{}),w(KR,"BaseRoutingDirectionStrategy",670),b(1870,670,{},tjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),xe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1),s=t+p.o*i,c=p,r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),xe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return tn(),ae},o.Bg=function(){return tn(),Xn},w(KR,"NorthToSouthRoutingStrategy",1870),b(1871,670,{},ijn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t-e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),xe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1),s=t-p.o*i,c=p,r=new V(m,s),xe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),xe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return tn(),Xn},o.Bg=function(){return tn(),ae},w(KR,"SouthToNorthRoutingStrategy",1871),b(1869,670,{},rjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(s,g),xe(f.a,r),q0(this,f,c,r,!0),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(s,m),xe(f.a,r),q0(this,f,c,r,!0),s=t+p.o*i,c=p,r=new V(s,m),xe(f.a,r),q0(this,f,c,r,!0)),r=new V(s,j),xe(f.a,r),q0(this,f,c,r,!0)))},o.zg=function(e){return e.i.n.b+e.n.b+e.a.b},o.Ag=function(){return tn(),Zn},o.Bg=function(){return tn(),Wn},w(KR,"WestToEastRoutingStrategy",1869),b(828,1,{},Hen),o.Ib=function(){return ra(this.a)},o.b=0,o.c=!1,o.d=!1,o.f=0,w(jw,"NubSpline",828),b(418,1,{418:1},dqn,iOn),w(jw,"NubSpline/PolarCP",418),b(1480,1,vr,WRn),o.rg=function(e){return aye(u(e,36))},o.Kf=function(e,t){fLe(this,u(e,36),t)};var ire,rre,cre,ure,ore;w(jw,"SplineEdgeRouter",1480),b(274,1,{274:1},XM),o.Ib=function(){return this.a+" ->("+this.c+") "+this.b},o.c=0,w(jw,"SplineEdgeRouter/Dependency",274),b(465,22,{3:1,34:1,22:1,465:1},cX);var Ea,P2,sre=we(jw,"SplineEdgeRouter/SideToProcess",465,ke,e2e,c0e),fre;b(1481,1,De,R3n),o.Mb=function(e){return _5(),!u(e,131).o},w(jw,"SplineEdgeRouter/lambda$0$Type",1481),b(1482,1,{},K3n),o.Ze=function(e){return _5(),u(e,131).v+1},w(jw,"SplineEdgeRouter/lambda$1$Type",1482),b(1483,1,ie,YCn),o.Cd=function(e){Abe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$2$Type",1483),b(1484,1,ie,ZCn),o.Cd=function(e){Sbe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$3$Type",1484),b(131,1,{34:1,131:1},A_n,Ven),o.Fd=function(e){return Ihe(this,u(e,131))},o.b=0,o.e=!1,o.f=0,o.g=0,o.j=!1,o.k=!1,o.n=0,o.o=!1,o.p=!1,o.q=!1,o.s=0,o.u=0,o.v=0,o.F=0,w(jw,"SplineSegment",131),b(468,1,{468:1},_3n),o.a=0,o.b=!1,o.c=!1,o.d=!1,o.e=!1,o.f=0,w(jw,"SplineSegment/EdgeInformation",468),b(1198,1,{},H3n),w(Ll,Gtn,1198),b(1199,1,Ne,q3n),o.Ne=function(e,t){return VEe(u(e,121),u(t,121))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ll,EXn,1199),b(1197,1,{},wEn),w(Ll,"MrTree",1197),b(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},pC),o.dg=function(){return V_n(this)},o.qg=function(){return V_n(this)};var LI,c9,u9,o9,rln=we(Ll,"TreeLayoutPhases",405,ke,i3e,u0e),hre;b(1112,205,yd,qAn),o.rf=function(e,t){var i,r,c,s,f,h,l,a;for(on(un(z(e,(lc(),Pln))))||W7((i=new Vv((c0(),new Qd(e))),i)),f=t.eh(qR),f.Ug("build tGraph",1),h=(l=new rk,Ur(l,e),U(l,(pt(),f9),e),a=new de,KSe(e,l,a),cPe(e,l,a),l),f.Vg(),f=t.eh(qR),f.Ug("Split graph",1),s=zSe(this.a,h),f.Vg(),c=new C(s);c.a"+td(this.c):"e_"+mt(this)},w(d8,"TEdge",65),b(121,137,{3:1,121:1,96:1,137:1},rk),o.Ib=function(){var e,t,i,r,c;for(c=null,r=ge(this.b,0);r.b!=r.d.c;)i=u(be(r),40),c+=(i.c==null||i.c.length==0?"n_"+i.g:"n_"+i.c)+` +`;for(t=ge(this.a,0);t.b!=t.d.c;)e=u(be(t),65),c+=(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e))+` +`;return c};var MNe=w(d8,"TGraph",121);b(643,508,{3:1,508:1,643:1,96:1,137:1}),w(d8,"TShape",643),b(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},q$),o.Ib=function(){return td(this)};var NI=w(d8,"TNode",40);b(236,1,qh,sl),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=ge(this.a.d,0),new sg(e)},w(d8,"TNode/2",236),b(329,1,Si,sg),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(be(this.a),65).c},o.Ob=function(){return Z9(this.a)},o.Qb=function(){p$(this.a)},w(d8,"TNode/2/1",329),b(1923,1,vt,J3n),o.Kf=function(e,t){RLe(this,u(e,121),t)},w(Rc,"CompactionProcessor",1923),b(1924,1,Ne,akn),o.Ne=function(e,t){return Tve(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$0$Type",1924),b(1925,1,De,eMn),o.Mb=function(e){return Dge(this.b,this.a,u(e,42))},o.a=0,o.b=0,w(Rc,"CompactionProcessor/lambda$1$Type",1925),b(1934,1,Ne,Q3n),o.Ne=function(e,t){return Ewe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$10$Type",1934),b(1935,1,Ne,Y3n),o.Ne=function(e,t){return F1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$11$Type",1935),b(1936,1,Ne,Z3n),o.Ne=function(e,t){return Cwe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$12$Type",1936),b(1926,1,De,dkn),o.Mb=function(e){return k1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$2$Type",1926),b(1927,1,De,bkn),o.Mb=function(e){return y1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$3$Type",1927),b(1928,1,De,n4n),o.Mb=function(e){return u(e,40).c.indexOf(IS)==-1},w(Rc,"CompactionProcessor/lambda$4$Type",1928),b(1929,1,{},wkn),o.Kb=function(e){return Npe(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$5$Type",1929),b(1930,1,{},gkn),o.Kb=function(e){return H4e(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$6$Type",1930),b(1931,1,Ne,pkn),o.Ne=function(e,t){return Z3e(this.a,u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$7$Type",1931),b(1932,1,Ne,mkn),o.Ne=function(e,t){return n4e(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$8$Type",1932),b(1933,1,Ne,e4n),o.Ne=function(e,t){return B1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$9$Type",1933),b(1921,1,vt,t4n),o.Kf=function(e,t){$Ae(u(e,121),t)},w(Rc,"DirectionProcessor",1921),b(1913,1,vt,HAn),o.Kf=function(e,t){iPe(this,u(e,121),t)},w(Rc,"FanProcessor",1913),b(1937,1,vt,i4n),o.Kf=function(e,t){EAe(u(e,121),t)},w(Rc,"GraphBoundsProcessor",1937),b(1938,1,{},r4n),o.Ye=function(e){return u(e,40).e.a},w(Rc,"GraphBoundsProcessor/lambda$0$Type",1938),b(1939,1,{},c4n),o.Ye=function(e){return u(e,40).e.b},w(Rc,"GraphBoundsProcessor/lambda$1$Type",1939),b(1940,1,{},u4n),o.Ye=function(e){return ile(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$2$Type",1940),b(1941,1,{},o4n),o.Ye=function(e){return tle(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$3$Type",1941),b(262,22,{3:1,34:1,22:1,262:1,196:1},u0),o.dg=function(){switch(this.g){case 0:return new mjn;case 1:return new HAn;case 2:return new pjn;case 3:return new a4n;case 4:return new f4n;case 8:return new s4n;case 5:return new t4n;case 6:return new b4n;case 7:return new J3n;case 9:return new i4n;case 10:return new w4n;default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var cln,uln,oln,sln,fln,hln,lln,aln,dln,bln,ZH,TNe=we(Rc,uR,262,ke,xxn,o0e),lre;b(1920,1,vt,s4n),o.Kf=function(e,t){xDe(u(e,121),t)},w(Rc,"LevelCoordinatesProcessor",1920),b(1918,1,vt,f4n),o.Kf=function(e,t){iTe(this,u(e,121),t)},o.a=0,w(Rc,"LevelHeightProcessor",1918),b(1919,1,qh,h4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"LevelHeightProcessor/1",1919),b(1914,1,vt,pjn),o.Kf=function(e,t){pAe(this,u(e,121),t)},w(Rc,"LevelProcessor",1914),b(1915,1,De,l4n),o.Mb=function(e){return on(un(v(u(e,40),(pt(),Ca))))},w(Rc,"LevelProcessor/lambda$0$Type",1915),b(1916,1,vt,a4n),o.Kf=function(e,t){nEe(this,u(e,121),t)},o.a=0,w(Rc,"NeighborsProcessor",1916),b(1917,1,qh,d4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"NeighborsProcessor/1",1917),b(1922,1,vt,b4n),o.Kf=function(e,t){tPe(this,u(e,121),t)},o.a=0,w(Rc,"NodePositionProcessor",1922),b(1912,1,vt,mjn),o.Kf=function(e,t){BIe(this,u(e,121),t)},w(Rc,"RootProcessor",1912),b(1942,1,vt,w4n),o.Kf=function(e,t){N9e(u(e,121),t)},w(Rc,"Untreeifyer",1942),b(392,22,{3:1,34:1,22:1,392:1},eL);var Lj,nq,wln,gln=we(Gy,"EdgeRoutingMode",392,ke,J2e,s0e),are,Nj,Dv,eq,pln,mln,tq,iq,vln,rq,kln,cq,s9,uq,$I,xI,Ws,yf,Lv,f9,h9,j1,yln,dre,oq,Ca,$j,xj;b(862,1,ps,f8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Srn),""),wVn),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(_n(),!1)),(l1(),yi)),Gt),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Prn),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Irn),""),"Tree Level"),"The index for the tree level the node is in"),Y(0)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Orn),""),wVn),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),Y(-1)),Zr),Gi),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Drn),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),Cln),Pt),xln),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lrn),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),jln),Pt),gln),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nrn),""),"Search Order"),"Which search order to use when computing a spanning tree."),Eln),Pt),Bln),yn(xn)))),rzn((new a8n,e))};var bre,wre,gre,jln,pre,mre,Eln,vre,kre,Cln;w(Gy,"MrTreeMetaDataProvider",862),b(1006,1,ps,a8n),o.hf=function(e){rzn(e)};var yre,Mln,Tln,vb,Aln,Sln,sq,jre,Ere,Cre,Mre,Tre,Are,Sre,Pln,Iln,Oln,Pre,I2,FI,Dln,Ire,Lln,fq,Ore,Dre,Lre,Nln,Nre,Sh,$ln;w(Gy,"MrTreeOptions",1006),b(1007,1,{},g4n),o.sf=function(){var e;return e=new qAn,e},o.tf=function(e){},w(Gy,"MrTreeOptions/MrtreeFactory",1007),b(353,22,{3:1,34:1,22:1,353:1},mC);var hq,BI,lq,aq,xln=we(Gy,"OrderWeighting",353,ke,r3e,f0e),$re;b(433,22,{3:1,34:1,22:1,433:1},uX);var Fln,dq,Bln=we(Gy,"TreeifyingOrder",433,ke,Zge,h0e),xre;b(1486,1,vr,d8n),o.rg=function(e){return u(e,121),Fre},o.Kf=function(e,t){bve(this,u(e,121),t)};var Fre;w("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),b(1487,1,vr,b8n),o.rg=function(e){return u(e,121),Bre},o.Kf=function(e,t){yAe(this,u(e,121),t)};var Bre;w(Jm,"NodeOrderer",1487),b(1494,1,{},_se),o.td=function(e){return WSn(e)},w(Jm,"NodeOrderer/0methodref$lambda$6$Type",1494),b(1488,1,De,D4n),o.Mb=function(e){return _p(),on(un(v(u(e,40),(pt(),Ca))))},w(Jm,"NodeOrderer/lambda$0$Type",1488),b(1489,1,De,L4n),o.Mb=function(e){return _p(),u(v(u(e,40),(lc(),I2)),17).a<0},w(Jm,"NodeOrderer/lambda$1$Type",1489),b(1490,1,De,kkn),o.Mb=function(e){return qme(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$2$Type",1490),b(1491,1,De,vkn),o.Mb=function(e){return Fpe(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$3$Type",1491),b(1492,1,Ne,N4n),o.Ne=function(e,t){return ame(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Jm,"NodeOrderer/lambda$4$Type",1492),b(1493,1,De,$4n),o.Mb=function(e){return _p(),u(v(u(e,40),(pt(),iq)),17).a!=0},w(Jm,"NodeOrderer/lambda$5$Type",1493),b(1495,1,vr,l8n),o.rg=function(e){return u(e,121),Rre},o.Kf=function(e,t){PSe(this,u(e,121),t)},o.b=0;var Rre;w("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),b(1496,1,vr,h8n),o.rg=function(e){return u(e,121),Kre},o.Kf=function(e,t){lSe(u(e,121),t)};var Kre,ANe=w(po,"EdgeRouter",1496);b(1498,1,Ne,O4n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/0methodref$compare$Type",1498),b(1503,1,{},m4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/1methodref$doubleValue$Type",1503),b(1505,1,Ne,v4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/2methodref$compare$Type",1505),b(1507,1,Ne,k4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/3methodref$compare$Type",1507),b(1509,1,{},p4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/4methodref$doubleValue$Type",1509),b(1511,1,Ne,y4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/5methodref$compare$Type",1511),b(1513,1,Ne,j4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/6methodref$compare$Type",1513),b(1497,1,{},E4n),o.Kb=function(e){return kl(),u(v(u(e,40),(lc(),Sh)),17)},w(po,"EdgeRouter/lambda$0$Type",1497),b(1508,1,{},C4n),o.Kb=function(e){return Q1e(u(e,40))},w(po,"EdgeRouter/lambda$11$Type",1508),b(1510,1,{},tMn),o.Kb=function(e){return Mbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$13$Type",1510),b(1512,1,{},iMn),o.Kb=function(e){return Y1e(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$15$Type",1512),b(1514,1,Ne,M4n),o.Ne=function(e,t){return h9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$17$Type",1514),b(1515,1,Ne,T4n),o.Ne=function(e,t){return l9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$18$Type",1515),b(1516,1,Ne,A4n),o.Ne=function(e,t){return d9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$19$Type",1516),b(1499,1,De,ykn),o.Mb=function(e){return b2e(this.a,u(e,40))},o.a=0,w(po,"EdgeRouter/lambda$2$Type",1499),b(1517,1,Ne,S4n),o.Ne=function(e,t){return a9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$20$Type",1517),b(1500,1,Ne,P4n),o.Ne=function(e,t){return lbe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$3$Type",1500),b(1501,1,Ne,I4n),o.Ne=function(e,t){return abe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$4$Type",1501),b(1502,1,{},x4n),o.Kb=function(e){return Z1e(u(e,40))},w(po,"EdgeRouter/lambda$5$Type",1502),b(1504,1,{},rMn),o.Kb=function(e){return Tbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$7$Type",1504),b(1506,1,{},cMn),o.Kb=function(e){return nae(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$9$Type",1506),b(675,1,{675:1},FRn),o.e=0,o.f=!1,o.g=!1,w(po,"MultiLevelEdgeNodeNodeGap",675),b(1943,1,Ne,F4n),o.Ne=function(e,t){return C2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),b(1944,1,Ne,B4n),o.Ne=function(e,t){return M2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var O2;b(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},oX),o.dg=function(){return EBn(this)},o.qg=function(){return EBn(this)};var RI,D2,Rln=we($rn,"RadialLayoutPhases",501,ke,zge,l0e),_re;b(1113,205,yd,bEn),o.rf=function(e,t){var i,r,c,s,f,h;if(i=sqn(this,e),t.Ug("Radial layout",i.c.length),on(un(z(e,(ua(),Jln))))||W7((r=new Vv((c0(),new Qd(e))),r)),h=wye(e),ht(e,(Mg(),O2),h),!h)throw M(new Gn("The given graph is not a tree!"));for(c=$(R(z(e,HI))),c==0&&(c=H_n(e)),ht(e,HI,c),f=new C(sqn(this,e));f.a=3)for(X=u(L(N,0),27),en=u(L(N,1),27),s=0;s+2=X.f+en.f+d||en.f>=H.f+X.f+d){jn=!0;break}else++s;else jn=!0;if(!jn){for(p=N.i,h=new ne(N);h.e!=h.i.gc();)f=u(ce(h),27),ht(f,(qe(),Jj),Y(p)),--p;BUn(e,new up),t.Vg();return}for(i=(U7(this.a),ff(this.a,(XT(),Bj),u(z(e,M1n),188)),ff(this.a,qI,u(z(e,v1n),188)),ff(this.a,Mq,u(z(e,j1n),188)),MX(this.a,(Rn=new ii,Re(Rn,Bj,(rA(),Sq)),Re(Rn,qI,Aq),on(un(z(e,p1n)))&&Re(Rn,Bj,Tq),Rn)),gy(this.a,e)),a=1/i.c.length,k=new C(i);k.a0&&XFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(r>=t)throw M(new Gn("The given string does not contain any numbers."));if(c=ww((Fi(r,t,e.length),e.substr(r,t-r)),`,|;|\r| +`),c.length!=2)throw M(new Gn("Exactly two numbers are expected, "+c.length+" were found."));try{this.a=sw(fw(c[0])),this.b=sw(fw(c[1]))}catch(s){throw s=It(s),O(s,130)?(i=s,M(new Gn($Xn+i))):M(s)}},o.Ib=function(){return"("+this.a+","+this.b+")"},o.a=0,o.b=0;var Ei=w(Ky,"KVector",8);b(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Mu,GE,aAn),o.Pc=function(){return O6e(this)},o.cg=function(e){var t,i,r,c,s,f;r=ww(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),vo(this);try{for(i=0,s=0,c=0,f=0;i0&&(s%2==0?c=sw(r[i]):f=sw(r[i]),s>0&&s%2!=0&&xe(this,new V(c,f)),++s),++i}catch(h){throw h=It(h),O(h,130)?(t=h,M(new Gn("The given string does not match the expected format for vectors."+t))):M(h)}},o.Ib=function(){var e,t,i;for(e=new mo("("),t=ge(this,0);t.b!=t.d.c;)i=u(be(t),8),Be(e,i.a+","+i.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var san=w(Ky,"KVectorChain",75);b(255,22,{3:1,34:1,22:1,255:1},k6);var Vq,ZI,nO,qj,Uj,eO,fan=we(uo,"Alignment",255,ke,S4e,$0e),yue;b(991,1,ps,E8n),o.hf=function(e){yUn(e)};var han,Wq,jue,lan,aan,Eue,dan,Cue,Mue,ban,wan,Tue;w(uo,"BoxLayouterOptions",991),b(992,1,{},zmn),o.sf=function(){var e;return e=new Wmn,e},o.tf=function(e){},w(uo,"BoxLayouterOptions/BoxFactory",992),b(298,22,{3:1,34:1,22:1,298:1},y6);var m9,Jq,v9,k9,y9,Qq,Yq=we(uo,"ContentAlignment",298,ke,P4e,x0e),Aue;b(699,1,ps,cG),o.hf=function(e){vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,xVn),""),"Layout Algorithm"),"Select a specific layout algorithm."),(l1(),N2)),fn),yn((gf(),xn))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,FVn),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),Xf),INe),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,rrn),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),gan),Pt),fan),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,l3),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,pcn),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Xf),san),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MS),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),man),L3),Yq),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Uy),""),"Debug Mode"),"Whether additional debug information shall be generated."),(_n(),!1)),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xR),""),Btn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),van),Pt),E9),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qy),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),jan),Pt),aU),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wcn),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CS),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),Man),Pt),ldn),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,W0),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),Nan),Xf),$on),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,u8),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,AS),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,o8),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,tR),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),Ran),Pt),bdn),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,TS),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Xf),Ei),yt(pi,S(T(Zh,1),G,170,0,[Kd,E1]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Ny),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Zr),Gi),yt(pi,S(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,uS),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,c8),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wrn),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),Tan),Xf),san),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mrn),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vrn),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,iNe),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),Xf),$Ne),yt(xn,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yrn),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),Aan),Xf),Non),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,trn),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),yi),Gt),yt(pi,S(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,BVn),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Qi),si),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,RVn),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,KVn),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$y),""),OVn),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),yi),Gt),yn(xn)))),ri(e,$y,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,_Vn),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,HVn),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Y(100)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qVn),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,UVn),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Y(4e3)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,GVn),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Y(400)),Zr),Gi),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zVn),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,XVn),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,VVn),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WVn),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gcn),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),pan),Pt),Cdn),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Gin),Hf),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zin),Hf),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WB),Hf),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xin),Hf),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,eR),Hf),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$R),Hf),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vin),Hf),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qin),Hf),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Win),Hf),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Jin),Hf),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yw),Hf),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Yin),Hf),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Qi),si),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Zin),Hf),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,nrn),Hf),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Xf),boe),yt(pi,S(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jrn),Hf),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),Jan),Xf),Non),yn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,BR),YVn),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Zr),Gi),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,BR,FR,xue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,FR),YVn),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),$an),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,orn),ZVn),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),Pan),Xf),$on),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xm),ZVn),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),Ian),L3),yr),yt(pi,S(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hrn),FS),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),Fan),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,lrn),FS),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,arn),FS),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,drn),FS),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,brn),FS),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Pt),A9),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,i2),uK),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Oan),L3),I9),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,a3),uK),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),Lan),L3),gdn),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,d3),uK),"Node Size Minimum"),"The minimal size to which a node can be reduced."),Dan),Xf),Ei),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zm),uK),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),yi),Gt),yn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,grn),NR),"Edge Label Placement"),"Gives a hint on where to put edge labels."),kan),Pt),Zan),yn(E1)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oS),NR),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),yi),Gt),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,rNe),"font"),"Font Name"),"Font name used for a label."),N2),fn),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,JVn),"font"),"Font Size"),"Font size used for a label."),Zr),Gi),yn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,krn),oK),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),Xf),Ei),yn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,prn),oK),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Zr),Gi),yn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,irn),oK),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),Han),Pt),lr),yn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,ern),oK),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Qi),si),yn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vm),kcn),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),Kan),L3),oO),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,srn),kcn),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,frn),kcn),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xy),Xy),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),Qi),si),yn(xn)))),ri(e,xy,J0,Uue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mcn),Xy),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),Pt),dO),yn(pi)))),ri(e,mcn,J0,Gue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fy),Xy),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,Fy,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,By),Xy),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),Qi),si),yt(xn,S(T(Zh,1),G,170,0,[pi]))))),ri(e,By,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,J0),Xy),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),Pt),mdn),yn(pi)))),ri(e,J0,zm,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vcn),Xy),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),Qi),si),yn(xn)))),ri(e,vcn,J0,que),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,crn),nWn),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),yi),Gt),yn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,urn),nWn),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),yi),Gt),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,JB),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Qi),si),yn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,QVn),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),Can),Pt),cdn),yn(Ph)))),h6(e,new Np(c6(u4(c4(new ep,Yn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),h6(e,new Np(c6(u4(c4(new ep,cu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),h6(e,new Np(c6(u4(c4(new ep,gVn),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),h6(e,new Np(c6(u4(c4(new ep,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),h6(e,new Np(c6(u4(c4(new ep,es),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),uUn((new C8n,e)),yUn((new E8n,e)),Nqn((new M8n,e))};var $v,Sue,gan,$2,Pue,Iue,pan,x2,F2,Oue,Gj,man,zj,_d,van,Zq,nU,kan,yan,jan,Ean,Can,Due,B2,Man,Lue,Xj,eU,Vj,tU,kb,Tan,xv,Aan,San,Pan,R2,Ian,Hd,Oan,Vw,K2,Dan,Ma,Lan,tO,Wj,C1,Nan,Nue,$an,$ue,xue,xan,Fan,iU,rU,cU,uU,Ban,oo,j9,Ran,oU,sU,Ww,Kan,_an,_2,Han,N3,Jj,fU,H2,Fue,hU,Bue,Rue,qan,Kue,Uan,Gan,$3,zan,iO,Xan,Van,qd,_ue,Wan,Jan,Qan,rO,Qj,Fv,x3,Hue,que,cO,Uue,Yan,Gue;w(uo,"CoreOptions",699),b(88,22,{3:1,34:1,22:1,88:1},v7);var Vf,Br,Xr,Wf,us,E9=we(uo,Btn,88,ke,L3e,F0e),zue;b(278,22,{3:1,34:1,22:1,278:1},fL);var Bv,Jw,Rv,Zan=we(uo,"EdgeLabelPlacement",278,ke,spe,B0e),Xue;b(223,22,{3:1,34:1,22:1,223:1},kC);var Kv,Yj,F3,lU,aU=we(uo,"EdgeRouting",223,ke,s3e,R0e),Vue;b(321,22,{3:1,34:1,22:1,321:1},j6);var ndn,edn,tdn,idn,dU,rdn,cdn=we(uo,"EdgeType",321,ke,A4e,K0e),Wue;b(989,1,ps,C8n),o.hf=function(e){uUn(e)};var udn,odn,sdn,fdn,Jue,hdn,C9;w(uo,"FixedLayouterOptions",989),b(990,1,{},Xmn),o.sf=function(){var e;return e=new rvn,e},o.tf=function(e){},w(uo,"FixedLayouterOptions/FixedFactory",990),b(346,22,{3:1,34:1,22:1,346:1},hL);var M1,uO,M9,ldn=we(uo,"HierarchyHandling",346,ke,upe,_0e),Que;b(291,22,{3:1,34:1,22:1,291:1},yC);var nl,Ta,Zj,nE,Yue=we(uo,"LabelSide",291,ke,o3e,H0e),Zue;b(95,22,{3:1,34:1,22:1,95:1},dg);var xl,Js,Es,Qs,Lo,Ys,Cs,el,Zs,yr=we(uo,"NodeLabelPlacement",95,ke,Sme,q0e),noe;b(256,22,{3:1,34:1,22:1,256:1},k7);var adn,T9,Aa,ddn,eE,A9=we(uo,"PortAlignment",256,ke,V3e,U0e),eoe;b(101,22,{3:1,34:1,22:1,101:1},E6);var Ud,qc,tl,_v,Jf,Sa,bdn=we(uo,"PortConstraints",101,ke,T4e,G0e),toe;b(279,22,{3:1,34:1,22:1,279:1},C6);var S9,P9,Fl,tE,Pa,B3,oO=we(uo,"PortLabelPlacement",279,ke,M4e,z0e),ioe;b(64,22,{3:1,34:1,22:1,64:1},y7);var Zn,Xn,os,ss,pu,su,Qf,nf,Wu,xu,Uc,Ju,mu,vu,ef,No,$o,Ms,ae,sc,Wn,lr=we(uo,"PortSide",64,ke,N3e,X0e),roe;b(993,1,ps,M8n),o.hf=function(e){Nqn(e)};var coe,uoe,wdn,ooe,soe;w(uo,"RandomLayouterOptions",993),b(994,1,{},Vmn),o.sf=function(){var e;return e=new evn,e},o.tf=function(e){},w(uo,"RandomLayouterOptions/RandomFactory",994),b(386,22,{3:1,34:1,22:1,386:1},jC);var Qw,iE,rE,Gd,I9=we(uo,"SizeConstraint",386,ke,u3e,V0e),foe;b(264,22,{3:1,34:1,22:1,264:1},bg);var cE,sO,Hv,bU,uE,O9,fO,hO,lO,gdn=we(uo,"SizeOptions",264,ke,Kme,W0e),hoe;b(280,22,{3:1,34:1,22:1,280:1},lL);var Yw,pdn,aO,mdn=we(uo,"TopdownNodeTypes",280,ke,fpe,J0e),loe;b(347,22,ycn);var vdn,kdn,dO=we(uo,"TopdownSizeApproximator",347,ke,r2e,Y0e);b(987,347,ycn,VSn),o.Tg=function(e){return CRn(e)},we(uo,"TopdownSizeApproximator/1",987,dO,null,null),b(988,347,ycn,LPn),o.Tg=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn,Rn;for(t=u(z(e,(qe(),H2)),143),en=(B1(),m=new Zv,m),uy(en,e),jn=new de,s=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));s.e!=s.i.gc();)r=u(ce(s),27),D=(p=new Zv,p),SA(D,en),uy(D,r),Rn=CRn(r),vg(D,y.Math.max(r.g,Rn.a),y.Math.max(r.f,Rn.b)),Vc(jn.f,r,D);for(c=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));c.e!=c.i.gc();)for(r=u(ce(c),27),d=new ne((!r.e&&(r.e=new Nn(Vt,r,7,4)),r.e));d.e!=d.i.gc();)a=u(ce(d),74),H=u(Kr(wr(jn.f,r)),27),X=u(ee(jn,L((!a.c&&(a.c=new Nn(he,a,5,8)),a.c),0)),27),N=(g=new HO,g),ve((!N.b&&(N.b=new Nn(he,N,4,7)),N.b),H),ve((!N.c&&(N.c=new Nn(he,N,5,8)),N.c),X),AA(N,At(H)),uy(N,a);j=u(V7(t.f),205);try{j.rf(en,new ovn),hIn(t.f,j)}catch(Kn){throw Kn=It(Kn),O(Kn,103)?(k=Kn,M(k)):M(Kn)}return Df(en,F2)||Df(en,x2)||otn(en),l=$(R(z(en,F2))),h=$(R(z(en,x2))),f=l/h,i=$(R(z(en,Qj)))*y.Math.sqrt((!en.a&&(en.a=new q(Qe,en,10,11)),en.a).i),kn=u(z(en,C1),107),I=kn.b+kn.c+1,A=kn.d+kn.a+1,new V(y.Math.max(I,i),y.Math.max(A,i/f))},we(uo,"TopdownSizeApproximator/2",988,dO,null,null);var aoe;b(344,1,{871:1},up),o.Ug=function(e,t){return FKn(this,e,t)},o.Vg=function(){u_n(this)},o.Wg=function(){return this.q},o.Xg=function(){return this.f?TN(this.f):null},o.Yg=function(){return TN(this.a)},o.Zg=function(){return this.p},o.$g=function(){return!1},o._g=function(){return this.n},o.ah=function(){return this.p!=null&&!this.b},o.bh=function(e){var t;this.n&&(t=e,nn(this.f,t))},o.dh=function(e,t){var i,r;this.n&&e&&Cpe(this,(i=new GPn,r=IF(i,e),cDe(i),r),(LT(),gU))},o.eh=function(e){var t;return this.b?null:(t=fme(this,this.g),xe(this.a,t),t.i=this,this.d=e,t)},o.fh=function(e){e>0&&!this.b&&CQ(this,e)},o.b=!1,o.c=0,o.d=-1,o.e=null,o.f=null,o.g=-1,o.j=!1,o.k=!1,o.n=!1,o.o=0,o.q=0,o.r=0,w(dc,"BasicProgressMonitor",344),b(717,205,yd,Wmn),o.rf=function(e,t){BUn(e,t)},w(dc,"BoxLayoutProvider",717),b(983,1,Ne,Lkn),o.Ne=function(e,t){return cTe(this,u(e,27),u(t,27))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},o.a=!1,w(dc,"BoxLayoutProvider/1",983),b(163,1,{163:1},hT,mAn),o.Ib=function(){return this.c?Een(this.c):ra(this.b)},w(dc,"BoxLayoutProvider/Group",163),b(320,22,{3:1,34:1,22:1,320:1},EC);var ydn,jdn,Edn,wU,Cdn=we(dc,"BoxLayoutProvider/PackingMode",320,ke,f3e,Z0e),doe;b(984,1,Ne,Jmn),o.Ne=function(e,t){return Cge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$0$Type",984),b(985,1,Ne,Qmn),o.Ne=function(e,t){return gge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$1$Type",985),b(986,1,Ne,Ymn),o.Ne=function(e,t){return pge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$2$Type",986),b(1384,1,{845:1},Zmn),o.Mg=function(e,t){return nC(),!O(t,167)||vEn((qp(),u(e,167)),t)},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),b(1385,1,ie,Nkn),o.Cd=function(e){N6e(this.a,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),b(1386,1,ie,tvn),o.Cd=function(e){u(e,96),nC()},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),b(1390,1,ie,$kn),o.Cd=function(e){tve(this.a,u(e,96))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),b(1388,1,De,fMn),o.Mb=function(e){return w6e(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),b(1387,1,De,hMn),o.Mb=function(e){return J1e(this.a,this.b,u(e,845))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),b(1389,1,ie,lMn),o.Cd=function(e){fwe(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),b(947,1,{},ivn),o.Kb=function(e){return uTn(e)},o.Fb=function(e){return this===e},w(dc,"ElkUtil/lambda$0$Type",947),b(948,1,ie,aMn),o.Cd=function(e){sCe(this.a,this.b,u(e,74))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$1$Type",948),b(949,1,ie,dMn),o.Cd=function(e){Zfe(this.a,this.b,u(e,166))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$2$Type",949),b(950,1,ie,bMn),o.Cd=function(e){Vle(this.a,this.b,u(e,135))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$3$Type",950),b(951,1,ie,xkn),o.Cd=function(e){Ibe(this.a,u(e,377))},w(dc,"ElkUtil/lambda$4$Type",951),b(325,1,{34:1,325:1},Pfe),o.Fd=function(e){return E1e(this,u(e,242))},o.Fb=function(e){var t;return O(e,325)?(t=u(e,325),this.a==t.a):!1},o.Hb=function(){return wi(this.a)},o.Ib=function(){return this.a+" (exclusive)"},o.a=0,w(dc,"ExclusiveBounds/ExclusiveLowerBound",325),b(1119,205,yd,rvn),o.rf=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I,D,N,H,X,en,jn,kn;for(t.Ug("Fixed Layout",1),s=u(z(e,(qe(),yan)),223),g=0,p=0,D=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));D.e!=D.i.gc();){for(A=u(ce(D),27),kn=u(z(A,(NT(),C9)),8),kn&&(Ro(A,kn.a,kn.b),u(z(A,odn),181).Hc((go(),Qw))&&(m=u(z(A,fdn),8),m.a>0&&m.b>0&&G0(A,m.a,m.b,!0,!0))),g=y.Math.max(g,A.i+A.g),p=y.Math.max(p,A.j+A.f),a=new ne((!A.n&&(A.n=new q(Ar,A,1,7)),A.n));a.e!=a.i.gc();)h=u(ce(a),135),kn=u(z(h,C9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,A.i+h.i+h.g),p=y.Math.max(p,A.j+h.j+h.f);for(X=new ne((!A.c&&(A.c=new q(Qu,A,9,9)),A.c));X.e!=X.i.gc();)for(H=u(ce(X),123),kn=u(z(H,C9),8),kn&&Ro(H,kn.a,kn.b),en=A.i+H.i,jn=A.j+H.j,g=y.Math.max(g,en+H.g),p=y.Math.max(p,jn+H.f),l=new ne((!H.n&&(H.n=new q(Ar,H,1,7)),H.n));l.e!=l.i.gc();)h=u(ce(l),135),kn=u(z(h,C9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,en+h.i+h.g),p=y.Math.max(p,jn+h.j+h.f);for(c=new te(re(Al(A).a.Kc(),new En));pe(c);)i=u(fe(c),74),d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b);for(r=new te(re(cy(A).a.Kc(),new En));pe(r);)i=u(fe(r),74),At(Kh(i))!=e&&(d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b))}if(s==(El(),Kv))for(I=new ne((!e.a&&(e.a=new q(Qe,e,10,11)),e.a));I.e!=I.i.gc();)for(A=u(ce(I),27),r=new te(re(Al(A).a.Kc(),new En));pe(r);)i=u(fe(r),74),f=hPe(i),f.b==0?ht(i,kb,null):ht(i,kb,f);on(un(z(e,(NT(),sdn))))||(N=u(z(e,Jue),107),j=g+N.b+N.c,k=p+N.d+N.a,G0(e,j,k,!0,!0)),t.Vg()},w(dc,"FixedLayoutProvider",1119),b(385,137,{3:1,423:1,385:1,96:1,137:1},_O,JNn),o.cg=function(e){var t,i,r,c,s,f,h,l,a;if(e)try{for(l=ww(e,";,;"),s=l,f=0,h=s.length;f>16&ui|t^r<<16},o.Kc=function(){return new Fkn(this)},o.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+Jr(this.b)+")":this.b==null?"pair("+Jr(this.a)+",null)":"pair("+Jr(this.a)+","+Jr(this.b)+")"},w(dc,"Pair",42),b(995,1,Si,Fkn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},o.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw M(new nc)},o.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),M(new Cu)},o.b=!1,o.c=!1,w(dc,"Pair/1",995),b(455,1,{455:1},TIn),o.Fb=function(e){return mc(this.a,u(e,455).a)&&mc(this.c,u(e,455).c)&&mc(this.d,u(e,455).d)&&mc(this.b,u(e,455).b)},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.a,this.c,this.d,this.b]))},o.Ib=function(){return"("+this.a+ur+this.c+ur+this.d+ur+this.b+")"},w(dc,"Quadruple",455),b(1108,205,yd,evn),o.rf=function(e,t){var i,r,c,s,f;if(t.Ug("Random Layout",1),(!e.a&&(e.a=new q(Qe,e,10,11)),e.a).i==0){t.Vg();return}s=u(z(e,(YY(),ooe)),17),s&&s.a!=0?c=new qM(s.a):c=new dx,i=Y9(R(z(e,coe))),f=Y9(R(z(e,soe))),r=u(z(e,uoe),107),SDe(e,c,i,f,r),t.Vg()},w(dc,"RandomLayoutProvider",1108),b(240,1,{240:1},_L),o.Fb=function(e){return mc(this.a,u(e,240).a)&&mc(this.b,u(e,240).b)&&mc(this.c,u(e,240).c)},o.Hb=function(){return Dk(S(T(ki,1),Fn,1,5,[this.a,this.b,this.c]))},o.Ib=function(){return"("+this.a+ur+this.b+ur+this.c+")"},w(dc,"Triple",240);var poe;b(562,1,{}),o.Lf=function(){return new V(this.f.i,this.f.j)},o.of=function(e){return nOn(e,(qe(),oo))?z(this.f,moe):z(this.f,e)},o.Mf=function(){return new V(this.f.g,this.f.f)},o.Nf=function(){return this.g},o.pf=function(e){return Df(this.f,e)},o.Of=function(e){eu(this.f,e.a),tu(this.f,e.b)},o.Pf=function(e){I0(this.f,e.a),P0(this.f,e.b)},o.Qf=function(e){this.g=e},o.g=0;var moe;w(g8,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),b(563,1,{853:1},DE),o.Rf=function(){var e,t;if(!this.b)for(this.b=RM(jM(this.a).i),t=new ne(jM(this.a));t.e!=t.i.gc();)e=u(ce(t),135),nn(this.b,new pD(e));return this.b},o.b=null,w(g8,"ElkGraphAdapters/ElkEdgeAdapter",563),b(289,562,{},Qd),o.Sf=function(){return zRn(this)},o.a=null,w(g8,"ElkGraphAdapters/ElkGraphAdapter",289),b(640,562,{187:1},pD),w(g8,"ElkGraphAdapters/ElkLabelAdapter",640),b(639,562,{695:1},ML),o.Rf=function(){return w7e(this)},o.Vf=function(){var e;return e=u(z(this.f,(qe(),xv)),140),!e&&(e=new Yv),e},o.Xf=function(){return g7e(this)},o.Zf=function(e){var t;t=new qL(e),ht(this.f,(qe(),xv),t)},o.$f=function(e){ht(this.f,(qe(),C1),new HV(e))},o.Tf=function(){return this.d},o.Uf=function(){var e,t;if(!this.a)for(this.a=new Z,t=new te(re(cy(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=new Z,t=new te(re(Al(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.c,new DE(e));return this.c},o.Yf=function(){return AM(u(this.f,27)).i!=0||on(un(u(this.f,27).of((qe(),Xj))))},o._f=function(){V4e(this,(c0(),poe))},o.a=null,o.b=null,o.c=null,o.d=null,o.e=null,w(g8,"ElkGraphAdapters/ElkNodeAdapter",639),b(1284,562,{852:1},Bkn),o.Rf=function(){return C7e(this)},o.Uf=function(){var e,t;if(!this.a)for(this.a=Dh(u(this.f,123).hh().i),t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)e=u(ce(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=Dh(u(this.f,123).ih().i),t=new ne(u(this.f,123).ih());t.e!=t.i.gc();)e=u(ce(t),74),nn(this.c,new DE(e));return this.c},o.ag=function(){return u(u(this.f,123).of((qe(),_2)),64)},o.bg=function(){var e,t,i,r,c,s,f,h;for(r=Af(u(this.f,123)),i=new ne(u(this.f,123).ih());i.e!=i.i.gc();)for(e=u(ce(i),74),h=new ne((!e.c&&(e.c=new Nn(he,e,5,8)),e.c));h.e!=h.i.gc();){if(f=u(ce(h),84),Yb(Gr(f),r))return!0;if(Gr(f)==r&&on(un(z(e,(qe(),eU)))))return!0}for(t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)for(e=u(ce(t),74),s=new ne((!e.b&&(e.b=new Nn(he,e,4,7)),e.b));s.e!=s.i.gc();)if(c=u(ce(s),84),Yb(Gr(c),r))return!0;return!1},o.a=null,o.b=null,o.c=null,w(g8,"ElkGraphAdapters/ElkPortAdapter",1284),b(1285,1,Ne,nvn),o.Ne=function(e,t){return tSe(u(e,123),u(t,123))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(g8,"ElkGraphAdapters/PortComparator",1285);var Ia=Nt(ts,"EObject"),qv=Nt(u2,iWn),xo=Nt(u2,rWn),oE=Nt(u2,cWn),sE=Nt(u2,"ElkShape"),he=Nt(u2,uWn),Vt=Nt(u2,jcn),Mt=Nt(u2,oWn),fE=Nt(ts,sWn),D9=Nt(ts,"EFactory"),voe,pU=Nt(ts,fWn),jf=Nt(ts,"EPackage"),Ti,koe,yoe,Sdn,bO,joe,Pdn,Idn,Odn,il,Eoe,Coe,Ar=Nt(u2,Ecn),Qe=Nt(u2,Ccn),Qu=Nt(u2,Mcn);b(93,1,hWn),o.th=function(){return this.uh(),null},o.uh=function(){return null},o.vh=function(){return this.uh(),!1},o.wh=function(){return!1},o.xh=function(e){it(this,e)},w(g3,"BasicNotifierImpl",93),b(99,93,bWn),o.Yh=function(){return fo(this)},o.yh=function(e,t){return e},o.zh=function(){throw M(new Pe)},o.Ah=function(e){var t;return t=br(u($n(this.Dh(),this.Fh()),19)),this.Ph().Th(this,t.n,t.f,e)},o.Bh=function(e,t){throw M(new Pe)},o.Ch=function(e,t,i){return So(this,e,t,i)},o.Dh=function(){var e;return this.zh()&&(e=this.zh().Nk(),e)?e:this.ii()},o.Eh=function(){return dF(this)},o.Fh=function(){throw M(new Pe)},o.Gh=function(){var e,t;return t=this.$h().Ok(),!t&&this.zh().Tk(t=(a6(),e=eJ(bh(this.Dh())),e==null?MU:new T7(this,e))),t},o.Hh=function(e,t){return e},o.Ih=function(e){var t;return t=e.pk(),t?e.Lj():Ot(this.Dh(),e)},o.Jh=function(){var e;return e=this.zh(),e?e.Qk():null},o.Kh=function(){return this.zh()?this.zh().Nk():null},o.Lh=function(e,t,i){return tA(this,e,t,i)},o.Mh=function(e){return x4(this,e)},o.Nh=function(e,t){return YN(this,e,t)},o.Oh=function(){var e;return e=this.zh(),!!e&&e.Rk()},o.Ph=function(){throw M(new Pe)},o.Qh=function(){return WT(this)},o.Rh=function(e,t,i,r){return Wp(this,e,t,r)},o.Sh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().zk(this,this.hi(),t-this.ji(),e,i)},o.Th=function(e,t,i,r){return OM(this,e,t,r)},o.Uh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().Ak(this,this.hi(),t-this.ji(),e,i)},o.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},o.Wh=function(e){return Cx(this,e)},o.Xh=function(e){return bOn(this,e)},o.Zh=function(e){return xGn(this,e)},o.$h=function(){throw M(new Pe)},o._h=function(){return this.zh()?this.zh().Pk():null},o.ai=function(){return WT(this)},o.bi=function(e,t){sF(this,e,t)},o.ci=function(e){this.$h().Sk(e)},o.di=function(e){this.$h().Vk(e)},o.ei=function(e){this.$h().Uk(e)},o.fi=function(e,t){var i,r,c,s;return s=this.Jh(),s&&e&&(t=cr(s.El(),this,t),s.Il(this)),r=this.Ph(),r&&(AF(this,this.Ph(),this.Fh()).Bb&hr?(c=r.Qh(),c&&(e?!s&&c.Il(this):c.Hl(this))):(t=(i=this.Fh(),i>=0?this.Ah(t):this.Ph().Th(this,-1-i,null,t)),t=this.Ch(null,-1,t))),this.di(e),t},o.gi=function(e){var t,i,r,c,s,f,h,l;if(i=this.Dh(),s=Ot(i,e),t=this.ji(),s>=t)return u(e,69).wk().Dk(this,this.hi(),s-t);if(s<=-1)if(f=Jg((Du(),zi),i,e),f){if(dr(),u(f,69).xk()||(f=$p(Lr(zi,f))),c=(r=this.Ih(f),u(r>=0?this.Lh(r,!0,!0):H0(this,f,!0),160)),l=f.Ik(),l>1||l==-1)return u(u(c,220).Sl(e,!1),79)}else throw M(new Gn(da+e.xe()+sK));else if(e.Jk())return r=this.Ih(e),u(r>=0?this.Lh(r,!1,!0):H0(this,e,!1),79);return h=new DMn(this,e),h},o.hi=function(){return uQ(this)},o.ii=function(){return(G1(),Hn).S},o.ji=function(){return se(this.ii())},o.ki=function(e){cF(this,e)},o.Ib=function(){return _s(this)},w(qn,"BasicEObjectImpl",99);var Moe;b(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),o.li=function(e){var t;return t=cQ(this),t[e]},o.mi=function(e,t){var i;i=cQ(this),$t(i,e,t)},o.ni=function(e){var t;t=cQ(this),$t(t,e,null)},o.th=function(){return u(Un(this,4),129)},o.uh=function(){throw M(new Pe)},o.vh=function(){return(this.Db&4)!=0},o.zh=function(){throw M(new Pe)},o.oi=function(e){Xp(this,2,e)},o.Bh=function(e,t){this.Db=t<<16|this.Db&255,this.oi(e)},o.Dh=function(){return au(this)},o.Fh=function(){return this.Db>>16},o.Gh=function(){var e,t;return a6(),t=eJ(bh((e=u(Un(this,16),29),e||this.ii()))),t==null?MU:new T7(this,t)},o.wh=function(){return(this.Db&1)==0},o.Jh=function(){return u(Un(this,128),2034)},o.Kh=function(){return u(Un(this,16),29)},o.Oh=function(){return(this.Db&32)!=0},o.Ph=function(){return u(Un(this,2),54)},o.Vh=function(){return(this.Db&64)!=0},o.$h=function(){throw M(new Pe)},o._h=function(){return u(Un(this,64),288)},o.ci=function(e){Xp(this,16,e)},o.di=function(e){Xp(this,128,e)},o.ei=function(e){Xp(this,64,e)},o.hi=function(){return iu(this)},o.Db=0,w(qn,"MinimalEObjectImpl",119),b(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.oi=function(e){this.Cb=e},o.Ph=function(){return this.Cb},w(qn,"MinimalEObjectImpl/Container",120),b(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return yZ(this,e,t,i)},o.Uh=function(e,t,i){return hnn(this,e,t,i)},o.Wh=function(e){return wJ(this,e)},o.bi=function(e,t){uY(this,e,t)},o.ii=function(){return Cc(),Coe},o.ki=function(e){WQ(this,e)},o.nf=function(){return aRn(this)},o.gh=function(){return!this.o&&(this.o=new Iu((Cc(),il),T1,this,0)),this.o},o.of=function(e){return z(this,e)},o.pf=function(e){return Df(this,e)},o.qf=function(e,t){return ht(this,e,t)},w(Md,"EMapPropertyHolderImpl",2083),b(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},yE),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:aT(this,$(R(t)));return;case 1:lT(this,$(R(t)));return}sF(this,e,t)},o.ii=function(){return Cc(),koe},o.ki=function(e){switch(e){case 0:aT(this,0);return;case 1:lT(this,0);return}cF(this,e)},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new ls(_s(this)),e.a+=" (x: ",fg(e,this.a),e.a+=", y: ",fg(e,this.b),e.a+=")",e.a)},o.a=0,o.b=0,w(Md,"ElkBendPointImpl",572),b(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return PY(this,e,t,i)},o.Sh=function(e,t,i){return Yx(this,e,t,i)},o.Uh=function(e,t,i){return $$(this,e,t,i)},o.Wh=function(e){return qQ(this,e)},o.bi=function(e,t){KZ(this,e,t)},o.ii=function(){return Cc(),joe},o.ki=function(e){kY(this,e)},o.jh=function(){return this.k},o.kh=function(){return jM(this)},o.Ib=function(){return ox(this)},o.k=null,w(Md,"ElkGraphElementImpl",739),b(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return FY(this,e,t,i)},o.Wh=function(e){return qY(this,e)},o.bi=function(e,t){_Z(this,e,t)},o.ii=function(){return Cc(),Eoe},o.ki=function(e){JY(this,e)},o.lh=function(){return this.f},o.mh=function(){return this.g},o.nh=function(){return this.i},o.oh=function(){return this.j},o.ph=function(e,t){vg(this,e,t)},o.qh=function(e,t){Ro(this,e,t)},o.rh=function(e){eu(this,e)},o.sh=function(e){tu(this,e)},o.Ib=function(){return iF(this)},o.f=0,o.g=0,o.i=0,o.j=0,w(Md,"ElkShapeImpl",740),b(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return bZ(this,e,t,i)},o.Sh=function(e,t,i){return NZ(this,e,t,i)},o.Uh=function(e,t,i){return $Z(this,e,t,i)},o.Wh=function(e){return cY(this,e)},o.bi=function(e,t){Vnn(this,e,t)},o.ii=function(){return Cc(),yoe},o.ki=function(e){fZ(this,e)},o.hh=function(){return!this.d&&(this.d=new Nn(Vt,this,8,5)),this.d},o.ih=function(){return!this.e&&(this.e=new Nn(Vt,this,7,4)),this.e},w(Md,"ElkConnectableShapeImpl",741),b(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},HO),o.Ah=function(e){return IZ(this,e)},o.Lh=function(e,t,i){switch(e){case 3:return J7(this);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),this.c;case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),this.a;case 7:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return _n(),!!F5(this);case 9:return _n(),!!_0(this);case 10:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return PY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 3:return this.Cb&&(i=(r=this.Db>>16,r>=0?IZ(this,i):this.Cb.Th(this,-1-r,null,i))),lV(this,u(e,27),i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),Xc(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),Xc(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),Xc(this.a,e,i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 3:return lV(this,null,i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),cr(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),cr(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),cr(this.a,e,i)}return $$(this,e,t,i)},o.Wh=function(e){switch(e){case 3:return!!J7(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return F5(this);case 9:return _0(this);case 10:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return qQ(this,e)},o.bi=function(e,t){switch(e){case 3:AA(this,u(t,27));return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b),!this.b&&(this.b=new Nn(he,this,4,7)),Bt(this.b,u(t,16));return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c),!this.c&&(this.c=new Nn(he,this,5,8)),Bt(this.c,u(t,16));return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a),!this.a&&(this.a=new q(Mt,this,6,6)),Bt(this.a,u(t,16));return}KZ(this,e,t)},o.ii=function(){return Cc(),Sdn},o.ki=function(e){switch(e){case 3:AA(this,null);return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b);return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c);return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a);return}kY(this,e)},o.Ib=function(){return nGn(this)},w(Md,"ElkEdgeImpl",326),b(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},jE),o.Ah=function(e){return TZ(this,e)},o.Lh=function(e,t,i){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new ti(xo,this,5)),this.a;case 6:return hOn(this);case 7:return t?Px(this):this.i;case 8:return t?Sx(this):this.f;case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),this.e;case 11:return this.d}return yZ(this,e,t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?TZ(this,i):this.Cb.Th(this,-1-c,null,i))),hV(this,u(e,74),i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),Xc(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),Xc(this.e,e,i)}return s=u($n((r=u(Un(this,16),29),r||(Cc(),bO)),t),69),s.wk().zk(this,iu(this),t-se((Cc(),bO)),e,i)},o.Uh=function(e,t,i){switch(t){case 5:return!this.a&&(this.a=new ti(xo,this,5)),cr(this.a,e,i);case 6:return hV(this,null,i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),cr(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),cr(this.e,e,i)}return hnn(this,e,t,i)},o.Wh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!hOn(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return wJ(this,e)},o.bi=function(e,t){switch(e){case 1:H4(this,$(R(t)));return;case 2:U4(this,$(R(t)));return;case 3:_4(this,$(R(t)));return;case 4:q4(this,$(R(t)));return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a),!this.a&&(this.a=new ti(xo,this,5)),Bt(this.a,u(t,16));return;case 6:ZHn(this,u(t,74));return;case 7:vT(this,u(t,84));return;case 8:mT(this,u(t,84));return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g),!this.g&&(this.g=new Nn(Mt,this,9,10)),Bt(this.g,u(t,16));return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e),!this.e&&(this.e=new Nn(Mt,this,10,9)),Bt(this.e,u(t,16));return;case 11:OQ(this,Oe(t));return}uY(this,e,t)},o.ii=function(){return Cc(),bO},o.ki=function(e){switch(e){case 1:H4(this,0);return;case 2:U4(this,0);return;case 3:_4(this,0);return;case 4:q4(this,0);return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a);return;case 6:ZHn(this,null);return;case 7:vT(this,null);return;case 8:mT(this,null);return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g);return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e);return;case 11:OQ(this,null);return}WQ(this,e)},o.Ib=function(){return dHn(this)},o.b=0,o.c=0,o.d=null,o.j=0,o.k=0,w(Md,"ElkEdgeSectionImpl",452),b(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Lh=function(e,t,i){var r;return e==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab):zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().zk(this,iu(this),t-se(this.ii()),e,i))},o.Uh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i))},o.Wh=function(e){var t;return e==0?!!this.Ab&&this.Ab.i!=0:Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.Zh=function(e){return ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.di=function(e){Xp(this,128,e)},o.ii=function(){return On(),qoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){this.Bb|=1},o.qi=function(e){return U5(this,e)},o.Bb=0,w(qn,"EModelElementImpl",158),b(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},oG),o.ri=function(e,t){return PGn(this,e,t)},o.si=function(e){var t,i,r,c,s;if(this.a!=jo(e)||e.Bb&256)throw M(new Gn(hK+e.zb+nb));for(r=Hr(e);Sc(r.a).i!=0;){if(i=u(py(r,0,(t=u(L(Sc(r.a),0),89),s=t.c,O(s,90)?u(s,29):(On(),Ps))),29),K0(i))return c=jo(i).wi().si(i),u(c,54).ci(e),c;r=Hr(i)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new zSn(e):new ZV(e)},o.ti=function(e,t){return z0(this,e,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.a}return zo(this,e-se((On(),Na)),$n((r=u(Un(this,16),29),r||Na),e),t,i)},o.Sh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 1:return this.a&&(i=u(this.a,54).Th(this,4,jf,i)),vY(this,u(e,241),i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),c.wk().zk(this,iu(this),t-se((On(),Na)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 1:return vY(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Na)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return Uo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:JKn(this,u(t,241));return}Jo(this,e-se((On(),Na)),$n((i=u(Un(this,16),29),i||Na),e),t)},o.ii=function(){return On(),Na},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:JKn(this,null);return}Wo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))};var L9,Ddn,Toe;w(qn,"EFactoryImpl",720),b(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},fvn),o.ri=function(e,t){switch(e.hk()){case 12:return u(t,149).Pg();case 13:return Jr(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l;switch(e.G==-1&&(e.G=(t=jo(e),t?f1(t.vi(),e):-1)),e.G){case 4:return s=new eG,s;case 6:return f=new Zv,f;case 7:return h=new ez,h;case 8:return r=new HO,r;case 9:return i=new yE,i;case 10:return c=new jE,c;case 11:return l=new hvn,l;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 13:case 12:return null;default:throw M(new Gn(ev+e.xe()+nb))}},w(Md,"ElkGraphFactoryImpl",1037),b(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Gh=function(){var e,t;return t=(e=u(Un(this,16),29),eJ(bh(e||this.ii()))),t==null?(a6(),a6(),MU):new wAn(this,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.xe()}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Uoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.xe=function(){return this.zb},o.ui=function(e){zc(this,e)},o.Ib=function(){return m5(this)},o.zb=null,w(qn,"ENamedElementImpl",448),b(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},HIn),o.Ah=function(e){return oKn(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),this.rb;case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?u(this.Cb,241):null:pOn(this)}return zo(this,e-se((On(),I1)),$n((r=u(Un(this,16),29),r||I1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 4:return this.sb&&(i=u(this.sb,54).Th(this,1,D9,i)),jY(this,u(e,480),i);case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),Xc(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),Xc(this.vb,e,i);case 7:return this.Cb&&(i=(c=this.Db>>16,c>=0?oKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,7,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),s.wk().zk(this,iu(this),t-se((On(),I1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 4:return jY(this,null,i);case 5:return!this.rb&&(this.rb=new Hb(this,Ef,this)),cr(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(jf,this,6,7)),cr(this.vb,e,i);case 7:return So(this,null,7,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),I1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!pOn(this)}return Uo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.Zh=function(e){var t;return t=pTe(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:MT(this,Oe(t));return;case 3:CT(this,Oe(t));return;case 4:tF(this,u(t,480));return;case 5:!this.rb&&(this.rb=new Hb(this,Ef,this)),me(this.rb),!this.rb&&(this.rb=new Hb(this,Ef,this)),Bt(this.rb,u(t,16));return;case 6:!this.vb&&(this.vb=new jp(jf,this,6,7)),me(this.vb),!this.vb&&(this.vb=new jp(jf,this,6,7)),Bt(this.vb,u(t,16));return}Jo(this,e-se((On(),I1)),$n((i=u(Un(this,16),29),i||I1),e),t)},o.ei=function(e){var t,i;if(e&&this.rb)for(i=new ne(this.rb);i.e!=i.i.gc();)t=ce(i),O(t,364)&&(u(t,364).w=null);Xp(this,64,e)},o.ii=function(){return On(),I1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:MT(this,null);return;case 3:CT(this,null);return;case 4:tF(this,null);return;case 5:!this.rb&&(this.rb=new Hb(this,Ef,this)),me(this.rb);return;case 6:!this.vb&&(this.vb=new jp(jf,this,6,7)),me(this.vb);return}Wo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.pi=function(){Hx(this)},o.vi=function(){return!this.rb&&(this.rb=new Hb(this,Ef,this)),this.rb},o.wi=function(){return this.sb},o.xi=function(){return this.ub},o.yi=function(){return this.xb},o.zi=function(){return this.yb},o.Ai=function(e){this.ub=e},o.Ib=function(){var e;return this.Db&64?m5(this):(e=new ls(m5(this)),e.a+=" (nsURI: ",Er(e,this.yb),e.a+=", nsPrefix: ",Er(e,this.xb),e.a+=")",e.a)},o.xb=null,o.yb=null,w(qn,"EPackageImpl",184),b(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},jHn),o.q=!1,o.r=!1;var Aoe=!1;w(Md,"ElkGraphPackageImpl",569),b(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},eG),o.Ah=function(e){return AZ(this,e)},o.Lh=function(e,t,i){switch(e){case 7:return mOn(this);case 8:return this.a}return FY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 7:return this.Cb&&(i=(r=this.Db>>16,r>=0?AZ(this,i):this.Cb.Th(this,-1-r,null,i))),bW(this,u(e,167),i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){return t==7?bW(this,null,i):$$(this,e,t,i)},o.Wh=function(e){switch(e){case 7:return!!mOn(this);case 8:return!An("",this.a)}return qY(this,e)},o.bi=function(e,t){switch(e){case 7:oen(this,u(t,167));return;case 8:TQ(this,Oe(t));return}_Z(this,e,t)},o.ii=function(){return Cc(),Pdn},o.ki=function(e){switch(e){case 7:oen(this,null);return;case 8:TQ(this,"");return}JY(this,e)},o.Ib=function(){return h_n(this)},o.a="",w(Md,"ElkLabelImpl",366),b(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Zv),o.Ah=function(e){return OZ(this,e)},o.Lh=function(e,t,i){switch(e){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),this.c;case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),this.a;case 11:return At(this);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),this.b;case 13:return _n(),!this.a&&(this.a=new q(Qe,this,10,11)),this.a.i>0}return bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),Xc(this.c,e,i);case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),Xc(this.a,e,i);case 11:return this.Cb&&(i=(r=this.Db>>16,r>=0?OZ(this,i):this.Cb.Th(this,-1-r,null,i))),yV(this,u(e,27),i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),Xc(this.b,e,i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),cr(this.c,e,i);case 10:return!this.a&&(this.a=new q(Qe,this,10,11)),cr(this.a,e,i);case 11:return yV(this,null,i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),cr(this.b,e,i)}return $Z(this,e,t,i)},o.Wh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!At(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new q(Qe,this,10,11)),this.a.i>0}return cY(this,e)},o.bi=function(e,t){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c),!this.c&&(this.c=new q(Qu,this,9,9)),Bt(this.c,u(t,16));return;case 10:!this.a&&(this.a=new q(Qe,this,10,11)),me(this.a),!this.a&&(this.a=new q(Qe,this,10,11)),Bt(this.a,u(t,16));return;case 11:SA(this,u(t,27));return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b),!this.b&&(this.b=new q(Vt,this,12,3)),Bt(this.b,u(t,16));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Idn},o.ki=function(e){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c);return;case 10:!this.a&&(this.a=new q(Qe,this,10,11)),me(this.a);return;case 11:SA(this,null);return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b);return}fZ(this,e)},o.Ib=function(){return Een(this)},w(Md,"ElkNodeImpl",207),b(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ez),o.Ah=function(e){return SZ(this,e)},o.Lh=function(e,t,i){return e==9?Af(this):bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return this.Cb&&(i=(r=this.Db>>16,r>=0?SZ(this,i):this.Cb.Th(this,-1-r,null,i))),aV(this,u(e,27),i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){return t==9?aV(this,null,i):$Z(this,e,t,i)},o.Wh=function(e){return e==9?!!Af(this):cY(this,e)},o.bi=function(e,t){switch(e){case 9:ien(this,u(t,27));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Odn},o.ki=function(e){switch(e){case 9:ien(this,null);return}fZ(this,e)},o.Ib=function(){return Yqn(this)},w(Md,"ElkPortImpl",193);var Soe=Nt(or,"BasicEMap/Entry");b(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},hvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.Hb=function(){return l0(this)},o.Di=function(e){AQ(this,u(e,149))},o.Lh=function(e,t,i){switch(e){case 0:return this.b;case 1:return this.c}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:AQ(this,u(t,149));return;case 1:MQ(this,t);return}sF(this,e,t)},o.ii=function(){return Cc(),il},o.ki=function(e){switch(e){case 0:AQ(this,null);return;case 1:MQ(this,null);return}cF(this,e)},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e?mt(e):0),this.a},o.md=function(){return this.c},o.Ci=function(e){this.a=e},o.nd=function(e){var t;return t=this.c,MQ(this,e),t},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new x1,Be(Be(Be(e,this.b?this.b.Pg():gu),iR),D6(this.c)),e.a)},o.a=-1,o.c=null;var T1=w(Md,"ElkPropertyToValueMapEntryImpl",1122);b(996,1,{},dvn),w(Ui,"JsonAdapter",996),b(216,63,Pl,nh),w(Ui,"JsonImportException",216),b(868,1,{},sKn),w(Ui,"JsonImporter",868),b(903,1,{},wMn),w(Ui,"JsonImporter/lambda$0$Type",903),b(904,1,{},gMn),w(Ui,"JsonImporter/lambda$1$Type",904),b(912,1,{},Rkn),w(Ui,"JsonImporter/lambda$10$Type",912),b(914,1,{},pMn),w(Ui,"JsonImporter/lambda$11$Type",914),b(915,1,{},mMn),w(Ui,"JsonImporter/lambda$12$Type",915),b(921,1,{},IIn),w(Ui,"JsonImporter/lambda$13$Type",921),b(920,1,{},OIn),w(Ui,"JsonImporter/lambda$14$Type",920),b(916,1,{},vMn),w(Ui,"JsonImporter/lambda$15$Type",916),b(917,1,{},kMn),w(Ui,"JsonImporter/lambda$16$Type",917),b(918,1,{},yMn),w(Ui,"JsonImporter/lambda$17$Type",918),b(919,1,{},jMn),w(Ui,"JsonImporter/lambda$18$Type",919),b(924,1,{},Kkn),w(Ui,"JsonImporter/lambda$19$Type",924),b(905,1,{},_kn),w(Ui,"JsonImporter/lambda$2$Type",905),b(922,1,{},Hkn),w(Ui,"JsonImporter/lambda$20$Type",922),b(923,1,{},qkn),w(Ui,"JsonImporter/lambda$21$Type",923),b(927,1,{},Ukn),w(Ui,"JsonImporter/lambda$22$Type",927),b(925,1,{},Gkn),w(Ui,"JsonImporter/lambda$23$Type",925),b(926,1,{},zkn),w(Ui,"JsonImporter/lambda$24$Type",926),b(929,1,{},Xkn),w(Ui,"JsonImporter/lambda$25$Type",929),b(928,1,{},Vkn),w(Ui,"JsonImporter/lambda$26$Type",928),b(930,1,ie,EMn),o.Cd=function(e){O4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$27$Type",930),b(931,1,ie,CMn),o.Cd=function(e){D4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$28$Type",931),b(932,1,{},MMn),w(Ui,"JsonImporter/lambda$29$Type",932),b(908,1,{},Wkn),w(Ui,"JsonImporter/lambda$3$Type",908),b(933,1,{},TMn),w(Ui,"JsonImporter/lambda$30$Type",933),b(934,1,{},Jkn),w(Ui,"JsonImporter/lambda$31$Type",934),b(935,1,{},Qkn),w(Ui,"JsonImporter/lambda$32$Type",935),b(936,1,{},Ykn),w(Ui,"JsonImporter/lambda$33$Type",936),b(937,1,{},Zkn),w(Ui,"JsonImporter/lambda$34$Type",937),b(870,1,{},nyn),w(Ui,"JsonImporter/lambda$35$Type",870),b(941,1,{},kSn),w(Ui,"JsonImporter/lambda$36$Type",941),b(938,1,ie,eyn),o.Cd=function(e){F3e(this.a,u(e,377))},w(Ui,"JsonImporter/lambda$37$Type",938),b(939,1,ie,AMn),o.Cd=function(e){mle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$38$Type",939),b(940,1,ie,SMn),o.Cd=function(e){vle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$39$Type",940),b(906,1,{},tyn),w(Ui,"JsonImporter/lambda$4$Type",906),b(942,1,ie,iyn),o.Cd=function(e){B3e(this.a,u(e,8))},w(Ui,"JsonImporter/lambda$40$Type",942),b(907,1,{},ryn),w(Ui,"JsonImporter/lambda$5$Type",907),b(911,1,{},cyn),w(Ui,"JsonImporter/lambda$6$Type",911),b(909,1,{},uyn),w(Ui,"JsonImporter/lambda$7$Type",909),b(910,1,{},oyn),w(Ui,"JsonImporter/lambda$8$Type",910),b(913,1,{},syn),w(Ui,"JsonImporter/lambda$9$Type",913),b(961,1,ie,fyn),o.Cd=function(e){Ip(this.a,new qb(Oe(e)))},w(Ui,"JsonMetaDataConverter/lambda$0$Type",961),b(962,1,ie,hyn),o.Cd=function(e){Pwe(this.a,u(e,245))},w(Ui,"JsonMetaDataConverter/lambda$1$Type",962),b(963,1,ie,lyn),o.Cd=function(e){S2e(this.a,u(e,143))},w(Ui,"JsonMetaDataConverter/lambda$2$Type",963),b(964,1,ie,ayn),o.Cd=function(e){Iwe(this.a,u(e,170))},w(Ui,"JsonMetaDataConverter/lambda$3$Type",964),b(245,22,{3:1,34:1,22:1,245:1},gp);var wO,gO,mU,pO,mO,vO,vU,kU,kO=we(Dy,"GraphFeature",245,ke,dme,tbe),Poe;b(11,1,{34:1,149:1},lt,Dt,Mn,Ni),o.Fd=function(e){return C1e(this,u(e,149))},o.Fb=function(e){return nOn(this,e)},o.Sg=function(){return rn(this)},o.Pg=function(){return this.b},o.Hb=function(){return t1(this.b)},o.Ib=function(){return this.b},w(Dy,"Property",11),b(671,1,Ne,tD),o.Ne=function(e,t){return N5e(this,u(e,96),u(t,96))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Dy,"PropertyHolderComparator",671),b(709,1,Si,xG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return $4e(this)},o.Qb=function(){sEn()},o.Ob=function(){return!!this.a},w(_S,"ElkGraphUtil/AncestorIterator",709);var Ldn=Nt(or,"EList");b(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),o.bd=function(e,t){k5(this,e,t)},o.Fc=function(e){return ve(this,e)},o.cd=function(e,t){return JQ(this,e,t)},o.Gc=function(e){return Bt(this,e)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new A7(this)},o.Ki=function(e){return vk(this,e)},o.Li=function(){return!0},o.Mi=function(e,t){},o.Ni=function(){},o.Oi=function(e,t){t$(this,e,t)},o.Pi=function(e,t,i){},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Fb=function(e){return xqn(this,e)},o.Hb=function(){return zQ(this)},o.Si=function(){return!1},o.Kc=function(){return new ne(this)},o.ed=function(){return new kp(this)},o.fd=function(e){var t;if(t=this.gc(),e<0||e>t)throw M(new Kb(e,t));return new oN(this,e)},o.Ui=function(e,t){this.Ti(e,this.dd(t))},o.Mc=function(e){return rT(this,e)},o.Wi=function(e,t){return t},o.hd=function(e,t){return Bg(this,e,t)},o.Ib=function(){return KY(this)},o.Yi=function(){return!0},o.Zi=function(e,t){return rm(this,t)},w(or,"AbstractEList",70),b(66,70,Ch,EE,S0,KQ),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Nk(this,e,t)},o.Hi=function(e){ik(this,e)},o.$i=function(e){return nQ(this,e)},o.$b=function(){t5(this)},o.Hc=function(e){return km(this,e)},o.Xb=function(e){return L(this,e)},o._i=function(e){var t,i,r;++this.j,i=this.g==null?0:this.g.length,e>i&&(r=this.g,t=i+(i/2|0)+4,t=0?(this.gd(t),!0):!1},o.Xi=function(e,t){return this.Dj(e,this.Zi(e,t))},o.gc=function(){return this.Ej()},o.Pc=function(){return this.Fj()},o.Qc=function(e){return this.Gj(e)},o.Ib=function(){return this.Hj()},w(or,"DelegatingEList",2093),b(2094,2093,YWn),o.Ei=function(e,t){return $en(this,e,t)},o.Fi=function(e){return this.Ei(this.Ej(),e)},o.Gi=function(e,t){EHn(this,e,t)},o.Hi=function(e){lHn(this,e)},o.Li=function(){return!this.Mj()},o.$b=function(){J5(this)},o.Ij=function(e,t,i,r,c){return new ZIn(this,e,t,i,r,c)},o.Jj=function(e){it(this.jj(),e)},o.Kj=function(){return null},o.Lj=function(){return-1},o.jj=function(){return null},o.Mj=function(){return!1},o.Nj=function(e,t){return t},o.Oj=function(e,t){return t},o.Pj=function(){return!1},o.Qj=function(){return!this.Aj()},o.Ti=function(e,t){var i,r;return this.Pj()?(r=this.Qj(),i=onn(this,e,t),this.Jj(this.Ij(7,Y(t),i,e,r)),i):onn(this,e,t)},o.gd=function(e){var t,i,r,c;return this.Pj()?(i=null,r=this.Qj(),t=this.Ij(4,c=tM(this,e),null,e,r),this.Mj()&&c?(i=this.Oj(c,i),i?(i.nj(t),i.oj()):this.Jj(t)):i?(i.nj(t),i.oj()):this.Jj(t),c):(c=tM(this,e),this.Mj()&&c&&(i=this.Oj(c,null),i&&i.oj()),c)},o.Xi=function(e,t){return IUn(this,e,t)},w(g3,"DelegatingNotifyingListImpl",2094),b(152,1,Wy),o.nj=function(e){return zZ(this,e)},o.oj=function(){h$(this)},o.gj=function(){return this.d},o.Kj=function(){return null},o.Rj=function(){return null},o.hj=function(e){return-1},o.ij=function(){return pqn(this)},o.jj=function(){return null},o.kj=function(){return aen(this)},o.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},o.Sj=function(){return!1},o.mj=function(e){var t,i,r,c,s,f,h,l,a,d,g;switch(this.d){case 1:case 2:switch(c=e.gj(),c){case 1:case 2:if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0}case 4:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return a=Yen(this),l=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,f=e.lj(),this.d=6,g=new S0(2),l<=f?(ve(g,this.n),ve(g,e.kj()),this.g=S(T(ye,1),Ke,28,15,[this.o=l,f+1])):(ve(g,e.kj()),ve(g,this.n),this.g=S(T(ye,1),Ke,28,15,[this.o=f,l])),this.n=g,a||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null)){for(a=Yen(this),f=e.lj(),d=u(this.g,53),r=K(ye,Ke,28,d.length+1,15,1),t=0;t>>0,t.toString(16))),r.a+=" (eventType: ",this.d){case 1:{r.a+="SET";break}case 2:{r.a+="UNSET";break}case 3:{r.a+="ADD";break}case 5:{r.a+="ADD_MANY";break}case 4:{r.a+="REMOVE";break}case 6:{r.a+="REMOVE_MANY";break}case 7:{r.a+="MOVE";break}case 8:{r.a+="REMOVING_ADAPTER";break}case 9:{r.a+="RESOLVE";break}default:{TD(r,this.d);break}}if(rUn(this)&&(r.a+=", touch: true"),r.a+=", position: ",TD(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",T6(r,this.jj()),r.a+=", feature: ",T6(r,this.Kj()),r.a+=", oldValue: ",T6(r,aen(this)),r.a+=", newValue: ",this.d==6&&O(this.g,53)){for(i=u(this.g,53),r.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new B6(this),this.a=this.j),of(this.b,e)):km(this,e)},o.Yi=function(){return!0},o.a=0,w(or,"AbstractEList/1",966),b(302,77,AB,Kb),w(or,"AbstractEList/BasicIndexOutOfBoundsException",302),b(37,1,Si,ne),o.Nb=function(e){_i(this,e)},o.Xj=function(){if(this.i.j!=this.f)throw M(new Bo)},o.Yj=function(){return ce(this)},o.Ob=function(){return this.e!=this.i.gc()},o.Pb=function(){return this.Yj()},o.Qb=function(){D5(this)},o.e=0,o.f=0,o.g=-1,w(or,"AbstractEList/EIterator",37),b(286,37,Hh,kp,oN),o.Qb=function(){D5(this)},o.Rb=function(e){OBn(this,e)},o.Zj=function(){var e;try{return e=this.d.Xb(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.$j=function(e){xRn(this,e)},o.Sb=function(){return this.e!=0},o.Tb=function(){return this.e},o.Ub=function(){return this.Zj()},o.Vb=function(){return this.e-1},o.Wb=function(e){this.$j(e)},w(or,"AbstractEList/EListIterator",286),b(355,37,Si,yp),o.Yj=function(){return Mx(this)},o.Qb=function(){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEIterator",355),b(398,286,Hh,A7,SV),o.Rb=function(e){throw M(new Pe)},o.Yj=function(){var e;try{return e=this.c.Vi(this.e),this.Xj(),this.g=this.e++,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Zj=function(){var e;try{return e=this.c.Vi(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),O(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEListIterator",398),b(2080,70,ZWn),o.Ei=function(e,t){var i,r,c,s,f,h,l,a,d,g,p;if(c=t.gc(),c!=0){for(a=u(Un(this.a,4),129),d=a==null?0:a.length,p=d+c,r=V$(this,p),g=d-e,g>0&&Ic(a,e,r,e+c,g),l=t.Kc(),f=0;fi)throw M(new Kb(e,i));return new yIn(this,e)},o.$b=function(){var e,t;++this.j,e=u(Un(this.a,4),129),t=e==null?0:e.length,gm(this,null),t$(this,t,e)},o.Hc=function(e){var t,i,r,c,s;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(r=t,c=0,s=r.length;c=i)throw M(new Kb(e,i));return t[e]},o.dd=function(e){var t,i,r;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(i=0,r=t.length;ii)throw M(new Kb(e,i));return new kIn(this,e)},o.Ti=function(e,t){var i,r,c;if(i=_Bn(this),c=i==null?0:i.length,e>=c)throw M(new Ir(vK+e+Td+c));if(t>=c)throw M(new Ir(kK+t+Td+c));return r=i[t],e!=t&&(e0&&Ic(e,0,t,0,i),t},o.Qc=function(e){var t,i,r;return t=u(Un(this.a,4),129),r=t==null?0:t.length,r>0&&(e.lengthr&&$t(e,r,null),e};var Ioe;w(or,"ArrayDelegatingEList",2080),b(1051,37,Si,jLn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.Qb=function(){D5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EIterator",1051),b(722,286,Hh,NPn,kIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.$j=function(e){xRn(this,e),this.a=u(Un(this.b.a,4),129)},o.Qb=function(){D5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EListIterator",722),b(1052,355,Si,ELn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEIterator",1052),b(723,398,Hh,$Pn,yIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEListIterator",723),b(615,302,AB,aL),w(or,"BasicEList/BasicIndexOutOfBoundsException",615),b(710,66,Ch,gX),o.bd=function(e,t){throw M(new Pe)},o.Fc=function(e){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.$b=function(){throw M(new Pe)},o._i=function(e){throw M(new Pe)},o.Kc=function(){return this.Ii()},o.ed=function(){return this.Ji()},o.fd=function(e){return this.Ki(e)},o.Ti=function(e,t){throw M(new Pe)},o.Ui=function(e,t){throw M(new Pe)},o.gd=function(e){throw M(new Pe)},o.Mc=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},w(or,"BasicEList/UnmodifiableEList",710),b(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),o.bd=function(e,t){a1e(this,e,u(t,44))},o.Fc=function(e){return cae(this,u(e,44))},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return u(L(this.c,e),136)},o.Ti=function(e,t){return u(this.c.Ti(e,t),44)},o.Ui=function(e,t){d1e(this,e,u(t,44))},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return u(this.c.gd(e),44)},o.hd=function(e,t){return Swe(this,e,u(t,44))},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.cd=function(e,t){return this.c.cd(e,t)},o.Gc=function(e){return this.c.Gc(e)},o.$b=function(){this.c.$b()},o.Hc=function(e){return this.c.Hc(e)},o.Ic=function(e){return Mk(this.c,e)},o._j=function(){var e,t,i;if(this.d==null){for(this.d=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),136),uA(this,e);this.e=i}},o.Fb=function(e){return sSn(this,e)},o.Hb=function(){return zQ(this.c)},o.dd=function(e){return this.c.dd(e)},o.ak=function(){this.c=new dyn(this)},o.dc=function(){return this.f==0},o.Kc=function(){return this.c.Kc()},o.ed=function(){return this.c.ed()},o.fd=function(e){return this.c.fd(e)},o.bk=function(){return uk(this)},o.ck=function(e,t,i){return new ySn(e,t,i)},o.dk=function(){return new pvn},o.Mc=function(e){return V$n(this,e)},o.gc=function(){return this.f},o.kd=function(e,t){return new Jl(this.c,e,t)},o.Pc=function(){return this.c.Pc()},o.Qc=function(e){return this.c.Qc(e)},o.Ib=function(){return KY(this.c)},o.e=0,o.f=0,w(or,"BasicEMap",721),b(1046,66,Ch,dyn),o.Mi=function(e,t){Ufe(this,u(t,136))},o.Pi=function(e,t,i){var r;++(r=this,u(t,136),r).a.e},o.Qi=function(e,t){Gfe(this,u(t,136))},o.Ri=function(e,t,i){U1e(this,u(t,136),u(i,136))},o.Oi=function(e,t){_xn(this.a)},w(or,"BasicEMap/1",1046),b(1047,66,Ch,pvn),o.aj=function(e){return K(DNe,nJn,621,e,0,1)},w(or,"BasicEMap/2",1047),b(1048,Rf,Lu,byn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return wx(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Jjn(this.a)},o.Mc=function(e){var t;return t=this.a.f,VT(this.a,e),this.a.f!=t},o.gc=function(){return this.a.f},w(or,"BasicEMap/3",1048),b(1049,31,pw,wyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return Fqn(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Qjn(this.a)},o.gc=function(){return this.a.f},w(or,"BasicEMap/4",1049),b(1050,Rf,Lu,gyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){var t,i,r,c,s,f,h,l,a;if(this.a.f>0&&O(e,44)&&(this.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(this.a,c),t=this.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f"+this.c},o.a=0;var DNe=w(or,"BasicEMap/EntryImpl",621);b(546,1,{},CE),w(or,"BasicEMap/View",546);var aE;b(783,1,{}),o.Fb=function(e){return Wnn((Dn(),sr),e)},o.Hb=function(){return rY((Dn(),sr))},o.Ib=function(){return ra((Dn(),sr))},w(or,"ECollections/BasicEmptyUnmodifiableEList",783),b(1348,1,Hh,mvn),o.Nb=function(e){_i(this,e)},o.Rb=function(e){throw M(new Pe)},o.Ob=function(){return!1},o.Sb=function(){return!1},o.Pb=function(){throw M(new nc)},o.Tb=function(){return 0},o.Ub=function(){throw M(new nc)},o.Vb=function(){return-1},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"ECollections/BasicEmptyUnmodifiableEList/1",1348),b(1346,783,{20:1,16:1,15:1,61:1},ujn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),S5(sr,e)},w(or,"ECollections/EmptyUnmodifiableEList",1346),b(1347,783,{20:1,16:1,15:1,61:1,597:1},ojn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),S5(sr,e)},o.bk=function(){return Dn(),Dn(),Wh},w(or,"ECollections/EmptyUnmodifiableEMap",1347);var xdn=Nt(or,"Enumerator"),yO;b(288,1,{288:1},jF),o.Fb=function(e){var t;return this===e?!0:O(e,288)?(t=u(e,288),this.f==t.f&&Ube(this.i,t.i)&&WL(this.a,this.f&256?t.f&256?t.a:null:t.f&256?null:t.a)&&WL(this.d,t.d)&&WL(this.g,t.g)&&WL(this.e,t.e)&&b9e(this,t)):!1},o.Hb=function(){return this.f},o.Ib=function(){return gUn(this)},o.f=0;var Ooe=0,Doe=0,Loe=0,Noe=0,Fdn=0,Bdn=0,Rdn=0,Kdn=0,_dn=0,$oe,N9=0,$9=0,xoe=0,Foe=0,jO,Hdn;w(or,"URI",288),b(1121,45,Zg,sjn),o.zc=function(e,t){return u(Dr(this,Oe(e),u(t,288)),288)},w(or,"URI/URICache",1121),b(506,66,Ch,avn,sM),o.Si=function(){return!0},w(or,"UniqueEList",506),b(590,63,Pl,eT),w(or,"WrappedException",590);var He=Nt(ts,iJn),Zw=Nt(ts,rJn),ku=Nt(ts,cJn),ng=Nt(ts,uJn),Ef=Nt(ts,oJn),Ts=Nt(ts,"EClass"),EU=Nt(ts,"EDataType"),Boe;b(1233,45,Zg,fjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var EO=Nt(ts,"EEnum"),Bl=Nt(ts,sJn),jr=Nt(ts,fJn),As=Nt(ts,hJn),Ss,yb=Nt(ts,lJn),eg=Nt(ts,aJn);b(1042,1,{},lvn),o.Ib=function(){return"NIL"},w(ts,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var Roe;b(1041,45,Zg,hjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var fu=Nt(ts,dJn),R3=Nt(ts,"EValidator/PatternMatcher"),qdn,Udn,Hn,A1,tg,Da,Koe,_oe,Hoe,La,S1,Na,jb,Yf,qoe,Uoe,Ps,P1,Goe,I1,ig,q2,ar,zoe,Xoe,Eb,CO=Nt(Tt,"FeatureMap/Entry");b(545,1,{76:1},MC),o.Lk=function(){return this.a},o.md=function(){return this.b},w(qn,"BasicEObjectImpl/1",545),b(1040,1,TK,DMn),o.Fk=function(e){return YN(this.a,this.b,e)},o.Qj=function(){return bOn(this.a,this.b)},o.Wb=function(e){rJ(this.a,this.b,e)},o.Gk=function(){_we(this.a,this.b)},w(qn,"BasicEObjectImpl/4",1040),b(2081,1,{114:1}),o.Mk=function(e){this.e=e==0?Voe:K(ki,Fn,1,e,5,1)},o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Nk=function(){return this.c},o.Ok=function(){throw M(new Pe)},o.Pk=function(){throw M(new Pe)},o.Qk=function(){return this.d},o.Rk=function(){return this.e!=null},o.Sk=function(e){this.c=e},o.Tk=function(e){throw M(new Pe)},o.Uk=function(e){throw M(new Pe)},o.Vk=function(e){this.d=e};var Voe;w(qn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),b(192,2081,{114:1},cf),o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},w(qn,"BasicEObjectImpl/EPropertiesHolderImpl",192),b(516,99,bWn,ME),o.uh=function(){return this.f},o.zh=function(){return this.k},o.Bh=function(e,t){this.g=e,this.i=t},o.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},o.Fh=function(){return this.i},o.wh=function(){return(this.j&1)!=0},o.Ph=function(){return this.g},o.Vh=function(){return(this.j&4)!=0},o.$h=function(){return!this.k&&(this.k=new cf),this.k},o.ci=function(e){this.$h().Sk(e),e?this.j|=2:this.j&=-3},o.ei=function(e){this.$h().Uk(e),e?this.j|=4:this.j&=-5},o.ii=function(){return(G1(),Hn).S},o.i=0,o.j=1,w(qn,"EObjectImpl",516),b(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},ZV),o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Dh=function(){return this.d},o.Ih=function(e){return Ot(this.d,e)},o.Kh=function(){return this.d},o.Oh=function(){return this.e!=null},o.$h=function(){return!this.k&&(this.k=new vvn),this.k},o.ci=function(e){this.d=e},o.hi=function(){var e;return this.e==null&&(e=se(this.d),this.e=e==0?Woe:K(ki,Fn,1,e,5,1)),this},o.ji=function(){return 0};var Woe;w(qn,"DynamicEObjectImpl",798),b(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},zSn),o.Fb=function(e){return this===e},o.Hb=function(){return l0(this)},o.ci=function(e){this.d=e,this.b=oy(e,"key"),this.c=oy(e,v8)},o.Bi=function(){var e;return this.a==-1&&(e=l$(this,this.b),this.a=e==null?0:mt(e)),this.a},o.ld=function(){return l$(this,this.b)},o.md=function(){return l$(this,this.c)},o.Ci=function(e){this.a=e},o.Di=function(e){rJ(this,this.b,e)},o.nd=function(e){var t;return t=l$(this,this.c),rJ(this,this.c,e),t},o.a=0,w(qn,"DynamicEObjectImpl/BasicEMapEntry",1522),b(1523,1,{114:1},vvn),o.Mk=function(e){throw M(new Pe)},o.li=function(e){throw M(new Pe)},o.mi=function(e,t){throw M(new Pe)},o.ni=function(e){throw M(new Pe)},o.Nk=function(){throw M(new Pe)},o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Qk=function(){return this.c},o.Rk=function(){throw M(new Pe)},o.Sk=function(e){throw M(new Pe)},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},o.Vk=function(e){this.c=e},w(qn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),b(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},tG),o.Ah=function(e){return PZ(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.d;case 2:return i?(!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b):(!this.b&&(this.b=new lo((On(),ar),pc,this)),uk(this.b));case 3:return vOn(this);case 4:return!this.a&&(this.a=new ti(Ia,this,4)),this.a;case 5:return!this.c&&(this.c=new jg(Ia,this,5)),this.c}return zo(this,e-se((On(),A1)),$n((r=u(Un(this,16),29),r||A1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 3:return this.Cb&&(i=(c=this.Db>>16,c>=0?PZ(this,i):this.Cb.Th(this,-1-c,null,i))),wW(this,u(e,155),i)}return s=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),s.wk().zk(this,iu(this),t-se((On(),A1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 2:return!this.b&&(this.b=new lo((On(),ar),pc,this)),UC(this.b,e,i);case 3:return wW(this,null,i);case 4:return!this.a&&(this.a=new ti(Ia,this,4)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),A1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!vOn(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return Uo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:Obe(this,Oe(t));return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),TT(this.b,t);return;case 3:rqn(this,u(t,155));return;case 4:!this.a&&(this.a=new ti(Ia,this,4)),me(this.a),!this.a&&(this.a=new ti(Ia,this,4)),Bt(this.a,u(t,16));return;case 5:!this.c&&(this.c=new jg(Ia,this,5)),me(this.c),!this.c&&(this.c=new jg(Ia,this,5)),Bt(this.c,u(t,16));return}Jo(this,e-se((On(),A1)),$n((i=u(Un(this,16),29),i||A1),e),t)},o.ii=function(){return On(),A1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:IQ(this,null);return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b.c.$b();return;case 3:rqn(this,null);return;case 4:!this.a&&(this.a=new ti(Ia,this,4)),me(this.a);return;case 5:!this.c&&(this.c=new jg(Ia,this,5)),me(this.c);return}Wo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.Ib=function(){return sBn(this)},o.d=null,w(qn,"EAnnotationImpl",519),b(141,721,Ucn,Iu),o.Gi=function(e,t){Wle(this,e,u(t,44))},o.Wk=function(e,t){return Qae(this,u(e,44),t)},o.$i=function(e){return u(u(this.c,71).$i(e),136)},o.Ii=function(){return u(this.c,71).Ii()},o.Ji=function(){return u(this.c,71).Ji()},o.Ki=function(e){return u(this.c,71).Ki(e)},o.Xk=function(e,t){return UC(this,e,t)},o.Fk=function(e){return u(this.c,79).Fk(e)},o.ak=function(){},o.Qj=function(){return u(this.c,79).Qj()},o.ck=function(e,t,i){var r;return r=u(jo(this.b).wi().si(this.b),136),r.Ci(e),r.Di(t),r.nd(i),r},o.dk=function(){return new BG(this)},o.Wb=function(e){TT(this,e)},o.Gk=function(){u(this.c,79).Gk()},w(Tt,"EcoreEMap",141),b(165,141,Ucn,lo),o._j=function(){var e,t,i,r,c,s;if(this.d==null){for(s=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.c.Kc();i.e!=i.i.gc();)t=u(i.Yj(),136),r=t.Bi(),c=(r&et)%s.length,e=s[c],!e&&(e=s[c]=new BG(this)),e.Fc(t);this.d=s}},w(qn,"EAnnotationImpl/1",165),b(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Xoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){ws(this),this.Bb|=1},o.Hk=function(){return ws(this)},o.Ik=function(){return this.t},o.Jk=function(){var e;return e=this.t,e>1||e==-1},o.Si=function(){return(this.Bb&512)!=0},o.Yk=function(e,t){return EY(this,e,t)},o.Zk=function(e){Zb(this,e)},o.Ib=function(){return Knn(this)},o.s=0,o.t=1,w(qn,"ETypedElementImpl",292),b(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),o.Ah=function(e){return QRn(this,e)},o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this)}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 17:return this.Cb&&(i=(c=this.Db>>16,c>=0?QRn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,17,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 17:return So(this,null,17,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),zoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.pk=function(){return this.f},o.ik=function(){return Tm(this)},o.qk=function(){return Gb(this)},o.uk=function(){return null},o.$k=function(){return this.k},o.Lj=function(){return this.n},o.vk=function(){return bA(this)},o.wk=function(){var e,t,i,r,c,s,f,h,l;return this.p||(i=Gb(this),(i.i==null&&bh(i),i.i).length,r=this.uk(),r&&se(Gb(r)),c=ws(this),f=c.kk(),e=f?f.i&1?f==so?Gt:f==ye?Gi:f==cg?sv:f==Pi?si:f==xa?tb:f==X2?ib:f==Fu?p3:I8:f:null,t=Tm(this),h=c.ik(),G5e(this),this.Bb&wh&&((s=xZ((Du(),zi),i))&&s!=this||(s=$p(Lr(zi,this))))?this.p=new NMn(this,s):this.Jk()?this.al()?r?this.Bb&$u?e?this.bl()?this.p=new Za(47,e,this,r):this.p=new Za(5,e,this,r):this.bl()?this.p=new rd(46,this,r):this.p=new rd(4,this,r):e?this.bl()?this.p=new Za(49,e,this,r):this.p=new Za(7,e,this,r):this.bl()?this.p=new rd(48,this,r):this.p=new rd(6,this,r):this.Bb&$u?e?e==Pd?this.p=new Xl(50,Soe,this):this.bl()?this.p=new Xl(43,e,this):this.p=new Xl(1,e,this):this.bl()?this.p=new Wl(42,this):this.p=new Wl(0,this):e?e==Pd?this.p=new Xl(41,Soe,this):this.bl()?this.p=new Xl(45,e,this):this.p=new Xl(3,e,this):this.bl()?this.p=new Wl(44,this):this.p=new Wl(2,this):O(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&512?this.Bb&$u?e?this.p=new Xl(9,e,this):this.p=new Wl(8,this):e?this.p=new Xl(11,e,this):this.p=new Wl(10,this):this.Bb&$u?e?this.p=new Xl(13,e,this):this.p=new Wl(12,this):e?this.p=new Xl(15,e,this):this.p=new Wl(14,this):r?(l=r.t,l>1||l==-1?this.bl()?this.Bb&$u?e?this.p=new Za(25,e,this,r):this.p=new rd(24,this,r):e?this.p=new Za(27,e,this,r):this.p=new rd(26,this,r):this.Bb&$u?e?this.p=new Za(29,e,this,r):this.p=new rd(28,this,r):e?this.p=new Za(31,e,this,r):this.p=new rd(30,this,r):this.bl()?this.Bb&$u?e?this.p=new Za(33,e,this,r):this.p=new rd(32,this,r):e?this.p=new Za(35,e,this,r):this.p=new rd(34,this,r):this.Bb&$u?e?this.p=new Za(37,e,this,r):this.p=new rd(36,this,r):e?this.p=new Za(39,e,this,r):this.p=new rd(38,this,r)):this.bl()?this.Bb&$u?e?this.p=new Xl(17,e,this):this.p=new Wl(16,this):e?this.p=new Xl(19,e,this):this.p=new Wl(18,this):this.Bb&$u?e?this.p=new Xl(21,e,this):this.p=new Wl(20,this):e?this.p=new Xl(23,e,this):this.p=new Wl(22,this):this._k()?this.bl()?this.p=new jSn(u(c,29),this,r):this.p=new tJ(u(c,29),this,r):O(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&$u?e?this.p=new yPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==xa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==X2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new NIn(u(c,156),t,h,this):e?this.p=new kPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==xa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==X2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new LIn(u(c,156),t,h,this):this.al()?r?this.Bb&$u?this.bl()?this.p=new CSn(u(c,29),this,r):this.p=new _V(u(c,29),this,r):this.bl()?this.p=new ESn(u(c,29),this,r):this.p=new HL(u(c,29),this,r):this.Bb&$u?this.bl()?this.p=new kAn(u(c,29),this):this.p=new eV(u(c,29),this):this.bl()?this.p=new vAn(u(c,29),this):this.p=new PL(u(c,29),this):this.bl()?r?this.Bb&$u?this.p=new MSn(u(c,29),this,r):this.p=new RV(u(c,29),this,r):this.Bb&$u?this.p=new yAn(u(c,29),this):this.p=new tV(u(c,29),this):r?this.Bb&$u?this.p=new TSn(u(c,29),this,r):this.p=new KV(u(c,29),this,r):this.Bb&$u?this.p=new jAn(u(c,29),this):this.p=new oM(u(c,29),this)),this.p},o.rk=function(){return(this.Bb&Us)!=0},o._k=function(){return!1},o.al=function(){return!1},o.sk=function(){return(this.Bb&wh)!=0},o.xk=function(){return a$(this)},o.bl=function(){return!1},o.tk=function(){return(this.Bb&$u)!=0},o.cl=function(e){this.k=e},o.ui=function(e){FN(this,e)},o.Ib=function(){return $A(this)},o.e=!1,o.n=0,w(qn,"EStructuralFeatureImpl",462),b(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},fD),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!Nnn(this);case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return t?x$(this):FLn(this)}return zo(this,e-se((On(),tg)),$n((r=u(Un(this,16),29),r||tg),e),t,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return Nnn(this);case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return!!FLn(this)}return Uo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:nEn(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:sx(this,on(un(t)));return}Jo(this,e-se((On(),tg)),$n((i=u(Un(this,16),29),i||tg),e),t)},o.ii=function(){return On(),tg},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.b=0,Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:sx(this,!1);return}Wo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.pi=function(){x$(this),P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.Jk=function(){return Nnn(this)},o.Yk=function(e,t){return this.b=0,this.a=null,EY(this,e,t)},o.Zk=function(e){nEn(this,e)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (iD: ",ql(e,(this.Bb&kc)!=0),e.a+=")",e.a)},o.b=0,w(qn,"EAttributeImpl",331),b(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),o.dl=function(e){return e.Dh()==this},o.Ah=function(e){return _x(this,e)},o.Bh=function(e,t){this.w=null,this.Db=t<<16|this.Db&255,this.Cb=e},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return this.ik();case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Koe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.hk=function(){var e;return this.G==-1&&(this.G=(e=jo(this),e?f1(e.vi(),this):-1)),this.G},o.ik=function(){return null},o.jk=function(){return jo(this)},o.el=function(){return this.v},o.kk=function(){return K0(this)},o.lk=function(){return this.D!=null?this.D:this.B},o.mk=function(){return this.F},o.fk=function(e){return OF(this,e)},o.fl=function(e){this.v=e},o.gl=function(e){yxn(this,e)},o.hl=function(e){this.C=e},o.ui=function(e){xM(this,e)},o.Ib=function(){return UT(this)},o.C=null,o.D=null,o.G=-1,w(qn,"EClassifierImpl",364),b(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},uG),o.dl=function(e){return Nae(this,e.Dh())},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return null;case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A;case 8:return _n(),!!(this.Bb&256);case 9:return _n(),!!(this.Bb&512);case 10:return Hr(this);case 11:return!this.q&&(this.q=new q(As,this,11,10)),this.q;case 12:return Wg(this);case 13:return X5(this);case 14:return X5(this),this.r;case 15:return Wg(this),this.k;case 16:return Enn(this);case 17:return $F(this);case 18:return bh(this);case 19:return TA(this);case 20:return Wg(this),this.o;case 21:return!this.s&&(this.s=new q(ku,this,21,17)),this.s;case 22:return Sc(this);case 23:return yF(this)}return zo(this,e-se((On(),Da)),$n((r=u(Un(this,16),29),r||Da),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 11:return!this.q&&(this.q=new q(As,this,11,10)),Xc(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),Xc(this.s,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),Da)),t),69),s.wk().zk(this,iu(this),t-se((On(),Da)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 11:return!this.q&&(this.q=new q(As,this,11,10)),cr(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),cr(this.s,e,i);case 22:return cr(Sc(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Da)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Da)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Sc(this.u.a).i!=0&&!(this.n&&Ix(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return Wg(this).i!=0;case 13:return X5(this).i!=0;case 14:return X5(this),this.r.i!=0;case 15:return Wg(this),this.k.i!=0;case 16:return Enn(this).i!=0;case 17:return $F(this).i!=0;case 18:return bh(this).i!=0;case 19:return TA(this).i!=0;case 20:return Wg(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&Ix(this.n);case 23:return yF(this).i!=0}return Uo(this,e-se((On(),Da)),$n((t=u(Un(this,16),29),t||Da),e))},o.Zh=function(e){var t;return t=this.i==null||this.q&&this.q.i!=0?null:oy(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:CY(this,on(un(t)));return;case 9:MY(this,on(un(t)));return;case 10:J5(Hr(this)),Bt(Hr(this),u(t,16));return;case 11:!this.q&&(this.q=new q(As,this,11,10)),me(this.q),!this.q&&(this.q=new q(As,this,11,10)),Bt(this.q,u(t,16));return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s),!this.s&&(this.s=new q(ku,this,21,17)),Bt(this.s,u(t,16));return;case 22:me(Sc(this)),Bt(Sc(this),u(t,16));return}Jo(this,e-se((On(),Da)),$n((i=u(Un(this,16),29),i||Da),e),t)},o.ii=function(){return On(),Da},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:CY(this,!1);return;case 9:MY(this,!1);return;case 10:this.u&&J5(this.u);return;case 11:!this.q&&(this.q=new q(As,this,11,10)),me(this.q);return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s);return;case 22:this.n&&me(this.n);return}Wo(this,e-se((On(),Da)),$n((t=u(Un(this,16),29),t||Da),e))},o.pi=function(){var e,t;if(Wg(this),X5(this),Enn(this),$F(this),bh(this),TA(this),yF(this),t5(ube(Zu(this))),this.s)for(e=0,t=this.s.i;e=0;--t)L(this,t);return WY(this,e)},o.Gk=function(){me(this)},o.Zi=function(e,t){return q$n(this,e,t)},w(Tt,"EcoreEList",632),b(505,632,Qr,R7),o.Li=function(){return!1},o.Lj=function(){return this.c},o.Mj=function(){return!1},o.ol=function(){return!0},o.Si=function(){return!0},o.Wi=function(e,t){return t},o.Yi=function(){return!1},o.c=0,w(Tt,"EObjectEList",505),b(83,505,Qr,ti),o.Mj=function(){return!0},o.ml=function(){return!1},o.al=function(){return!0},w(Tt,"EObjectContainmentEList",83),b(555,83,Qr,$C),o.Ni=function(){this.b=!0},o.Qj=function(){return this.b},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.b,this.b=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.b=!1},o.b=!1,w(Tt,"EObjectContainmentEList/Unsettable",555),b(1161,555,Qr,mPn),o.Ti=function(e,t){var i,r;return i=u(y5(this,e,t),89),fo(this.e)&&t4(this,new ok(this.a,7,(On(),_oe),Y(t),(r=i.c,O(r,90)?u(r,29):Ps),e)),i},o.Uj=function(e,t){return A8e(this,u(e,89),t)},o.Vj=function(e,t){return T8e(this,u(e,89),t)},o.Wj=function(e,t,i){return Ike(this,u(e,89),u(t,89),i)},o.Ij=function(e,t,i,r,c){switch(e){case 3:return J6(this,e,t,i,r,this.i>1);case 5:return J6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ix(this)},o.Gk=function(){me(this)},w(qn,"EClassImpl/1",1161),b(1175,1174,Hcn),o.dj=function(e){var t,i,r,c,s,f,h;if(i=e.gj(),i!=8){if(r=s9e(e),r==0)switch(i){case 1:case 9:{h=e.kj(),h!=null&&(t=Zu(u(h,482)),!t.c&&(t.c=new W3),rT(t.c,e.jj())),f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 3:{f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 5:{if(f=e.ij(),f!=null)for(s=u(f,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29)));break}case 4:{h=e.kj(),h!=null&&(c=u(h,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj())));break}case 6:{if(h=e.kj(),h!=null)for(s=u(h,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj()));break}}this.ql(r)}},o.ql=function(e){Uqn(this,e)},o.b=63,w(qn,"ESuperAdapter",1175),b(1176,1175,Hcn,myn),o.ql=function(e){hw(this,e)},w(qn,"EClassImpl/10",1176),b(1165,710,Qr),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Nk(this,e,t)},o.Hi=function(e){ik(this,e)},o.$i=function(e){return nQ(this,e)},o.Xi=function(e,t){return d$(this,e,t)},o.Wk=function(e,t){throw M(new Pe)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new A7(this)},o.Ki=function(e){return vk(this,e)},o.Xk=function(e,t){throw M(new Pe)},o.Fk=function(e){return this},o.Qj=function(){return this.i!=0},o.Wb=function(e){throw M(new Pe)},o.Gk=function(){throw M(new Pe)},w(Tt,"EcoreEList/UnmodifiableEList",1165),b(328,1165,Qr,gg),o.Yi=function(){return!1},w(Tt,"EcoreEList/UnmodifiableEList/FastCompare",328),b(1168,328,Qr,bFn),o.dd=function(e){var t,i,r;if(O(e,179)&&(t=u(e,179),i=t.Lj(),i!=-1)){for(r=this.i;i4)if(this.fk(e)){if(this.al()){if(r=u(e,54),i=r.Eh(),h=i==this.b&&(this.ml()?r.yh(r.Fh(),u($n(au(this.b),this.Lj()).Hk(),29).kk())==br(u($n(au(this.b),this.Lj()),19)).n:-1-r.Fh()==this.Lj()),this.nl()&&!h&&!i&&r.Jh()){for(c=0;c1||r==-1)):!1},o.ml=function(){var e,t,i;return t=$n(au(this.b),this.Lj()),O(t,102)?(e=u(t,19),i=br(e),!!i):!1},o.nl=function(){var e,t;return t=$n(au(this.b),this.Lj()),O(t,102)?(e=u(t,19),(e.Bb&hr)!=0):!1},o.dd=function(e){var t,i,r,c;if(r=this.zj(e),r>=0)return r;if(this.ol()){for(i=0,c=this.Ej();i=0;--e)py(this,e,this.xj(e));return this.Fj()},o.Qc=function(e){var t;if(this.nl())for(t=this.Ej()-1;t>=0;--t)py(this,t,this.xj(t));return this.Gj(e)},o.Gk=function(){J5(this)},o.Zi=function(e,t){return kNn(this,e,t)},w(Tt,"DelegatingEcoreEList",756),b(1171,756,zcn,NAn),o.qj=function(e,t){rae(this,e,u(t,29))},o.rj=function(e){zle(this,u(e,29))},o.xj=function(e){var t,i;return t=u(L(Sc(this.a),e),89),i=t.c,O(i,90)?u(i,29):(On(),Ps)},o.Cj=function(e){var t,i;return t=u(dw(Sc(this.a),e),89),i=t.c,O(i,90)?u(i,29):(On(),Ps)},o.Dj=function(e,t){return e7e(this,e,u(t,29))},o.Li=function(){return!1},o.Ij=function(e,t,i,r,c){return null},o.sj=function(){return new yyn(this)},o.tj=function(){me(Sc(this.a))},o.uj=function(e){return hBn(this,e)},o.vj=function(e){var t,i;for(i=e.Kc();i.Ob();)if(t=i.Pb(),!hBn(this,t))return!1;return!0},o.wj=function(e){var t,i,r;if(O(e,15)&&(r=u(e,15),r.gc()==Sc(this.a).i)){for(t=r.Kc(),i=new ne(this);t.Ob();)if(x(t.Pb())!==x(ce(i)))return!1;return!0}return!1},o.yj=function(){var e,t,i,r,c;for(i=1,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ce(t),89),r=(c=e.c,O(c,90)?u(c,29):(On(),Ps)),i=31*i+(r?l0(r):0);return i},o.zj=function(e){var t,i,r,c;for(r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();){if(t=u(ce(i),89),x(e)===x((c=t.c,O(c,90)?u(c,29):(On(),Ps))))return r;++r}return-1},o.Aj=function(){return Sc(this.a).i==0},o.Bj=function(){return null},o.Ej=function(){return Sc(this.a).i},o.Fj=function(){var e,t,i,r,c,s;for(s=Sc(this.a).i,c=K(ki,Fn,1,s,5,1),i=0,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ce(t),89),c[i++]=(r=e.c,O(r,90)?u(r,29):(On(),Ps));return c},o.Gj=function(e){var t,i,r,c,s,f,h;for(h=Sc(this.a).i,e.lengthh&&$t(e,h,null),r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();)t=u(ce(i),89),s=(f=t.c,O(f,90)?u(f,29):(On(),Ps)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=Sc(this.a),t=0,r=Sc(this.a).i;t>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),Xc(this.a,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),s.wk().zk(this,iu(this),t-se((On(),La)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),c.wk().Ak(this,iu(this),t-se((On(),La)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!!aY(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:BT(this,on(un(t)));return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a),!this.a&&(this.a=new q(Bl,this,9,5)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),La)),$n((i=u(Un(this,16),29),i||La),e),t)},o.ii=function(){return On(),La},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:BT(this,!0);return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a);return}Wo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.pi=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?u(this.Cb,685):null}return zo(this,e-se((On(),S1)),$n((r=u(Un(this,16),29),r||S1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 5:return this.Cb&&(i=(c=this.Db>>16,c>=0?uKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,5,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),s.wk().zk(this,iu(this),t-se((On(),S1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 5:return So(this,null,5,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),S1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,685))}return Uo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:v$(this,u(t,17).a);return;case 3:iHn(this,u(t,2039));return;case 4:y$(this,Oe(t));return}Jo(this,e-se((On(),S1)),$n((i=u(Un(this,16),29),i||S1),e),t)},o.ii=function(){return On(),S1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:v$(this,0);return;case 3:iHn(this,null);return;case 4:y$(this,null);return}Wo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.Ib=function(){var e;return e=this.c,e??this.zb},o.b=null,o.c=null,o.d=0,w(qn,"EEnumLiteralImpl",582);var LNe=Nt(qn,"EFactoryImpl/InternalEDateTimeFormat");b(499,1,{2114:1},W9),w(qn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),b(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},Jd),o.Ch=function(e,t,i){var r;return i=So(this,e,t,i),this.e&&O(e,179)&&(r=MA(this,this.e),r!=this.c&&(i=Nm(this,r,i))),i},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new ti(jr,this,1)),this.d;case 2:return t?BA(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?Lx(this):this.a}return zo(this,e-se((On(),jb)),$n((r=u(Un(this,16),29),r||jb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return QFn(this,null,i);case 1:return!this.d&&(this.d=new ti(jr,this,1)),cr(this.d,e,i);case 3:return YFn(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),jb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),jb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return Uo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.bi=function(e,t){var i;switch(e){case 0:MKn(this,u(t,89));return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d),!this.d&&(this.d=new ti(jr,this,1)),Bt(this.d,u(t,16));return;case 3:UZ(this,u(t,89));return;case 4:fnn(this,u(t,850));return;case 5:K4(this,u(t,142));return}Jo(this,e-se((On(),jb)),$n((i=u(Un(this,16),29),i||jb),e),t)},o.ii=function(){return On(),jb},o.ki=function(e){var t;switch(e){case 0:MKn(this,null);return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d);return;case 3:UZ(this,null);return;case 4:fnn(this,null);return;case 5:K4(this,null);return}Wo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.Ib=function(){var e;return e=new mo(_s(this)),e.a+=" (expression: ",_F(this,e),e.a+=")",e.a};var Gdn;w(qn,"EGenericTypeImpl",248),b(2067,2062,zS),o.Gi=function(e,t){OAn(this,e,t)},o.Wk=function(e,t){return OAn(this,this.gc(),e),t},o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.Ji()},o.pj=function(){return new Myn(this)},o.Ji=function(){return this.Ki(0)},o.Ki=function(e){return this.pj().fd(e)},o.Xk=function(e,t){return iw(this,e,!0),t},o.Ti=function(e,t){var i,r;return r=Ux(this,t),i=this.fd(e),i.Rb(r),r},o.Ui=function(e,t){var i;iw(this,t,!0),i=this.fd(e),i.Rb(t)},w(Tt,"AbstractSequentialInternalEList",2067),b(496,2067,zS,T7),o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.pj=function(){return new JMn(this.a,this.b)},o.Ji=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.Ki=function(e){var t,i;if(this.b==null){if(e<0||e>1)throw M(new Ir(k8+e+", size=0"));return Gl(),Gl(),dE}for(i=this.sl(),t=0;t0;)if(t=this.c[--this.d],(!this.e||t.pk()!=qv||t.Lj()!=0)&&(!this.vl()||this.b.Xh(t))){if(s=this.b.Nh(t,this.ul()),this.f=(dr(),u(t,69).xk()),this.f||t.Jk()){if(this.ul()?(r=u(s,15),this.k=r):(r=u(s,71),this.k=this.j=r),O(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?v_n(this,this.p):I_n(this))return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}else if(s!=null)return this.k=null,this.p=null,i=s,this.i=i,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}},o.Pb=function(){return PT(this)},o.Tb=function(){return this.a},o.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw M(new nc)},o.Vb=function(){return this.a-1},o.Qb=function(){throw M(new Pe)},o.ul=function(){return!1},o.Wb=function(e){throw M(new Pe)},o.vl=function(){return!0},o.a=0,o.d=0,o.f=!1,o.g=0,o.n=0,o.o=0;var dE;w(Tt,"EContentsEList/FeatureIteratorImpl",287),b(711,287,XS,nV),o.ul=function(){return!0},w(Tt,"EContentsEList/ResolvingFeatureIteratorImpl",711),b(1178,711,XS,gAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/1",1178),b(1179,287,XS,pAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/2",1179),b(39,152,Wy,Vb,UN,Ci,c$,ml,Bs,dQ,JOn,bQ,QOn,OJ,YOn,pQ,ZOn,DJ,nDn,wQ,eDn,q6,ok,MN,gQ,tDn,LJ,iDn),o.Kj=function(){return JJ(this)},o.Rj=function(){var e;return e=JJ(this),e?e.ik():null},o.hj=function(e){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,e)},o.jj=function(){return this.c},o.Sj=function(){var e;return e=JJ(this),e?e.tk():!1},o.b=-1,w(qn,"ENotificationImpl",39),b(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},hD),o.Ah=function(e){return fKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,29):null;case 11:return!this.d&&(this.d=new Tu(fu,this,11)),this.d;case 12:return!this.c&&(this.c=new q(yb,this,12,10)),this.c;case 13:return!this.a&&(this.a=new O7(this,this)),this.a;case 14:return no(this)}return zo(this,e-se((On(),P1)),$n((r=u(Un(this,16),29),r||P1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?fKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),Xc(this.c,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),s.wk().zk(this,iu(this),t-se((On(),P1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i);case 11:return!this.d&&(this.d=new Tu(fu,this,11)),cr(this.d,e,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),cr(this.c,e,i);case 14:return cr(no(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),P1)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&no(this.a.a).i!=0&&!(this.b&&Ox(this.b));case 14:return!!this.b&&Ox(this.b)}return Uo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d),!this.d&&(this.d=new Tu(fu,this,11)),Bt(this.d,u(t,16));return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c),!this.c&&(this.c=new q(yb,this,12,10)),Bt(this.c,u(t,16));return;case 13:!this.a&&(this.a=new O7(this,this)),J5(this.a),!this.a&&(this.a=new O7(this,this)),Bt(this.a,u(t,16));return;case 14:me(no(this)),Bt(no(this),u(t,16));return}Jo(this,e-se((On(),P1)),$n((i=u(Un(this,16),29),i||P1),e),t)},o.ii=function(){return On(),P1},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d);return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c);return;case 13:this.a&&J5(this.a);return;case 14:this.b&&me(this.b);return}Wo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.pi=function(){var e,t;if(this.c)for(e=0,t=this.c.i;eh&&$t(e,h,null),r=0,i=new ne(no(this.a));i.e!=i.i.gc();)t=u(ce(i),89),s=(f=t.c,f||(On(),Yf)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=no(this.a),t=0,r=no(this.a).i;t1);case 5:return J6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ox(this)},o.Gk=function(){me(this)},w(qn,"EOperationImpl/2",1377),b(507,1,{2037:1,507:1},LMn),w(qn,"EPackageImpl/1",507),b(14,83,Qr,q),o.il=function(){return this.d},o.jl=function(){return this.b},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectContainmentWithInverseEList",14),b(365,14,Qr,jp),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Resolving",365),b(308,365,Qr,Hb),o.Ni=function(){this.a.tb=null},w(qn,"EPackageImpl/2",308),b(1278,1,{},qse),w(qn,"EPackageImpl/3",1278),b(733,45,Zg,tz),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},w(qn,"EPackageRegistryImpl",733),b(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},lD),o.Ah=function(e){return hKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,62):null}return zo(this,e-se((On(),ig)),$n((r=u(Un(this,16),29),r||ig),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?hKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),s.wk().zk(this,iu(this),t-se((On(),ig)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),c.wk().Ak(this,iu(this),t-se((On(),ig)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,62))}return Uo(this,e-se((On(),ig)),$n((t=u(Un(this,16),29),t||ig),e))},o.ii=function(){return On(),ig},w(qn,"EParameterImpl",518),b(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},cV),o.Lh=function(e,t,i){var r,c,s,f;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),f=this.t,f>1||f==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?ws(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Us);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return _n(),s=br(this),!!(s&&s.Bb&kc);case 20:return _n(),!!(this.Bb&hr);case 21:return t?br(this):this.b;case 22:return t?tY(this):ALn(this);case 23:return!this.a&&(this.a=new jg(ng,this,23)),this.a}return zo(this,e-se((On(),q2)),$n((r=u(Un(this,16),29),r||q2),e),t,i)},o.Wh=function(e){var t,i,r,c;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return c=this.t,c>1||c==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Us)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return r=br(this),!!r&&(r.Bb&kc)!=0;case 20:return(this.Bb&hr)==0;case 21:return!!this.b;case 22:return!!ALn(this);case 23:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),q2)),$n((t=u(Un(this,16),29),t||q2),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Ff(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:A2e(this,on(un(t)));return;case 20:NY(this,on(un(t)));return;case 21:DQ(this,u(t,19));return;case 23:!this.a&&(this.a=new jg(ng,this,23)),me(this.a),!this.a&&(this.a=new jg(ng,this,23)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),q2)),$n((i=u(Un(this,16),29),i||q2),e),t)},o.ii=function(){return On(),q2},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Ff(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:LY(this,!1),O(this.Cb,90)&&hw(Zu(u(this.Cb,90)),2);return;case 20:NY(this,!0);return;case 21:DQ(this,null);return;case 23:!this.a&&(this.a=new jg(ng,this,23)),me(this.a);return}Wo(this,e-se((On(),q2)),$n((t=u(Un(this,16),29),t||q2),e))},o.pi=function(){tY(this),P4(Lr((Du(),zi),this)),ws(this),this.Bb|=1},o.uk=function(){return br(this)},o._k=function(){var e;return e=br(this),!!e&&(e.Bb&kc)!=0},o.al=function(){return(this.Bb&kc)!=0},o.bl=function(){return(this.Bb&hr)!=0},o.Yk=function(e,t){return this.c=null,EY(this,e,t)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (containment: ",ql(e,(this.Bb&kc)!=0),e.a+=", resolveProxies: ",ql(e,(this.Bb&hr)!=0),e.a+=")",e.a)},w(qn,"EReferenceImpl",102),b(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},Mvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.md=function(){return this.c},o.Hb=function(){return l0(this)},o.Di=function(e){Dbe(this,Oe(e))},o.nd=function(e){return pbe(this,Oe(e))},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.b;case 1:return this.c}return zo(this,e-se((On(),ar)),$n((r=u(Un(this,16),29),r||ar),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return Uo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.bi=function(e,t){var i;switch(e){case 0:Lbe(this,Oe(t));return;case 1:PQ(this,Oe(t));return}Jo(this,e-se((On(),ar)),$n((i=u(Un(this,16),29),i||ar),e),t)},o.ii=function(){return On(),ar},o.ki=function(e){var t;switch(e){case 0:SQ(this,null);return;case 1:PQ(this,null);return}Wo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:t1(e)),this.a},o.Ci=function(e){this.a=e},o.Ib=function(){var e;return this.Db&64?_s(this):(e=new ls(_s(this)),e.a+=" (key: ",Er(e,this.b),e.a+=", value: ",Er(e,this.c),e.a+=")",e.a)},o.a=-1,o.b=null,o.c=null;var pc=w(qn,"EStringToStringMapEntryImpl",561),Qoe=Nt(Tt,"FeatureMap/Entry/Internal");b(576,1,VS),o.xl=function(e){return this.yl(u(e,54))},o.yl=function(e){return this.xl(e)},o.Fb=function(e){var t,i;return this===e?!0:O(e,76)?(t=u(e,76),t.Lk()==this.c?(i=this.md(),i==null?t.md()==null:rt(i,t.md())):!1):!1},o.Lk=function(){return this.c},o.Hb=function(){var e;return e=this.md(),mt(this.c)^(e==null?0:mt(e))},o.Ib=function(){var e,t;return e=this.c,t=jo(e.qk()).yi(),e.xe(),(t!=null&&t.length!=0?t+":"+e.xe():e.xe())+"="+this.md()},w(qn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),b(791,576,VS,bV),o.yl=function(e){return new bV(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return gve(this,e,this.a,t,i)},o.Al=function(e,t,i){return pve(this,e,this.a,t,i)},w(qn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),b(1350,1,{},NMn),o.yk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Yl(this.a).Fk(r)},o.zk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Pl(this.a,r,c)},o.Ak=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Ql(this.a,r,c)},o.Bk=function(e,t,i){var r;return r=u(x4(e,this.b),220),r.Yl(this.a).Qj()},o.Ck=function(e,t,i,r){var c;c=u(x4(e,this.b),220),c.Yl(this.a).Wb(r)},o.Dk=function(e,t,i){return u(x4(e,this.b),220).Yl(this.a)},o.Ek=function(e,t,i){var r;r=u(x4(e,this.b),220),r.Yl(this.a).Gk()},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),b(91,1,{},Xl,Za,Wl,rd),o.yk=function(e,t,i,r,c){var s;if(s=t.li(i),s==null&&t.mi(i,s=XA(this,e)),!c)switch(this.e){case 50:case 41:return u(s,597).bk();case 40:return u(s,220).Vl()}return s},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),f==null&&t.mi(i,f=XA(this,e)),s=u(f,71).Wk(r,c),s},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),s!=null&&(c=u(s,71).Xk(r,c)),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&u(r,79).Qj()},o.Ck=function(e,t,i,r){var c;c=u(t.li(i),79),!c&&t.mi(i,c=XA(this,e)),c.Wb(r)},o.Dk=function(e,t,i){var r,c;return c=t.li(i),c==null&&t.mi(i,c=XA(this,e)),O(c,79)?u(c,79):(r=u(t.li(i),15),new Eyn(r))},o.Ek=function(e,t,i){var r;r=u(t.li(i),79),!r&&t.mi(i,r=XA(this,e)),r.Gk()},o.b=0,o.e=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),b(512,1,{}),o.zk=function(e,t,i,r,c){throw M(new Pe)},o.Ak=function(e,t,i,r,c){throw M(new Pe)},o.Dk=function(e,t,i){return new DIn(this,e,t,i)};var rl;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),b(1367,1,TK,DIn),o.Fk=function(e){return this.a.yk(this.c,this.d,this.b,e,!0)},o.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},o.Wb=function(e){this.a.Ck(this.c,this.d,this.b,e)},o.Gk=function(){this.a.Ek(this.c,this.d,this.b)},o.b=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),b(784,512,{},tJ),o.yk=function(e,t,i,r,c){return AF(e,e.Ph(),e.Fh())==this.b?this.bl()&&r?dF(e):e.Ph():null},o.zk=function(e,t,i,r,c){var s,f;return e.Ph()&&(c=(s=e.Fh(),s>=0?e.Ah(c):e.Ph().Th(e,-1-s,null,c))),f=Ot(e.Dh(),this.e),e.Ch(r,f,c)},o.Ak=function(e,t,i,r,c){var s;return s=Ot(e.Dh(),this.e),e.Ch(null,s,c)},o.Bk=function(e,t,i){var r;return r=Ot(e.Dh(),this.e),!!e.Ph()&&e.Fh()==r},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(O(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));if(c=e.Ph(),f=Ot(e.Dh(),this.e),x(r)!==x(c)||e.Fh()!=f&&r!=null){if(mm(e,u(r,58)))throw M(new Gn(m8+e.Ib()));l=null,c&&(l=(s=e.Fh(),s>=0?e.Ah(l):e.Ph().Th(e,-1-s,null,l))),h=u(r,54),h&&(l=h.Rh(e,Ot(h.Dh(),this.b),null,l)),l=e.Ch(h,f,l),l&&l.oj()}else e.vh()&&e.wh()&&it(e,new Ci(e,1,f,r,r))},o.Ek=function(e,t,i){var r,c,s,f;r=e.Ph(),r?(f=(c=e.Fh(),c>=0?e.Ah(null):e.Ph().Th(e,-1-c,null,null)),s=Ot(e.Dh(),this.e),f=e.Ch(null,s,f),f&&f.oj()):e.vh()&&e.wh()&&it(e,new q6(e,1,this.e,null,null))},o.bl=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),b(1351,784,{},jSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),b(574,512,{}),o.yk=function(e,t,i,r,c){var s;return s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&(x(r)===x(rl)||!rt(r,this.b))},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=(s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s),r==null?this.c!=null?(t.mi(i,null),r=this.b):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r)),it(e,this.d.Cl(e,1,this.e,c,r))):r==null?this.c!=null?t.mi(i,null):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=(c=t.li(i),c==null?this.b:x(c)===x(rl)?null:c),t.ni(i),it(e,this.d.Cl(e,1,this.e,r,this.b))):t.ni(i)},o.Bl=function(e){throw M(new Nyn)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),b(f2,1,{},Tvn),o.Cl=function(e,t,i,r,c){return new q6(e,t,i,r,c)},o.Dl=function(e,t,i,r,c,s){return new MN(e,t,i,r,c,s)};var zdn,Xdn,Vdn,Wdn,Jdn,Qdn,Ydn,TU,Zdn;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",f2),b(1368,f2,{},Avn),o.Cl=function(e,t,i,r,c){return new LJ(e,t,i,on(un(r)),on(un(c)))},o.Dl=function(e,t,i,r,c,s){return new iDn(e,t,i,on(un(r)),on(un(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),b(1369,f2,{},Svn),o.Cl=function(e,t,i,r,c){return new dQ(e,t,i,u(r,222).a,u(c,222).a)},o.Dl=function(e,t,i,r,c,s){return new JOn(e,t,i,u(r,222).a,u(c,222).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),b(1370,f2,{},Pvn),o.Cl=function(e,t,i,r,c){return new bQ(e,t,i,u(r,180).a,u(c,180).a)},o.Dl=function(e,t,i,r,c,s){return new QOn(e,t,i,u(r,180).a,u(c,180).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),b(1371,f2,{},Ivn),o.Cl=function(e,t,i,r,c){return new OJ(e,t,i,$(R(r)),$(R(c)))},o.Dl=function(e,t,i,r,c,s){return new YOn(e,t,i,$(R(r)),$(R(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),b(1372,f2,{},Ovn),o.Cl=function(e,t,i,r,c){return new pQ(e,t,i,u(r,161).a,u(c,161).a)},o.Dl=function(e,t,i,r,c,s){return new ZOn(e,t,i,u(r,161).a,u(c,161).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),b(1373,f2,{},Dvn),o.Cl=function(e,t,i,r,c){return new DJ(e,t,i,u(r,17).a,u(c,17).a)},o.Dl=function(e,t,i,r,c,s){return new nDn(e,t,i,u(r,17).a,u(c,17).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),b(1374,f2,{},Lvn),o.Cl=function(e,t,i,r,c){return new wQ(e,t,i,u(r,168).a,u(c,168).a)},o.Dl=function(e,t,i,r,c,s){return new eDn(e,t,i,u(r,168).a,u(c,168).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),b(1375,f2,{},Nvn),o.Cl=function(e,t,i,r,c){return new gQ(e,t,i,u(r,191).a,u(c,191).a)},o.Dl=function(e,t,i,r,c,s){return new tDn(e,t,i,u(r,191).a,u(c,191).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),b(1353,574,{},LIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),b(1354,574,{},kPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),b(785,574,{}),o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=!0,s=t.li(i),s==null?(c=!1,s=this.b):x(s)===x(rl)&&(s=null),r==null?this.c!=null?(t.mi(i,null),r=this.b):t.mi(i,rl):(this.Bl(r),t.mi(i,r)),it(e,this.d.Dl(e,1,this.e,s,r,!c))):r==null?this.c!=null?t.mi(i,null):t.mi(i,rl):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=!0,c=t.li(i),c==null?(r=!1,c=this.b):x(c)===x(rl)&&(c=null),t.ni(i),it(e,this.d.Dl(e,2,this.e,c,this.b,r))):t.ni(i)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),b(1355,785,{},NIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),b(1356,785,{},yPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),b(410,512,{},oM),o.yk=function(e,t,i,r,c){var s,f,h,l,a;if(a=t.li(i),this.tk()&&x(a)===x(rl))return null;if(this.bl()&&r&&a!=null){if(h=u(a,54),h.Vh()&&(l=na(e,h),h!=l)){if(!OF(this.a,l))throw M(new i4(WS+wo(l)+JS+this.a+"'"));t.mi(i,a=l),this.al()&&(s=u(l,54),f=h.Th(e,this.b?Ot(h.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,null),!s.Ph()&&(f=s.Rh(e,this.b?Ot(s.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,f)),f&&f.oj()),e.vh()&&e.wh()&&it(e,new q6(e,9,this.e,h,l))}return a}else return a},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),x(f)===x(rl)&&(f=null),t.mi(i,r),this.Mj()?x(f)!==x(r)&&f!=null&&(s=u(f,54),c=s.Th(e,Ot(s.Dh(),this.b),null,c)):this.al()&&f!=null&&(c=u(f,54).Th(e,-1-Ot(e.Dh(),this.e),null,c)),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),c.nj(new q6(e,1,this.e,f,r))),c},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),x(s)===x(rl)&&(s=null),t.ni(i),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),this.tk()?c.nj(new q6(e,2,this.e,s,null)):c.nj(new q6(e,1,this.e,s,null))),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(O(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));l=t.li(i),h=l!=null,this.tk()&&x(l)===x(rl)&&(l=null),f=null,this.Mj()?x(l)!==x(r)&&(l!=null&&(c=u(l,54),f=c.Th(e,Ot(c.Dh(),this.b),null,f)),r!=null&&(c=u(r,54),f=c.Rh(e,Ot(c.Dh(),this.b),null,f))):this.al()&&x(l)!==x(r)&&(l!=null&&(f=u(l,54).Th(e,-1-Ot(e.Dh(),this.e),null,f)),r!=null&&(f=u(r,54).Rh(e,-1-Ot(e.Dh(),this.e),null,f))),r==null&&this.tk()?t.mi(i,rl):t.mi(i,r),e.vh()&&e.wh()?(s=new MN(e,1,this.e,l,r,this.tk()&&!h),f?(f.nj(s),f.oj()):it(e,s)):f&&f.oj()},o.Ek=function(e,t,i){var r,c,s,f,h;h=t.li(i),f=h!=null,this.tk()&&x(h)===x(rl)&&(h=null),s=null,h!=null&&(this.Mj()?(r=u(h,54),s=r.Th(e,Ot(r.Dh(),this.b),null,s)):this.al()&&(s=u(h,54).Th(e,-1-Ot(e.Dh(),this.e),null,s))),t.ni(i),e.vh()&&e.wh()?(c=new MN(e,this.tk()?2:1,this.e,h,null,f),s?(s.nj(c),s.oj()):it(e,c)):s&&s.oj()},o.Mj=function(){return!1},o.al=function(){return!1},o.bl=function(){return!1},o.tk=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),b(575,410,{},PL),o.al=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),b(1359,575,{},vAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),b(787,575,{},eV),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),b(1361,787,{},kAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),b(650,575,{},HL),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),b(1360,650,{},ESn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),b(788,650,{},_V),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),b(1362,788,{},CSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),b(651,410,{},tV),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),b(1363,651,{},yAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),b(789,651,{},RV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),b(1364,789,{},MSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),b(1357,410,{},jAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),b(786,410,{},KV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),b(1358,786,{},TSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),b(790,576,VS,FW),o.yl=function(e){return new FW(this.a,this.c,e)},o.md=function(){return this.b},o.zl=function(e,t,i){return b4e(this,e,this.b,i)},o.Al=function(e,t,i){return w4e(this,e,this.b,i)},w(qn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),b(1365,1,TK,Eyn),o.Fk=function(e){return this.a},o.Qj=function(){return O(this.a,97)?u(this.a,97).Qj():!this.a.dc()},o.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},o.Gk=function(){O(this.a,97)?u(this.a,97).Gk():this.a.$b()},w(qn,"EStructuralFeatureImpl/SettingMany",1365),b(1366,576,VS,VDn),o.xl=function(e){return new DL((at(),R9),this.b.ri(this.a,e))},o.md=function(){return null},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),b(652,576,VS,DL),o.xl=function(e){return new DL(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),b(403,506,Ch,W3),o.aj=function(e){return K(Ts,Fn,29,e,0,1)},o.Yi=function(){return!1},w(qn,"ESuperAdapter/1",403),b(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},UO),o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new R6(this,jr,this)),this.a}return zo(this,e-se((On(),Eb)),$n((r=u(Un(this,16),29),r||Eb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(He,this,0,3)),cr(this.Ab,e,i);case 2:return!this.a&&(this.a=new R6(this,jr,this)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Eb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Eb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(He,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:!this.a&&(this.a=new R6(this,jr,this)),me(this.a),!this.a&&(this.a=new R6(this,jr,this)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),Eb)),$n((i=u(Un(this,16),29),i||Eb),e),t)},o.ii=function(){return On(),Eb},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(He,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:!this.a&&(this.a=new R6(this,jr,this)),me(this.a);return}Wo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},w(qn,"ETypeParameterImpl",457),b(458,83,Qr,R6),o.Nj=function(e,t){return Pye(this,u(e,89),t)},o.Oj=function(e,t){return Iye(this,u(e,89),t)},w(qn,"ETypeParameterImpl/1",458),b(647,45,Zg,aD),o.ec=function(){return new NE(this)},w(qn,"ETypeParameterImpl/2",647),b(570,Rf,Lu,NE),o.Fc=function(e){return VAn(this,u(e,89))},o.Gc=function(e){var t,i,r;for(r=!1,i=e.Kc();i.Ob();)t=u(i.Pb(),89),Xe(this.a,t,"")==null&&(r=!0);return r},o.$b=function(){Hu(this.a)},o.Hc=function(e){return Zc(this.a,e)},o.Kc=function(){var e;return e=new sd(new qa(this.a).a),new $E(e)},o.Mc=function(e){return BLn(this,e)},o.gc=function(){return u6(this.a)},w(qn,"ETypeParameterImpl/2/1",570),b(571,1,Si,$E),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(L0(this.a).ld(),89)},o.Ob=function(){return this.a.b},o.Qb=function(){XNn(this.a)},w(qn,"ETypeParameterImpl/2/1/1",571),b(1329,45,Zg,djn),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},o.xc=function(e){var t,i;return t=Ai(e)?Nc(this,e):Kr(wr(this.f,e)),O(t,851)?(i=u(t,851),t=i.Kk(),Xe(this,u(e,241),t),t):t??(e==null?(OD(),Zoe):null)},w(qn,"EValidatorRegistryImpl",1329),b(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},$vn),o.ri=function(e,t){switch(e.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return t==null?null:Jr(t);case 25:return Tme(t);case 27:return K4e(t);case 28:return _4e(t);case 29:return t==null?null:MTn(L9[0],u(t,206));case 41:return t==null?"":za(u(t,297));case 42:return Jr(t);case 50:return Oe(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,A;switch(e.G==-1&&(e.G=(p=jo(e),p?f1(p.vi(),e):-1)),e.G){case 0:return i=new fD,i;case 1:return t=new tG,t;case 2:return r=new uG,r;case 4:return c=new xE,c;case 5:return s=new ajn,s;case 6:return f=new Fyn,f;case 7:return h=new oG,h;case 10:return a=new ME,a;case 11:return d=new hD,d;case 12:return g=new HIn,g;case 13:return m=new lD,m;case 14:return k=new cV,k;case 17:return j=new Mvn,j;case 18:return l=new Jd,l;case 19:return A=new UO,A;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 20:return t==null?null:new Az(t);case 21:return t==null?null:new H1(t);case 23:case 22:return t==null?null:R8e(t);case 26:case 24:return t==null?null:bk(Ao(t,-128,127)<<24>>24);case 25:return rMe(t);case 27:return T7e(t);case 28:return A7e(t);case 29:return Jye(t);case 32:case 31:return t==null?null:sw(t);case 38:case 37:return t==null?null:new UG(t);case 40:case 39:return t==null?null:Y(Ao(t,Wi,et));case 41:return null;case 42:return t==null,null;case 44:case 43:return t==null?null:Ml(zA(t));case 49:case 48:return t==null?null:sm(Ao(t,QS,32767)<<16>>16);case 50:return t;default:throw M(new Gn(ev+e.xe()+nb))}},w(qn,"EcoreFactoryImpl",1349),b(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},aIn),o.gb=!1,o.hb=!1;var n0n,Yoe=!1;w(qn,"EcorePackageImpl",560),b(1234,1,{851:1},xvn),o.Kk=function(){return BTn(),nse},w(qn,"EcorePackageImpl/1",1234),b(1243,1,Ge,Fvn),o.fk=function(e){return O(e,155)},o.gk=function(e){return K(fE,Fn,155,e,0,1)},w(qn,"EcorePackageImpl/10",1243),b(1244,1,Ge,Bvn),o.fk=function(e){return O(e,197)},o.gk=function(e){return K(pU,Fn,197,e,0,1)},w(qn,"EcorePackageImpl/11",1244),b(1245,1,Ge,Rvn),o.fk=function(e){return O(e,58)},o.gk=function(e){return K(Ia,Fn,58,e,0,1)},w(qn,"EcorePackageImpl/12",1245),b(1246,1,Ge,Kvn),o.fk=function(e){return O(e,411)},o.gk=function(e){return K(As,Gcn,62,e,0,1)},w(qn,"EcorePackageImpl/13",1246),b(1247,1,Ge,_vn),o.fk=function(e){return O(e,241)},o.gk=function(e){return K(jf,Fn,241,e,0,1)},w(qn,"EcorePackageImpl/14",1247),b(1248,1,Ge,Hvn),o.fk=function(e){return O(e,518)},o.gk=function(e){return K(yb,Fn,2116,e,0,1)},w(qn,"EcorePackageImpl/15",1248),b(1249,1,Ge,qvn),o.fk=function(e){return O(e,102)},o.gk=function(e){return K(eg,s2,19,e,0,1)},w(qn,"EcorePackageImpl/16",1249),b(1250,1,Ge,Uvn),o.fk=function(e){return O(e,179)},o.gk=function(e){return K(ku,s2,179,e,0,1)},w(qn,"EcorePackageImpl/17",1250),b(1251,1,Ge,Gvn),o.fk=function(e){return O(e,481)},o.gk=function(e){return K(Zw,Fn,481,e,0,1)},w(qn,"EcorePackageImpl/18",1251),b(1252,1,Ge,zvn),o.fk=function(e){return O(e,561)},o.gk=function(e){return K(pc,nJn,561,e,0,1)},w(qn,"EcorePackageImpl/19",1252),b(1235,1,Ge,Xvn),o.fk=function(e){return O(e,331)},o.gk=function(e){return K(ng,s2,35,e,0,1)},w(qn,"EcorePackageImpl/2",1235),b(1253,1,Ge,Vvn),o.fk=function(e){return O(e,248)},o.gk=function(e){return K(jr,pJn,89,e,0,1)},w(qn,"EcorePackageImpl/20",1253),b(1254,1,Ge,Wvn),o.fk=function(e){return O(e,457)},o.gk=function(e){return K(fu,Fn,850,e,0,1)},w(qn,"EcorePackageImpl/21",1254),b(1255,1,Ge,Jvn),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(qn,"EcorePackageImpl/22",1255),b(1256,1,Ge,Qvn),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(qn,"EcorePackageImpl/23",1256),b(1257,1,Ge,Yvn),o.fk=function(e){return O(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(qn,"EcorePackageImpl/24",1257),b(1258,1,Ge,Zvn),o.fk=function(e){return O(e,180)},o.gk=function(e){return K(I8,J,180,e,0,1)},w(qn,"EcorePackageImpl/25",1258),b(1259,1,Ge,n6n),o.fk=function(e){return O(e,206)},o.gk=function(e){return K(oP,J,206,e,0,1)},w(qn,"EcorePackageImpl/26",1259),b(1260,1,Ge,e6n),o.fk=function(e){return!1},o.gk=function(e){return K(m0n,Fn,2215,e,0,1)},w(qn,"EcorePackageImpl/27",1260),b(1261,1,Ge,t6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(qn,"EcorePackageImpl/28",1261),b(1262,1,Ge,i6n),o.fk=function(e){return O(e,61)},o.gk=function(e){return K(Ldn,kw,61,e,0,1)},w(qn,"EcorePackageImpl/29",1262),b(1236,1,Ge,r6n),o.fk=function(e){return O(e,519)},o.gk=function(e){return K(He,{3:1,4:1,5:1,2033:1},598,e,0,1)},w(qn,"EcorePackageImpl/3",1236),b(1263,1,Ge,c6n),o.fk=function(e){return O(e,582)},o.gk=function(e){return K(xdn,Fn,2039,e,0,1)},w(qn,"EcorePackageImpl/30",1263),b(1264,1,Ge,u6n),o.fk=function(e){return O(e,160)},o.gk=function(e){return K(c0n,kw,160,e,0,1)},w(qn,"EcorePackageImpl/31",1264),b(1265,1,Ge,o6n),o.fk=function(e){return O(e,76)},o.gk=function(e){return K(CO,TJn,76,e,0,1)},w(qn,"EcorePackageImpl/32",1265),b(1266,1,Ge,s6n),o.fk=function(e){return O(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(qn,"EcorePackageImpl/33",1266),b(1267,1,Ge,f6n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(qn,"EcorePackageImpl/34",1267),b(1268,1,Ge,h6n),o.fk=function(e){return O(e,297)},o.gk=function(e){return K(run,Fn,297,e,0,1)},w(qn,"EcorePackageImpl/35",1268),b(1269,1,Ge,l6n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(qn,"EcorePackageImpl/36",1269),b(1270,1,Ge,a6n),o.fk=function(e){return O(e,85)},o.gk=function(e){return K(cun,Fn,85,e,0,1)},w(qn,"EcorePackageImpl/37",1270),b(1271,1,Ge,d6n),o.fk=function(e){return O(e,599)},o.gk=function(e){return K(e0n,Fn,599,e,0,1)},w(qn,"EcorePackageImpl/38",1271),b(1272,1,Ge,b6n),o.fk=function(e){return!1},o.gk=function(e){return K(v0n,Fn,2216,e,0,1)},w(qn,"EcorePackageImpl/39",1272),b(1237,1,Ge,w6n),o.fk=function(e){return O(e,90)},o.gk=function(e){return K(Ts,Fn,29,e,0,1)},w(qn,"EcorePackageImpl/4",1237),b(1273,1,Ge,g6n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(qn,"EcorePackageImpl/40",1273),b(1274,1,Ge,p6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(qn,"EcorePackageImpl/41",1274),b(1275,1,Ge,m6n),o.fk=function(e){return O(e,596)},o.gk=function(e){return K($dn,Fn,596,e,0,1)},w(qn,"EcorePackageImpl/42",1275),b(1276,1,Ge,v6n),o.fk=function(e){return!1},o.gk=function(e){return K(k0n,J,2217,e,0,1)},w(qn,"EcorePackageImpl/43",1276),b(1277,1,Ge,k6n),o.fk=function(e){return O(e,44)},o.gk=function(e){return K(Pd,WA,44,e,0,1)},w(qn,"EcorePackageImpl/44",1277),b(1238,1,Ge,y6n),o.fk=function(e){return O(e,142)},o.gk=function(e){return K(Ef,Fn,142,e,0,1)},w(qn,"EcorePackageImpl/5",1238),b(1239,1,Ge,j6n),o.fk=function(e){return O(e,156)},o.gk=function(e){return K(EU,Fn,156,e,0,1)},w(qn,"EcorePackageImpl/6",1239),b(1240,1,Ge,E6n),o.fk=function(e){return O(e,469)},o.gk=function(e){return K(EO,Fn,685,e,0,1)},w(qn,"EcorePackageImpl/7",1240),b(1241,1,Ge,C6n),o.fk=function(e){return O(e,582)},o.gk=function(e){return K(Bl,Fn,694,e,0,1)},w(qn,"EcorePackageImpl/8",1241),b(1242,1,Ge,M6n),o.fk=function(e){return O(e,480)},o.gk=function(e){return K(D9,Fn,480,e,0,1)},w(qn,"EcorePackageImpl/9",1242),b(1038,2080,ZWn,Njn),o.Mi=function(e,t){b5e(this,u(t,424))},o.Qi=function(e,t){S_n(this,e,u(t,424))},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),b(1039,152,Wy,tIn),o.jj=function(){return this.a.a},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),b(1067,1066,{},gTn),w("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var e0n=Nt(AJn,"Resource");b(799,1524,SJn),o.Hl=function(e){},o.Il=function(e){},o.El=function(){return!this.a&&(this.a=new iD(this)),this.a},o.Fl=function(e){var t,i,r,c,s;if(r=e.length,r>0)if(zn(0,e.length),e.charCodeAt(0)==47){for(s=new Gc(4),c=1,t=1;t0&&(e=(Fi(0,i,e.length),e.substr(0,i))));return qEe(this,e)},o.Gl=function(){return this.c},o.Ib=function(){var e;return za(this.Rm)+"@"+(e=mt(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},o.b=!1,w(AK,"ResourceImpl",799),b(1525,799,SJn,Cyn),w(AK,"BinaryResourceImpl",1525),b(1190,708,yK),o.bj=function(e){return O(e,58)?Nge(this,u(e,58)):O(e,599)?new ne(u(e,599).El()):x(e)===x(this.f)?u(e,16).Kc():(m4(),aE.a)},o.Ob=function(){return Fnn(this)},o.a=!1,w(Tt,"EcoreUtil/ContentTreeIterator",1190),b(1526,1190,yK,DPn),o.bj=function(e){return x(e)===x(this.f)?u(e,15).Kc():new PDn(u(e,58))},w(AK,"ResourceImpl/5",1526),b(658,2092,gJn,iD),o.Hc=function(e){return this.i<=4?km(this,e):O(e,54)&&u(e,54).Jh()==this.a},o.Mi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},o.Oi=function(e,t){e==0?this.a.b||(this.a.b=!0):t$(this,e,t)},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Lj=function(){return 2},o.jj=function(){return this.a},o.Mj=function(){return!0},o.Nj=function(e,t){var i;return i=u(e,54),t=i.fi(this.a,t),t},o.Oj=function(e,t){var i;return i=u(e,54),i.fi(null,t)},o.Pj=function(){return!1},o.Si=function(){return!0},o.aj=function(e){return K(Ia,Fn,58,e,0,1)},o.Yi=function(){return!1},w(AK,"ResourceImpl/ContentsEList",658),b(970,2062,Rm,Myn),o.fd=function(e){return this.a.Ki(e)},o.gc=function(){return this.a.gc()},w(Tt,"AbstractSequentialInternalEList/1",970);var t0n,i0n,zi,r0n;b(634,1,{},NSn);var MO,TO;w(Tt,"BasicExtendedMetaData",634),b(1181,1,{},xMn),o.Jl=function(){return null},o.Kl=function(){return this.a==-2&&dfe(this,qye(this.d,this.b)),this.a},o.Ll=function(){return null},o.Ml=function(){return Dn(),Dn(),sr},o.xe=function(){return this.c==rv&&bfe(this,YBn(this.d,this.b)),this.c},o.Nl=function(){return 0},o.a=-2,o.c=rv,w(Tt,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),b(1182,1,{},cDn),o.Jl=function(){return this.a==($4(),MO)&&pfe(this,HAe(this.f,this.b)),this.a},o.Kl=function(){return 0},o.Ll=function(){return this.c==($4(),MO)&&wfe(this,qAe(this.f,this.b)),this.c},o.Ml=function(){return!this.d&&vfe(this,APe(this.f,this.b)),this.d},o.xe=function(){return this.e==rv&&yfe(this,YBn(this.f,this.b)),this.e},o.Nl=function(){return this.g==-2&&Efe(this,sye(this.f,this.b)),this.g},o.e=rv,o.g=-2,w(Tt,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),b(1180,1,{},FMn),o.b=!1,o.c=!1,w(Tt,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),b(1183,1,{},uDn),o.c=-2,o.e=rv,o.f=rv,w(Tt,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),b(593,632,Qr,QC),o.Lj=function(){return this.c},o.ol=function(){return!1},o.Wi=function(e,t){return t},o.c=0,w(Tt,"EDataTypeEList",593);var c0n=Nt(Tt,"FeatureMap");b(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Rt),o.bd=function(e,t){oTe(this,e,u(t,76))},o.Fc=function(e){return MMe(this,u(e,76))},o.Hi=function(e){Owe(this,u(e,76))},o.Nj=function(e,t){return Yae(this,u(e,76),t)},o.Oj=function(e,t){return PV(this,u(e,76),t)},o.Ti=function(e,t){return DSe(this,e,t)},o.Wi=function(e,t){return vOe(this,e,u(t,76))},o.hd=function(e,t){return VTe(this,e,u(t,76))},o.Uj=function(e,t){return Zae(this,u(e,76),t)},o.Vj=function(e,t){return fSn(this,u(e,76),t)},o.Wj=function(e,t,i){return Wke(this,u(e,76),u(t,76),i)},o.Zi=function(e,t){return Jx(this,e,u(t,76))},o.Ol=function(e,t){return Sen(this,e,t)},o.cd=function(e,t){var i,r,c,s,f,h,l,a,d;for(a=new S0(t.gc()),c=t.Kc();c.Ob();)if(r=u(c.Pb(),76),s=r.Lk(),Sl(this.e,s))(!s.Si()||!_M(this,s,r.md())&&!km(a,r))&&ve(a,r);else{for(d=ru(this.e.Dh(),s),i=u(this.g,124),f=!0,h=0;h=0;)if(t=e[this.c],this.k.am(t.Lk()))return this.j=this.f?t:t.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},w(Tt,"BasicFeatureMap/FeatureEIterator",420),b(676,420,Hh,dL),o.ul=function(){return!0},w(Tt,"BasicFeatureMap/ResolvingFeatureEIterator",676),b(968,496,zS,TTn),o.pj=function(){return this},w(Tt,"EContentsEList/1",968),b(969,496,zS,JMn),o.ul=function(){return!1},w(Tt,"EContentsEList/2",969),b(967,287,XS,ATn),o.wl=function(e){},o.Ob=function(){return!1},o.Sb=function(){return!1},w(Tt,"EContentsEList/FeatureIteratorImpl/1",967),b(840,593,Qr,xX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EDataTypeEList/Unsettable",840),b(1958,593,Qr,NTn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList",1958),b(1959,840,Qr,$Tn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList/Unsettable",1959),b(147,83,Qr,Tu),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Resolving",147),b(1184,555,Qr,xTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Unsettable/Resolving",1184),b(766,14,Qr,jV),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectContainmentWithInverseEList/Unsettable",766),b(1222,766,Qr,WAn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),b(757,505,Qr,FX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectEList/Unsettable",757),b(338,505,Qr,jg),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList",338),b(1844,757,Qr,FTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList/Unsettable",1844),b(1527,1,{},T6n);var Zoe;w(Tt,"EObjectValidator",1527),b(559,505,Qr,bM),o.il=function(){return this.d},o.jl=function(){return this.b},o.Mj=function(){return!0},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectWithInverseEList",559),b(1225,559,Qr,JAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/ManyInverse",1225),b(635,559,Qr,NL),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectWithInverseEList/Unsettable",635),b(1224,635,Qr,QAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),b(767,559,Qr,EV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList",767),b(32,767,Qr,Nn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/ManyInverse",32),b(768,635,Qr,CV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList/Unsettable",768),b(1223,768,Qr,YAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),b(1185,632,Qr),o.Li=function(){return(this.b&1792)==0},o.Ni=function(){this.b|=1},o.kl=function(){return(this.b&4)!=0},o.Mj=function(){return(this.b&40)!=0},o.ll=function(){return(this.b&16)!=0},o.ml=function(){return(this.b&8)!=0},o.nl=function(){return(this.b&Tw)!=0},o.al=function(){return(this.b&32)!=0},o.ol=function(){return(this.b&Us)!=0},o.fk=function(e){return this.d?BDn(this.d,e):this.Lk().Hk().fk(e)},o.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},o.Si=function(){return(this.b&128)!=0},o.Gk=function(){var e;me(this),this.b&2&&(fo(this.e)?(e=(this.b&1)!=0,this.b&=-2,t4(this,new Bs(this.e,2,Ot(this.e.Dh(),this.Lk()),e,!1))):this.b&=-2)},o.Yi=function(){return(this.b&1536)==0},o.b=0,w(Tt,"EcoreEList/Generic",1185),b(1186,1185,Qr,UIn),o.Lk=function(){return this.a},w(Tt,"EcoreEList/Dynamic",1186),b(765,66,Ch,BG),o.aj=function(e){return mk(this.a.a,e)},w(Tt,"EcoreEMap/1",765),b(764,83,Qr,jW),o.Mi=function(e,t){uA(this.b,u(t,136))},o.Oi=function(e,t){_xn(this.b)},o.Pi=function(e,t,i){var r;++(r=this.b,u(t,136),r).e},o.Qi=function(e,t){cx(this.b,u(t,136))},o.Ri=function(e,t,i){cx(this.b,u(i,136)),x(i)===x(t)&&u(i,136).Ci(Jle(u(t,136).ld())),uA(this.b,u(t,136))},w(Tt,"EcoreEMap/DelegateEObjectContainmentEList",764),b(1220,141,Ucn,rxn),w(Tt,"EcoreEMap/Unsettable",1220),b(1221,764,Qr,ZAn),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Bs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),b(1189,215,Zg,GPn),o.a=!1,o.b=!1,w(Tt,"EcoreUtil/Copier",1189),b(759,1,Si,PDn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return FBn(this)},o.Pb=function(){var e;return FBn(this),e=this.b,this.b=null,e},o.Qb=function(){this.a.Qb()},w(Tt,"EcoreUtil/ProperContentIterator",759),b(1528,1527,{},T8n);var nse;w(Tt,"EcoreValidator",1528);var ese;Nt(Tt,"FeatureMapUtil/Validator"),b(1295,1,{2041:1},A6n),o.am=function(e){return!0},w(Tt,"FeatureMapUtil/1",1295),b(773,1,{2041:1},itn),o.am=function(e){var t;return this.c==e?!0:(t=un(ee(this.a,e)),t==null?WAe(this,e)?(PLn(this.a,e,(_n(),ov)),!0):(PLn(this.a,e,(_n(),wa)),!1):t==(_n(),ov))},o.e=!1;var AU;w(Tt,"FeatureMapUtil/BasicValidator",773),b(774,45,Zg,NX),w(Tt,"FeatureMapUtil/BasicValidator/Cache",774),b(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},j7),o.bd=function(e,t){mqn(this.c,this.b,e,t)},o.Fc=function(e){return Sen(this.c,this.b,e)},o.cd=function(e,t){return gIe(this.c,this.b,e,t)},o.Gc=function(e){return I6(this,e)},o.Gi=function(e,t){lme(this.c,this.b,e,t)},o.Wk=function(e,t){return ken(this.c,this.b,e,t)},o.$i=function(e){return _A(this.c,this.b,e,!1)},o.Ii=function(){return sTn(this.c,this.b)},o.Ji=function(){return Fle(this.c,this.b)},o.Ki=function(e){return g4e(this.c,this.b,e)},o.Xk=function(e,t){return DAn(this,e,t)},o.$b=function(){rp(this)},o.Hc=function(e){return _M(this.c,this.b,e)},o.Ic=function(e){return wve(this.c,this.b,e)},o.Xb=function(e){return _A(this.c,this.b,e,!0)},o.Fk=function(e){return this},o.dd=function(e){return E3e(this.c,this.b,e)},o.dc=function(){return TC(this)},o.Qj=function(){return!Rk(this.c,this.b)},o.Kc=function(){return eme(this.c,this.b)},o.ed=function(){return tme(this.c,this.b)},o.fd=function(e){return L5e(this.c,this.b,e)},o.Ti=function(e,t){return LUn(this.c,this.b,e,t)},o.Ui=function(e,t){v4e(this.c,this.b,e,t)},o.gd=function(e){return l_n(this.c,this.b,e)},o.Mc=function(e){return pSe(this.c,this.b,e)},o.hd=function(e,t){return HUn(this.c,this.b,e,t)},o.Wb=function(e){jA(this.c,this.b),I6(this,u(e,15))},o.gc=function(){return D5e(this.c,this.b)},o.Pc=function(){return Mpe(this.c,this.b)},o.Qc=function(e){return C3e(this.c,this.b,e)},o.Ib=function(){var e,t;for(t=new Hl,t.a+="[",e=sTn(this.c,this.b);W$(e);)Er(t,D6(iA(e))),W$(e)&&(t.a+=ur);return t.a+="]",t.a},o.Gk=function(){jA(this.c,this.b)},w(Tt,"FeatureMapUtil/FeatureEList",509),b(644,39,Wy,GN),o.hj=function(e){return v5(this,e)},o.mj=function(e){var t,i,r,c,s,f,h;switch(this.d){case 1:case 2:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0;break}case 3:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=5,t=new S0(2),ve(t,this.g),ve(t,e.ij()),this.g=t,!0;break}}break}case 5:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return i=u(this.g,16),i.Fc(e.ij()),!0;break}}break}case 4:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=1,this.g=e.ij(),!0;break}case 4:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return this.d=6,h=new S0(2),ve(h,this.n),ve(h,e.kj()),this.n=h,f=S(T(ye,1),Ke,28,15,[this.o,e.lj()]),this.g=f,!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.c)&&v5(this,null)==e.hj(null))return i=u(this.n,16),i.Fc(e.kj()),f=u(this.g,53),r=K(ye,Ke,28,f.length+1,15,1),Ic(f,0,r,0,f.length),r[f.length]=e.lj(),this.g=r,!0;break}}break}}return!1},w(Tt,"FeatureMapUtil/FeatureENotificationImpl",644),b(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},eM),o.Ol=function(e,t){return Sen(this.c,e,t)},o.Pl=function(e,t,i){return ken(this.c,e,t,i)},o.Ql=function(e,t,i){return zen(this.c,e,t,i)},o.Rl=function(){return this},o.Sl=function(e,t){return wy(this.c,e,t)},o.Tl=function(e){return u(_A(this.c,this.b,e,!1),76).Lk()},o.Ul=function(e){return u(_A(this.c,this.b,e,!1),76).md()},o.Vl=function(){return this.a},o.Wl=function(e){return!Rk(this.c,e)},o.Xl=function(e,t){HA(this.c,e,t)},o.Yl=function(e){return oxn(this.c,e)},o.Zl=function(e){RRn(this.c,e)},w(Tt,"FeatureMapUtil/FeatureFeatureMap",564),b(1294,1,TK,$Mn),o.Fk=function(e){return _A(this.b,this.a,-1,e)},o.Qj=function(){return!Rk(this.b,this.a)},o.Wb=function(e){HA(this.b,this.a,e)},o.Gk=function(){jA(this.b,this.a)},w(Tt,"FeatureMapUtil/FeatureValue",1294);var K3,SU,PU,_3,tse,bE=Nt(eP,"AnyType");b(680,63,Pl,kD),w(eP,"InvalidDatatypeValueException",680);var AO=Nt(eP,IJn),wE=Nt(eP,OJn),u0n=Nt(eP,DJn),ise,yc,o0n,zd,rse,cse,use,ose,sse,fse,hse,lse,ase,dse,bse,U2,wse,G2,F9,gse,Cb,gE,pE,pse,B9,R9;b(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},iz),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b)}return zo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.c&&(this.c=new Rt(this,0)),ly(this.c,e,i);case 1:return(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),71)).Xk(e,i);case 2:return!this.b&&(this.b=new Rt(this,2)),ly(this.b,e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),t),69),r.wk().Ak(this,uQ(this),t-se(this.ii()),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return Uo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),H7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),H7(this.b,t);return}Jo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e),t)},o.ii=function(){return at(),o0n},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return}Wo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():this.ii(),e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (mixed: ",T6(e,this.c),e.a+=", anyAttribute: ",T6(e,this.b),e.a+=")",e.a)},w(oi,"AnyTypeImpl",844),b(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},B6n),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return zo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e),t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return Uo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e))},o.bi=function(e,t){switch(e){case 0:Tfe(this,Oe(t));return;case 1:Sfe(this,Oe(t));return}Jo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e),t)},o.ii=function(){return at(),U2},o.ki=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}Wo(this,e-se((at(),U2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():U2,e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (data: ",Er(e,this.a),e.a+=", target: ",Er(e,this.b),e.a+=")",e.a)},o.a=null,o.b=null,w(oi,"ProcessingInstructionImpl",681),b(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},bjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0));case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))));case 5:return this.a}return zo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e),t,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))!=null;case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),F9),!0))))!=null;case 5:return!!this.a}return Uo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),H7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),H7(this.b,t);return;case 3:bJ(this,Oe(t));return;case 4:bJ(this,MV(this.a,t));return;case 5:Afe(this,u(t,156));return}Jo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e),t)},o.ii=function(){return at(),G2},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return;case 3:!this.c&&(this.c=new Rt(this,0)),HA(this.c,(at(),F9),null);return;case 4:bJ(this,MV(this.a,null));return;case 5:this.a=null;return}Wo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():G2,e))},w(oi,"SimpleAnyTypeImpl",682),b(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},wjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.a&&(this.a=new Rt(this,0)),this.a):(!this.a&&(this.a=new Rt(this,0)),this.a.b);case 1:return i?(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b):(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),uk(this.b));case 2:return i?(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c):(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),uk(this.c));case 3:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),gE));case 4:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),pE));case 5:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),B9));case 6:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),R9))}return zo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.a&&(this.a=new Rt(this,0)),ly(this.a,e,i);case 1:return!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),UC(this.b,e,i);case 2:return!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),UC(this.c,e,i);case 5:return!this.a&&(this.a=new Rt(this,0)),DAn($c(this.a,(at(),B9)),e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():(at(),Cb),t),69),r.wk().Ak(this,uQ(this),t-se((at(),Cb)),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),gE)));case 4:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),pE)));case 5:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),B9)));case 6:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),R9)))}return Uo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e))},o.bi=function(e,t){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),H7(this.a,t);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),TT(this.b,t);return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),TT(this.c,t);return;case 3:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),gE))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,gE),u(t,16));return;case 4:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),pE))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,pE),u(t,16));return;case 5:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),B9))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,B9),u(t,16));return;case 6:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),R9))),!this.a&&(this.a=new Rt(this,0)),I6($c(this.a,R9),u(t,16));return}Jo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e),t)},o.ii=function(){return at(),Cb},o.ki=function(e){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),me(this.a);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),gE)));return;case 4:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),pE)));return;case 5:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),B9)));return;case 6:!this.a&&(this.a=new Rt(this,0)),rp($c(this.a,(at(),R9)));return}Wo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new cf),this.k).Nk():Cb,e))},o.Ib=function(){var e;return this.j&4?_s(this):(e=new ls(_s(this)),e.a+=" (mixed: ",T6(e,this.a),e.a+=")",e.a)},w(oi,"XMLTypeDocumentRootImpl",683),b(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},S6n),o.ri=function(e,t){switch(e.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return t==null?null:Jr(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Oe(t);case 6:return fae(u(t,195));case 12:case 47:case 49:case 11:return PGn(this,e,t);case 13:return t==null?null:vIe(u(t,247));case 15:case 14:return t==null?null:Mwe($(R(t)));case 17:return TKn((at(),t));case 18:return TKn(t);case 21:case 20:return t==null?null:Twe(u(t,161).a);case 27:return hae(u(t,195));case 30:return KRn((at(),u(t,15)));case 31:return KRn(u(t,15));case 40:return aae((at(),t));case 42:return AKn((at(),t));case 43:return AKn(t);case 59:case 48:return lae((at(),t));default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s;switch(e.G==-1&&(e.G=(i=jo(e),i?f1(i.vi(),e):-1)),e.G){case 0:return t=new iz,t;case 1:return r=new B6n,r;case 2:return c=new bjn,c;case 3:return s=new wjn,s;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,A,I;switch(e.hk()){case 5:case 52:case 4:return t;case 6:return m9e(t);case 8:case 7:return t==null?null:rye(t);case 9:return t==null?null:bk(Ao((r=Fc(t,!0),r.length>0&&(zn(0,r.length),r.charCodeAt(0)==43)?(zn(1,r.length+1),r.substr(1)):r),-128,127)<<24>>24);case 10:return t==null?null:bk(Ao((c=Fc(t,!0),c.length>0&&(zn(0,c.length),c.charCodeAt(0)==43)?(zn(1,c.length+1),c.substr(1)):c),-128,127)<<24>>24);case 11:return Oe(z0(this,(at(),use),t));case 12:return Oe(z0(this,(at(),ose),t));case 13:return t==null?null:new Az(Fc(t,!0));case 15:case 14:return AMe(t);case 16:return Oe(z0(this,(at(),sse),t));case 17:return HBn((at(),t));case 18:return HBn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Fc(t,!0);case 21:case 20:return FMe(t);case 22:return Oe(z0(this,(at(),fse),t));case 23:return Oe(z0(this,(at(),hse),t));case 24:return Oe(z0(this,(at(),lse),t));case 25:return Oe(z0(this,(at(),ase),t));case 26:return Oe(z0(this,(at(),dse),t));case 27:return u9e(t);case 30:return qBn((at(),t));case 31:return qBn(t);case 32:return t==null?null:Y(Ao((d=Fc(t,!0),d.length>0&&(zn(0,d.length),d.charCodeAt(0)==43)?(zn(1,d.length+1),d.substr(1)):d),Wi,et));case 33:return t==null?null:new H1((g=Fc(t,!0),g.length>0&&(zn(0,g.length),g.charCodeAt(0)==43)?(zn(1,g.length+1),g.substr(1)):g));case 34:return t==null?null:Y(Ao((p=Fc(t,!0),p.length>0&&(zn(0,p.length),p.charCodeAt(0)==43)?(zn(1,p.length+1),p.substr(1)):p),Wi,et));case 36:return t==null?null:Ml(zA((m=Fc(t,!0),m.length>0&&(zn(0,m.length),m.charCodeAt(0)==43)?(zn(1,m.length+1),m.substr(1)):m)));case 37:return t==null?null:Ml(zA((k=Fc(t,!0),k.length>0&&(zn(0,k.length),k.charCodeAt(0)==43)?(zn(1,k.length+1),k.substr(1)):k)));case 40:return i7e((at(),t));case 42:return UBn((at(),t));case 43:return UBn(t);case 44:return t==null?null:new H1((j=Fc(t,!0),j.length>0&&(zn(0,j.length),j.charCodeAt(0)==43)?(zn(1,j.length+1),j.substr(1)):j));case 45:return t==null?null:new H1((A=Fc(t,!0),A.length>0&&(zn(0,A.length),A.charCodeAt(0)==43)?(zn(1,A.length+1),A.substr(1)):A));case 46:return Fc(t,!1);case 47:return Oe(z0(this,(at(),bse),t));case 59:case 48:return t7e((at(),t));case 49:return Oe(z0(this,(at(),wse),t));case 50:return t==null?null:sm(Ao((I=Fc(t,!0),I.length>0&&(zn(0,I.length),I.charCodeAt(0)==43)?(zn(1,I.length+1),I.substr(1)):I),QS,32767)<<16>>16);case 51:return t==null?null:sm(Ao((s=Fc(t,!0),s.length>0&&(zn(0,s.length),s.charCodeAt(0)==43)?(zn(1,s.length+1),s.substr(1)):s),QS,32767)<<16>>16);case 53:return Oe(z0(this,(at(),gse),t));case 55:return t==null?null:sm(Ao((f=Fc(t,!0),f.length>0&&(zn(0,f.length),f.charCodeAt(0)==43)?(zn(1,f.length+1),f.substr(1)):f),QS,32767)<<16>>16);case 56:return t==null?null:sm(Ao((h=Fc(t,!0),h.length>0&&(zn(0,h.length),h.charCodeAt(0)==43)?(zn(1,h.length+1),h.substr(1)):h),QS,32767)<<16>>16);case 57:return t==null?null:Ml(zA((l=Fc(t,!0),l.length>0&&(zn(0,l.length),l.charCodeAt(0)==43)?(zn(1,l.length+1),l.substr(1)):l)));case 58:return t==null?null:Ml(zA((a=Fc(t,!0),a.length>0&&(zn(0,a.length),a.charCodeAt(0)==43)?(zn(1,a.length+1),a.substr(1)):a)));case 60:return t==null?null:Y(Ao((i=Fc(t,!0),i.length>0&&(zn(0,i.length),i.charCodeAt(0)==43)?(zn(1,i.length+1),i.substr(1)):i),Wi,et));case 61:return t==null?null:Y(Ao(Fc(t,!0),Wi,et));default:throw M(new Gn(ev+e.xe()+nb))}};var mse,s0n,vse,f0n;w(oi,"XMLTypeFactoryImpl",2028),b(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},dIn),o.N=!1,o.O=!1;var kse=!1;w(oi,"XMLTypePackageImpl",594),b(1961,1,{851:1},P6n),o.Kk=function(){return Fen(),Pse},w(oi,"XMLTypePackageImpl/1",1961),b(1970,1,Ge,I6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/10",1970),b(1971,1,Ge,O6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/11",1971),b(1972,1,Ge,D6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/12",1972),b(1973,1,Ge,L6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(oi,"XMLTypePackageImpl/13",1973),b(1974,1,Ge,N6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/14",1974),b(1975,1,Ge,$6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/15",1975),b(1976,1,Ge,x6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/16",1976),b(1977,1,Ge,F6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/17",1977),b(1978,1,Ge,R6n),o.fk=function(e){return O(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(oi,"XMLTypePackageImpl/18",1978),b(1979,1,Ge,K6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/19",1979),b(1962,1,Ge,_6n),o.fk=function(e){return O(e,857)},o.gk=function(e){return K(bE,Fn,857,e,0,1)},w(oi,"XMLTypePackageImpl/2",1962),b(1980,1,Ge,H6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/20",1980),b(1981,1,Ge,q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/21",1981),b(1982,1,Ge,U6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/22",1982),b(1983,1,Ge,G6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/23",1983),b(1984,1,Ge,z6n),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/24",1984),b(1985,1,Ge,X6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/25",1985),b(1986,1,Ge,V6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/26",1986),b(1987,1,Ge,W6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/27",1987),b(1988,1,Ge,J6n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/28",1988),b(1989,1,Ge,Q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/29",1989),b(1963,1,Ge,Y6n),o.fk=function(e){return O(e,681)},o.gk=function(e){return K(AO,Fn,2119,e,0,1)},w(oi,"XMLTypePackageImpl/3",1963),b(1990,1,Ge,Z6n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/30",1990),b(1991,1,Ge,n5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/31",1991),b(1992,1,Ge,e5n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/32",1992),b(1993,1,Ge,t5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/33",1993),b(1994,1,Ge,i5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/34",1994),b(1995,1,Ge,r5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/35",1995),b(1996,1,Ge,c5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/36",1996),b(1997,1,Ge,u5n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/37",1997),b(1998,1,Ge,o5n),o.fk=function(e){return O(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/38",1998),b(1999,1,Ge,s5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/39",1999),b(1964,1,Ge,f5n),o.fk=function(e){return O(e,682)},o.gk=function(e){return K(wE,Fn,2120,e,0,1)},w(oi,"XMLTypePackageImpl/4",1964),b(2e3,1,Ge,h5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/40",2e3),b(2001,1,Ge,l5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/41",2001),b(2002,1,Ge,a5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/42",2002),b(2003,1,Ge,d5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/43",2003),b(2004,1,Ge,b5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/44",2004),b(2005,1,Ge,w5n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/45",2005),b(2006,1,Ge,g5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/46",2006),b(2007,1,Ge,p5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/47",2007),b(2008,1,Ge,m5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/48",2008),b(2009,1,Ge,v5n),o.fk=function(e){return O(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/49",2009),b(1965,1,Ge,k5n),o.fk=function(e){return O(e,683)},o.gk=function(e){return K(u0n,Fn,2121,e,0,1)},w(oi,"XMLTypePackageImpl/5",1965),b(2010,1,Ge,y5n),o.fk=function(e){return O(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/50",2010),b(2011,1,Ge,j5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/51",2011),b(2012,1,Ge,E5n),o.fk=function(e){return O(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/52",2012),b(1966,1,Ge,C5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/6",1966),b(1967,1,Ge,M5n),o.fk=function(e){return O(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/7",1967),b(1968,1,Ge,T5n),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(oi,"XMLTypePackageImpl/8",1968),b(1969,1,Ge,A5n),o.fk=function(e){return O(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(oi,"XMLTypePackageImpl/9",1969);var Zf,O1,K9,SO,P;b(55,63,Pl,Le),w(p1,"RegEx/ParseException",55),b(836,1,{},rG),o.bm=function(e){return ei*16)throw M(new Le($e((Ie(),qWn))));i=i*16+c}while(!0);if(this.a!=125)throw M(new Le($e((Ie(),UWn))));if(i>cv)throw M(new Le($e((Ie(),GWn))));e=i}else{if(c=0,this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(i=c,Ye(this),this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));i=i*16+c,e=i}break;case 117:if(r=0,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));t=t*16+r,e=t;break;case 118:if(Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ye(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,t>cv)throw M(new Le($e((Ie(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw M(new Le($e((Ie(),zWn))))}return e},o.dm=function(e){var t,i;switch(e){case 100:i=(this.e&32)==32?oa("Nd",!0):(nt(),PO);break;case 68:i=(this.e&32)==32?oa("Nd",!1):(nt(),w0n);break;case 119:i=(this.e&32)==32?oa("IsWord",!0):(nt(),zv);break;case 87:i=(this.e&32)==32?oa("IsWord",!1):(nt(),p0n);break;case 115:i=(this.e&32)==32?oa("IsSpace",!0):(nt(),H3);break;case 83:i=(this.e&32)==32?oa("IsSpace",!1):(nt(),g0n);break;default:throw M(new ec((t=e,zJn+t.toString(16))))}return i},o.em=function(e){var t,i,r,c,s,f,h,l,a,d,g,p;for(this.b=1,Ye(this),t=null,this.c==0&&this.a==94?(Ye(this),e?d=(nt(),nt(),new yo(5)):(t=(nt(),nt(),new yo(4)),xc(t,0,cv),d=new yo(4))):d=(nt(),nt(),new yo(4)),c=!0;(p=this.c)!=1&&!(p==0&&this.a==93&&!c);){if(c=!1,i=this.a,r=!1,p==10)switch(i){case 100:case 68:case 119:case 87:case 115:case 83:gw(d,this.dm(i)),r=!0;break;case 105:case 73:case 99:case 67:i=this.um(d,i),i<0&&(r=!0);break;case 112:case 80:if(g=$nn(this,i),!g)throw M(new Le($e((Ie(),EK))));gw(d,g),r=!0;break;default:i=this.cm()}else if(p==20){if(f=w4(this.i,58,this.d),f<0)throw M(new Le($e((Ie(),Bcn))));if(h=!0,Xi(this.i,this.d)==94&&(++this.d,h=!1),s=qo(this.i,this.d,f),l=mNn(s,h,(this.e&512)==512),!l)throw M(new Le($e((Ie(),BWn))));if(gw(d,l),r=!0,f+1>=this.j||Xi(this.i,f+1)!=93)throw M(new Le($e((Ie(),Bcn))));this.d=f+2}if(Ye(this),!r)if(this.c!=0||this.a!=45)xc(d,i,i);else{if(Ye(this),(p=this.c)==1)throw M(new Le($e((Ie(),US))));p==0&&this.a==93?(xc(d,i,i),xc(d,45,45)):(a=this.a,p==10&&(a=this.cm()),Ye(this),xc(d,i,a))}(this.e&Us)==Us&&this.c==0&&this.a==44&&Ye(this)}if(this.c==1)throw M(new Le($e((Ie(),US))));return t&&(Q5(t,d),d=t),Ug(d),W5(d),this.b=0,Ye(this),d},o.fm=function(){var e,t,i,r;for(i=this.em(!1);(r=this.c)!=7;)if(e=this.a,r==0&&(e==45||e==38)||r==4){if(Ye(this),this.c!=9)throw M(new Le($e((Ie(),KWn))));if(t=this.em(!1),r==4)gw(i,t);else if(e==45)Q5(i,t);else if(e==38)MGn(i,t);else throw M(new ec("ASSERT"))}else throw M(new Le($e((Ie(),_Wn))));return Ye(this),i},o.gm=function(){var e,t;return e=this.a-48,t=(nt(),nt(),new IN(12,null,e)),!this.g&&(this.g=new BE),FE(this.g,new RG(e)),Ye(this),t},o.hm=function(){return Ye(this),nt(),Ese},o.im=function(){return Ye(this),nt(),jse},o.jm=function(){throw M(new Le($e((Ie(),is))))},o.km=function(){throw M(new Le($e((Ie(),is))))},o.lm=function(){return Ye(this),y6e()},o.mm=function(){return Ye(this),nt(),Mse},o.nm=function(){return Ye(this),nt(),Ase},o.om=function(){var e;if(this.d>=this.j||((e=Xi(this.i,this.d++))&65504)!=64)throw M(new Le($e((Ie(),$Wn))));return Ye(this),nt(),nt(),new Nh(0,e-64)},o.pm=function(){return Ye(this),CPe()},o.qm=function(){return Ye(this),nt(),Sse},o.rm=function(){var e;return e=(nt(),nt(),new Nh(0,105)),Ye(this),e},o.sm=function(){return Ye(this),nt(),Tse},o.tm=function(){return Ye(this),nt(),Cse},o.um=function(e,t){return this.cm()},o.vm=function(){return Ye(this),nt(),d0n},o.wm=function(){var e,t,i,r,c;if(this.d+1>=this.j)throw M(new Le($e((Ie(),DWn))));if(r=-1,t=null,e=Xi(this.i,this.d),49<=e&&e<=57){if(r=e-48,!this.g&&(this.g=new BE),FE(this.g,new RG(r)),++this.d,Xi(this.i,this.d)!=41)throw M(new Le($e((Ie(),Ad))));++this.d}else switch(e==63&&--this.d,Ye(this),t=stn(this),t.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw M(new Le($e((Ie(),Ad))));break;default:throw M(new Le($e((Ie(),LWn))))}if(Ye(this),c=B0(this),i=null,c.e==2){if(c.Pm()!=2)throw M(new Le($e((Ie(),NWn))));i=c.Lm(1),c=c.Lm(0)}if(this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),nt(),nt(),new ZNn(r,t,c,i)},o.xm=function(){return Ye(this),nt(),b0n},o.ym=function(){var e;if(Ye(this),e=wM(24,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.zm=function(){var e;if(Ye(this),e=wM(20,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Am=function(){var e;if(Ye(this),e=wM(22,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Bm=function(){var e,t,i,r,c;for(e=0,i=0,t=-1;this.d=this.j)throw M(new Le($e((Ie(),xcn))));if(t==45){for(++this.d;this.d=this.j)throw M(new Le($e((Ie(),xcn))))}if(t==58){if(++this.d,Ye(this),r=VPn(B0(this),e,i),this.c!=7)throw M(new Le($e((Ie(),Ad))));Ye(this)}else if(t==41)++this.d,Ye(this),r=VPn(B0(this),e,i);else throw M(new Le($e((Ie(),OWn))));return r},o.Cm=function(){var e;if(Ye(this),e=wM(21,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Dm=function(){var e;if(Ye(this),e=wM(23,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Em=function(){var e,t;if(Ye(this),e=this.f++,t=rN(B0(this),e),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),t},o.Fm=function(){var e;if(Ye(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Gm=function(e){return Ye(this),this.c==5?(Ye(this),uM(e,(nt(),nt(),new Xb(9,e)))):uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ye(this),t=(nt(),nt(),new P6(2)),this.c==5?(Ye(this),pd(t,H9),pd(t,e)):(pd(t,e),pd(t,H9)),t},o.Im=function(e){return Ye(this),this.c==5?(Ye(this),nt(),nt(),new Xb(9,e)):(nt(),nt(),new Xb(3,e))},o.a=0,o.b=0,o.c=0,o.d=0,o.e=0,o.f=1,o.g=null,o.j=0,w(p1,"RegEx/RegexParser",836),b(1947,836,{},gjn),o.bm=function(e){return!1},o.cm=function(){return gen(this)},o.dm=function(e){return Im(e)},o.em=function(e){return kzn(this)},o.fm=function(){throw M(new Le($e((Ie(),is))))},o.gm=function(){throw M(new Le($e((Ie(),is))))},o.hm=function(){throw M(new Le($e((Ie(),is))))},o.im=function(){throw M(new Le($e((Ie(),is))))},o.jm=function(){return Ye(this),Im(67)},o.km=function(){return Ye(this),Im(73)},o.lm=function(){throw M(new Le($e((Ie(),is))))},o.mm=function(){throw M(new Le($e((Ie(),is))))},o.nm=function(){throw M(new Le($e((Ie(),is))))},o.om=function(){return Ye(this),Im(99)},o.pm=function(){throw M(new Le($e((Ie(),is))))},o.qm=function(){throw M(new Le($e((Ie(),is))))},o.rm=function(){return Ye(this),Im(105)},o.sm=function(){throw M(new Le($e((Ie(),is))))},o.tm=function(){throw M(new Le($e((Ie(),is))))},o.um=function(e,t){return gw(e,Im(t)),-1},o.vm=function(){return Ye(this),nt(),nt(),new Nh(0,94)},o.wm=function(){throw M(new Le($e((Ie(),is))))},o.xm=function(){return Ye(this),nt(),nt(),new Nh(0,36)},o.ym=function(){throw M(new Le($e((Ie(),is))))},o.zm=function(){throw M(new Le($e((Ie(),is))))},o.Am=function(){throw M(new Le($e((Ie(),is))))},o.Bm=function(){throw M(new Le($e((Ie(),is))))},o.Cm=function(){throw M(new Le($e((Ie(),is))))},o.Dm=function(){throw M(new Le($e((Ie(),is))))},o.Em=function(){var e;if(Ye(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ye(this),e},o.Fm=function(){throw M(new Le($e((Ie(),is))))},o.Gm=function(e){return Ye(this),uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ye(this),t=(nt(),nt(),new P6(2)),pd(t,e),pd(t,H9),t},o.Im=function(e){return Ye(this),nt(),nt(),new Xb(3,e)};var z2=null,Uv=null;w(p1,"RegEx/ParserForXMLSchema",1947),b(122,1,uv,Wd),o.Jm=function(e){throw M(new ec("Not supported."))},o.Km=function(){return-1},o.Lm=function(e){return null},o.Mm=function(){return null},o.Nm=function(e){},o.Om=function(e){},o.Pm=function(){return 0},o.Ib=function(){return this.Qm(0)},o.Qm=function(e){return this.e==11?".":""},o.e=0;var h0n,Gv,_9,yse,l0n,rg=null,PO,IU=null,a0n,H9,OU=null,d0n,b0n,w0n,g0n,p0n,jse,H3,Ese,Cse,Mse,Tse,zv,Ase,Sse,NNe=w(p1,"RegEx/Token",122);b(138,122,{3:1,138:1,122:1},yo),o.Qm=function(e){var t,i,r;if(this.e==4)if(this==a0n)i=".";else if(this==PO)i="\\d";else if(this==zv)i="\\w";else if(this==H3)i="\\s";else{for(r=new Hl,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}else if(this==w0n)i="\\D";else if(this==p0n)i="\\W";else if(this==g0n)i="\\S";else{for(r=new Hl,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}return i},o.a=!1,o.c=!1,w(p1,"RegEx/RangeToken",138),b(592,1,{592:1},RG),o.a=0,w(p1,"RegEx/RegexParser/ReferencePosition",592),b(591,1,{3:1,591:1},OEn),o.Fb=function(e){var t;return e==null||!O(e,591)?!1:(t=u(e,591),An(this.b,t.b)&&this.a==t.a)},o.Hb=function(){return t1(this.b+"/"+fen(this.a))},o.Ib=function(){return this.c.Qm(this.a)},o.a=0,w(p1,"RegEx/RegularExpression",591),b(228,122,uv,Nh),o.Km=function(){return this.a},o.Qm=function(e){var t,i,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+LL(this.a&ui);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:this.a>=hr?(i=(t=this.a>>>0,"0"+t.toString(16)),r="\\v"+qo(i,i.length-6,i.length)):r=""+LL(this.a&ui)}break;case 8:this==d0n||this==b0n?r=""+LL(this.a&ui):r="\\"+LL(this.a&ui);break;default:r=null}return r},o.a=0,w(p1,"RegEx/Token/CharToken",228),b(318,122,uv,Xb),o.Lm=function(e){return this.a},o.Nm=function(e){this.b=e},o.Om=function(e){this.c=e},o.Pm=function(){return 1},o.Qm=function(e){var t;if(this.e==3)if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}";else throw M(new ec("Token#toString(): CLOSURE "+this.c+ur+this.b));else if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*?";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}?";else throw M(new ec("Token#toString(): NONGREEDYCLOSURE "+this.c+ur+this.b));return t},o.b=0,o.c=0,w(p1,"RegEx/Token/ClosureToken",318),b(837,122,uv,SW),o.Lm=function(e){return e==0?this.a:this.b},o.Pm=function(){return 2},o.Qm=function(e){var t;return this.b.e==3&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+":this.b.e==9&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+?":t=this.a.Qm(e)+(""+this.b.Qm(e)),t},w(p1,"RegEx/Token/ConcatToken",837),b(1945,122,uv,ZNn),o.Lm=function(e){if(e==0)return this.d;if(e==1)return this.b;throw M(new ec("Internal Error: "+e))},o.Pm=function(){return this.b?2:1},o.Qm=function(e){var t;return this.c>0?t="(?("+this.c+")":this.a.e==8?t="(?("+this.a+")":t="(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},o.c=0,w(p1,"RegEx/Token/ConditionToken",1945),b(1946,122,uv,qOn),o.Lm=function(e){return this.b},o.Pm=function(){return 1},o.Qm=function(e){return"(?"+(this.a==0?"":fen(this.a))+(this.c==0?"":fen(this.c))+":"+this.b.Qm(e)+")"},o.a=0,o.c=0,w(p1,"RegEx/Token/ModifierToken",1946),b(838,122,uv,BW),o.Lm=function(e){return this.a},o.Pm=function(){return 1},o.Qm=function(e){var t;switch(t=null,this.e){case 6:this.b==0?t="(?:"+this.a.Qm(e)+")":t="("+this.a.Qm(e)+")";break;case 20:t="(?="+this.a.Qm(e)+")";break;case 21:t="(?!"+this.a.Qm(e)+")";break;case 22:t="(?<="+this.a.Qm(e)+")";break;case 23:t="(?"+this.a.Qm(e)+")"}return t},o.b=0,w(p1,"RegEx/Token/ParenToken",838),b(530,122,{3:1,122:1,530:1},IN),o.Mm=function(){return this.b},o.Qm=function(e){return this.e==12?"\\"+this.a:gMe(this.b)},o.a=0,w(p1,"RegEx/Token/StringToken",530),b(477,122,uv,P6),o.Jm=function(e){pd(this,e)},o.Lm=function(e){return u(k0(this.a,e),122)},o.Pm=function(){return this.a?this.a.a.c.length:0},o.Qm=function(e){var t,i,r,c,s;if(this.e==1){if(this.a.a.c.length==2)t=u(k0(this.a,0),122),i=u(k0(this.a,1),122),i.e==3&&i.Lm(0)==t?c=t.Qm(e)+"+":i.e==9&&i.Lm(0)==t?c=t.Qm(e)+"+?":c=t.Qm(e)+(""+i.Qm(e));else{for(s=new Hl,r=0;r=this.c.b:this.a<=this.c.b},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Vb=function(){return this.b-1},o.Qb=function(){throw M(new Kl(ZJn))},o.a=0,o.b=0,w(iun,"ExclusiveRange/RangeIterator",258);var fs=A4(GS,"C"),ye=A4(C8,"I"),so=A4(i3,"Z"),xa=A4(M8,"J"),Fu=A4(y8,"B"),Pi=A4(j8,"D"),cg=A4(E8,"F"),X2=A4(T8,"S"),$Ne=Nt("org.eclipse.elk.core.labels","ILabelManager"),m0n=Nt(or,"DiagnosticChain"),v0n=Nt(AJn,"ResourceSet"),k0n=w(or,"InvocationTargetException",null),Ise=(HE(),W3e),Ose=Ose=Kke;Hme(Bfe),Bme("permProps",[[["locale","default"],[nQn,"gecko1_8"]],[["locale","default"],[nQn,"safari"]]]),Ose(null,"elk",null)}).call(this)}).call(this,typeof Nse<"u"?Nse:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(Xt,gt,Sr){function Di(Jt,ze){if(!(Jt instanceof ze))throw new TypeError("Cannot call a class as a function")}function y(Jt,ze){if(!Jt)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ze&&(typeof ze=="object"||typeof ze=="function")?ze:Jt}function Wt(Jt,ze){if(typeof ze!="function"&&ze!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof ze);Jt.prototype=Object.create(ze&&ze.prototype,{constructor:{value:Jt,enumerable:!1,writable:!0,configurable:!0}}),ze&&(Object.setPrototypeOf?Object.setPrototypeOf(Jt,ze):Jt.__proto__=ze)}var Bu=Xt("./elk-api.js").default,Ht=function(Jt){Wt(ze,Jt);function ze(){var Yi=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Di(this,ze);var Ri=Object.assign({},Yi),En=!1;try{Xt.resolve("web-worker"),En=!0}catch{}if(Yi.workerUrl)if(En){var hu=Xt("web-worker");Ri.workerFactory=function(Pr){return new hu(Pr)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`);if(!Ri.workerFactory){var Qc=Xt("./elk-worker.min.js"),Ru=Qc.Worker;Ri.workerFactory=function(Pr){return new Ru(Pr)}}return y(this,(ze.__proto__||Object.getPrototypeOf(ze)).call(this,Ri))}return ze}(Bu);Object.defineProperty(gt.exports,"__esModule",{value:!0}),gt.exports=Ht,Ht.default=Ht},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(Xt,gt,Sr){gt.exports=Worker},{}]},{},[3])(3)})})(Bse);var VNe=Bse.exports;const WNe=BNe(VNe),JNe=(ct,_t,Xt)=>{const{parentById:gt}=Xt,Sr=new Set;let Di=ct;for(;Di;){if(Sr.add(Di),Di===_t)return Di;Di=gt[Di]}for(Di=_t;Di;){if(Sr.has(Di))return Di;Di=gt[Di]}return"root"},$se=new WNe;let Ab={};const QNe={};let X3={};const YNe=async function(ct,_t,Xt,gt,Sr,Di,y){const Bu=Xt.select(`[id="${_t}"]`).insert("g").attr("class","nodes"),Ht=Object.keys(ct);return await Promise.all(Ht.map(async function(Jt){const ze=ct[Jt];let Yi="default";ze.classes.length>0&&(Yi=ze.classes.join(" ")),Yi=Yi+" flowchart-label";const Ri=E0n(ze.styles);let En=ze.text!==void 0?ze.text:ze.id;const hu={width:0,height:0},Qc=[{id:ze.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:ze.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:ze.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:ze.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let Ru=0,Pr="",Cf={};switch(ze.type){case"round":Ru=5,Pr="rect";break;case"square":Pr="rect";break;case"diamond":Pr="question",Cf={portConstraints:"FIXED_SIDE"};break;case"hexagon":Pr="hexagon";break;case"odd":Pr="rect_left_inv_arrow";break;case"lean_right":Pr="lean_right";break;case"lean_left":Pr="lean_left";break;case"trapezoid":Pr="trapezoid";break;case"inv_trapezoid":Pr="inv_trapezoid";break;case"odd_right":Pr="rect_left_inv_arrow";break;case"circle":Pr="circle";break;case"ellipse":Pr="ellipse";break;case"stadium":Pr="stadium";break;case"subroutine":Pr="subroutine";break;case"cylinder":Pr="cylinder";break;case"group":Pr="rect";break;case"doublecircle":Pr="doublecircle";break;default:Pr="rect"}const L1={labelStyle:Ri.labelStyle,shape:Pr,labelText:En,labelType:ze.labelType,rx:Ru,ry:Ru,class:Yi,style:Ri.style,id:ze.id,link:ze.link,linkTarget:ze.linkTarget,tooltip:Sr.db.getTooltip(ze.id)||"",domId:Sr.db.lookUpDomId(ze.id),haveCallback:ze.haveCallback,width:ze.type==="group"?500:void 0,dir:ze.dir,type:ze.type,props:ze.props,padding:xU().flowchart.padding};let N1,og;if(L1.type!=="group")og=await HNe(Bu,L1,ze.dir),N1=og.node().getBBox();else{gt.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:$1,bbox:ul}=await qNe(Bu,L1,void 0,!0);hu.width=ul.width,hu.wrappingWidth=xU().flowchart.wrappingWidth,hu.height=ul.height,hu.labelNode=$1.node(),L1.labelData=hu}const V3={id:ze.id,ports:ze.type==="diamond"?Qc:[],layoutOptions:Cf,labelText:En,labelData:hu,domId:Sr.db.lookUpDomId(ze.id),width:N1==null?void 0:N1.width,height:N1==null?void 0:N1.height,type:ze.type,el:og,parent:Di.parentById[ze.id]};X3[L1.id]=V3})),y},xse=(ct,_t,Xt)=>{const gt={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return gt.TD=gt.TB,gt[Xt][_t][ct]},Fse=(ct,_t,Xt)=>{if(Ba.info("getNextPort",{node:ct,edgeDirection:_t,graphDirection:Xt}),!Ab[ct])switch(Xt){case"TB":case"TD":Ab[ct]={inPosition:"north",outPosition:"south"};break;case"BT":Ab[ct]={inPosition:"south",outPosition:"north"};break;case"RL":Ab[ct]={inPosition:"east",outPosition:"west"};break;case"LR":Ab[ct]={inPosition:"west",outPosition:"east"};break}const gt=_t==="in"?Ab[ct].inPosition:Ab[ct].outPosition;return _t==="in"?Ab[ct].inPosition=xse(Ab[ct].inPosition,_t,Xt):Ab[ct].outPosition=xse(Ab[ct].outPosition,_t,Xt),gt},ZNe=(ct,_t)=>{let Xt=ct.start,gt=ct.end;const Sr=Xt,Di=gt,y=X3[Xt],Wt=X3[gt];return!y||!Wt?{source:Xt,target:gt}:(y.type==="diamond"&&(Xt=`${Xt}-${Fse(Xt,"out",_t)}`),Wt.type==="diamond"&&(gt=`${gt}-${Fse(gt,"in",_t)}`),{source:Xt,target:gt,sourceId:Sr,targetId:Di})},n$e=function(ct,_t,Xt,gt){Ba.info("abc78 edges = ",ct);const Sr=gt.insert("g").attr("class","edgeLabels");let Di={},y=_t.db.getDirection(),Wt,Bu;if(ct.defaultStyle!==void 0){const Ht=E0n(ct.defaultStyle);Wt=Ht.style,Bu=Ht.labelStyle}return ct.forEach(function(Ht){const Jt="L-"+Ht.start+"-"+Ht.end;Di[Jt]===void 0?(Di[Jt]=0,Ba.info("abc78 new entry",Jt,Di[Jt])):(Di[Jt]++,Ba.info("abc78 new entry",Jt,Di[Jt]));let ze=Jt+"-"+Di[Jt];Ba.info("abc78 new link id to be used is",Jt,ze,Di[Jt]);const Yi="LS-"+Ht.start,Ri="LE-"+Ht.end,En={style:"",labelStyle:""};switch(En.minlen=Ht.length||1,Ht.type==="arrow_open"?En.arrowhead="none":En.arrowhead="normal",En.arrowTypeStart="arrow_open",En.arrowTypeEnd="arrow_open",Ht.type){case"double_arrow_cross":En.arrowTypeStart="arrow_cross";case"arrow_cross":En.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":En.arrowTypeStart="arrow_point";case"arrow_point":En.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":En.arrowTypeStart="arrow_circle";case"arrow_circle":En.arrowTypeEnd="arrow_circle";break}let hu="",Qc="";switch(Ht.stroke){case"normal":hu="fill:none;",Wt!==void 0&&(hu=Wt),Bu!==void 0&&(Qc=Bu),En.thickness="normal",En.pattern="solid";break;case"dotted":En.thickness="normal",En.pattern="dotted",En.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":En.thickness="thick",En.pattern="solid",En.style="stroke-width: 3.5px;fill:none;";break}if(Ht.style!==void 0){const og=E0n(Ht.style);hu=og.style,Qc=og.labelStyle}En.style=En.style+=hu,En.labelStyle=En.labelStyle+=Qc,Ht.interpolate!==void 0?En.curve=j0n(Ht.interpolate,$U):ct.defaultInterpolate!==void 0?En.curve=j0n(ct.defaultInterpolate,$U):En.curve=j0n(QNe.curve,$U),Ht.text===void 0?Ht.style!==void 0&&(En.arrowheadStyle="fill: #333"):(En.arrowheadStyle="fill: #333",En.labelpos="c"),En.labelType=Ht.labelType,En.label=Ht.text.replace(KNe.lineBreakRegex,` +`),Ht.style===void 0&&(En.style=En.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),En.labelStyle=En.labelStyle.replace("color:","fill:"),En.id=ze,En.classes="flowchart-link "+Yi+" "+Ri;const Ru=UNe(Sr,En),{source:Pr,target:Cf,sourceId:L1,targetId:N1}=ZNe(Ht,y);Ba.debug("abc78 source and target",Pr,Cf),Xt.edges.push({id:"e"+Ht.start+Ht.end,sources:[Pr],targets:[Cf],sourceId:L1,targetId:N1,labelEl:Ru,labels:[{width:En.width,height:En.height,orgWidth:En.width,orgHeight:En.height,text:En.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:En})}),Xt},e$e=function(ct,_t,Xt,gt,Sr){let Di="";gt&&(Di=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Di=Di.replace(/\(/g,"\\("),Di=Di.replace(/\)/g,"\\)")),zNe(ct,_t,Di,Sr,Xt)},t$e=function(ct,_t){return Ba.info("Extracting classes"),_t.db.getClasses()},i$e=function(ct){const _t={parentById:{},childrenById:{}},Xt=ct.getSubGraphs();return Ba.info("Subgraphs - ",Xt),Xt.forEach(function(gt){gt.nodes.forEach(function(Sr){_t.parentById[Sr]=gt.id,_t.childrenById[gt.id]===void 0&&(_t.childrenById[gt.id]=[]),_t.childrenById[gt.id].push(Sr)})}),Xt.forEach(function(gt){gt.id,_t.parentById[gt.id]!==void 0&&_t.parentById[gt.id]}),_t},r$e=function(ct,_t,Xt){const gt=JNe(ct,_t,Xt);if(gt===void 0||gt==="root")return{x:0,y:0};const Sr=X3[gt].offset;return{x:Sr.posX,y:Sr.posY}},c$e=function(ct,_t,Xt,gt,Sr,Di){const y=r$e(_t.sourceId,_t.targetId,Sr),Wt=_t.sections[0].startPoint,Bu=_t.sections[0].endPoint,Jt=(_t.sections[0].bendPoints?_t.sections[0].bendPoints:[]).map(Cf=>[Cf.x+y.x,Cf.y+y.y]),ze=[[Wt.x+y.x,Wt.y+y.y],...Jt,[Bu.x+y.x,Bu.y+y.y]],{x:Yi,y:Ri}=GNe(_t.edgeData),En=XNe().x(Yi).y(Ri).curve($U),hu=ct.insert("path").attr("d",En(ze)).attr("class","path "+Xt.classes).attr("fill","none"),Qc=ct.insert("g").attr("class","edgeLabel"),Ru=IO(Qc.node().appendChild(_t.labelEl)),Pr=Ru.node().firstChild.getBoundingClientRect();Ru.attr("width",Pr.width),Ru.attr("height",Pr.height),Qc.attr("transform",`translate(${_t.labels[0].x+y.x}, ${_t.labels[0].y+y.y})`),e$e(hu,Xt,gt.type,gt.arrowMarkerAbsolute,Di)},Rse=(ct,_t)=>{ct.forEach(Xt=>{Xt.children||(Xt.children=[]);const gt=_t.childrenById[Xt.id];gt&>.forEach(Sr=>{Xt.children.push(X3[Sr])}),Rse(Xt.children,_t)})},u$e=async function(ct,_t,Xt,gt){var Sr;gt.db.clear(),X3={},Ab={},gt.db.setGen("gen-2"),gt.parser.parse(ct);const Di=IO("body").append("div").attr("style","height:400px").attr("id","cy");let y={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Ba.info("Drawing flowchart using v3 renderer",$se),gt.db.getDirection()){case"BT":y.layoutOptions["elk.direction"]="UP";break;case"TB":y.layoutOptions["elk.direction"]="DOWN";break;case"LR":y.layoutOptions["elk.direction"]="RIGHT";break;case"RL":y.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:Bu,flowchart:Ht}=xU();let Jt;Bu==="sandbox"&&(Jt=IO("#i"+_t));const ze=Bu==="sandbox"?IO(Jt.nodes()[0].contentDocument.body):IO("body"),Yi=Bu==="sandbox"?Jt.nodes()[0].contentDocument:document,Ri=ze.select(`[id="${_t}"]`);_Ne(Ri,["point","circle","cross"],gt.type,_t);const hu=gt.db.getVertices();let Qc;const Ru=gt.db.getSubGraphs();Ba.info("Subgraphs - ",Ru);for(let $1=Ru.length-1;$1>=0;$1--)Qc=Ru[$1],gt.db.addVertex(Qc.id,{text:Qc.title,type:Qc.labelType},"group",void 0,Qc.classes,Qc.dir);const Pr=Ri.insert("g").attr("class","subgraphs"),Cf=i$e(gt.db);y=await YNe(hu,_t,ze,Yi,gt,Cf,y);const L1=Ri.insert("g").attr("class","edges edgePath"),N1=gt.db.getEdges();y=n$e(N1,gt,y,Ri),Object.keys(X3).forEach($1=>{const ul=X3[$1];ul.parent||y.children.push(ul),Cf.childrenById[$1]!==void 0&&(ul.labels=[{text:ul.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:ul.labelData.width,height:ul.labelData.height}],delete ul.x,delete ul.y,delete ul.width,delete ul.height)}),Rse(y.children,Cf),Ba.info("after layout",JSON.stringify(y,null,2));const V3=await $se.layout(y);Kse(0,0,V3.children,Ri,Pr,gt,0),Ba.info("after layout",V3),(Sr=V3.edges)==null||Sr.map($1=>{c$e(L1,$1,$1.edgeData,gt,Cf,_t)}),RNe({},Ri,Ht.diagramPadding,Ht.useMaxWidth),Di.remove()},Kse=(ct,_t,Xt,gt,Sr,Di,y)=>{Xt.forEach(function(Wt){if(Wt)if(X3[Wt.id].offset={posX:Wt.x+ct,posY:Wt.y+_t,x:ct,y:_t,depth:y,width:Wt.width,height:Wt.height},Wt.type==="group"){const Bu=Sr.insert("g").attr("class","subgraph");Bu.insert("rect").attr("class","subgraph subgraph-lvl-"+y%5+" node").attr("x",Wt.x+ct).attr("y",Wt.y+_t).attr("width",Wt.width).attr("height",Wt.height);const Ht=Bu.insert("g").attr("class","label"),Jt=xU().flowchart.htmlLabels?Wt.labelData.width/2:0;Ht.attr("transform",`translate(${Wt.labels[0].x+ct+Wt.x+Jt}, ${Wt.labels[0].y+_t+Wt.y+3})`),Ht.node().appendChild(Wt.labelData.labelNode),Ba.info("Id (UGH)= ",Wt.type,Wt.labels)}else Ba.info("Id (UGH)= ",Wt.id),Wt.el.attr("transform",`translate(${Wt.x+ct+Wt.width/2}, ${Wt.y+_t+Wt.height/2})`)}),Xt.forEach(function(Wt){Wt&&Wt.type==="group"&&Kse(ct+Wt.x,_t+Wt.y,Wt.children,gt,Sr,Di,y+1)})},o$e={getClasses:t$e,draw:u$e},s$e=ct=>{let _t="";for(let Xt=0;Xt<5;Xt++)_t+=` + .subgraph-lvl-${Xt} { + fill: ${ct[`surface${Xt}`]}; + stroke: ${ct[`surfacePeer${Xt}`]}; + } + `;return _t},f$e=ct=>`.label { + font-family: ${ct.fontFamily}; + color: ${ct.nodeTextColor||ct.textColor}; + } + .cluster-label text { + fill: ${ct.titleColor}; + } + .cluster-label span { + color: ${ct.titleColor}; + } + + .label text,span { + fill: ${ct.nodeTextColor||ct.textColor}; + color: ${ct.nodeTextColor||ct.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${ct.mainBkg}; + stroke: ${ct.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${ct.arrowheadColor}; + } + + .edgePath .path { + stroke: ${ct.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${ct.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${ct.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${ct.edgeLabelBackground}; + fill: ${ct.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${ct.clusterBkg}; + stroke: ${ct.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${ct.titleColor}; + } + + .cluster span { + color: ${ct.titleColor}; + } + /* .cluster div { + color: ${ct.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${ct.fontFamily}; + font-size: 12px; + background: ${ct.tertiaryColor}; + border: 1px solid ${ct.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${ct.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${s$e(ct)} +`,h$e=f$e,v$e={db:xNe,renderer:o$e,parser:FNe,styles:h$e};export{v$e as diagram}; diff --git a/assets/ganttDiagram-b62c793e-DZKZndxq.js b/assets/ganttDiagram-b62c793e-DZKZndxq.js new file mode 100644 index 00000000..8c55d481 --- /dev/null +++ b/assets/ganttDiagram-b62c793e-DZKZndxq.js @@ -0,0 +1,257 @@ +import{J as Be,K as Ze,R as Xe,L as qe,M as Dn,N as Kt,O as Mn,P as ye,Q as ke,T as nt,c as Dt,s as Sn,g as _n,C as Yn,D as Un,b as Fn,a as Ln,E as En,m as An,l as Gt,h as Rt,i as In,j as Wn,A as On}from"./mermaid.core-Bc1j4tiv.js";import{b as Hn,t as Ye,c as Nn,a as Vn,l as Pn}from"./linear-BnGacGIF.js";import{i as zn}from"./init-Gi6I4Gst.js";import"./app-Ca-A-iaw.js";function Rn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Bn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Zn(t){return t}var Zt=1,te=2,ue=3,Bt=4,Ue=1e-6;function Xn(t){return"translate("+t+",0)"}function qn(t){return"translate(0,"+t+")"}function Gn(t){return e=>+t(e)}function Qn(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function jn(){return!this.__axis}function Ge(t,e){var n=[],r=null,i=null,s=6,a=6,y=3,S=typeof window<"u"&&window.devicePixelRatio>1?0:.5,p=t===Zt||t===Bt?-1:1,g=t===Bt||t===te?"x":"y",F=t===Zt||t===ue?Xn:qn;function w(T){var q=r??(e.ticks?e.ticks.apply(e,n):e.domain()),I=i??(e.tickFormat?e.tickFormat.apply(e,n):Zn),D=Math.max(s,0)+y,L=e.range(),H=+L[0]+S,E=+L[L.length-1]+S,Z=(e.bandwidth?Qn:Gn)(e.copy(),S),j=T.selection?T.selection():T,b=j.selectAll(".domain").data([null]),W=j.selectAll(".tick").data(q,e).order(),v=W.exit(),U=W.enter().append("g").attr("class","tick"),_=W.select("line"),x=W.select("text");b=b.merge(b.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),W=W.merge(U),_=_.merge(U.append("line").attr("stroke","currentColor").attr(g+"2",p*s)),x=x.merge(U.append("text").attr("fill","currentColor").attr(g,p*D).attr("dy",t===Zt?"0em":t===ue?"0.71em":"0.32em")),T!==j&&(b=b.transition(T),W=W.transition(T),_=_.transition(T),x=x.transition(T),v=v.transition(T).attr("opacity",Ue).attr("transform",function(o){return isFinite(o=Z(o))?F(o+S):this.getAttribute("transform")}),U.attr("opacity",Ue).attr("transform",function(o){var f=this.parentNode.__axis;return F((f&&isFinite(f=f(o))?f:Z(o))+S)})),v.remove(),b.attr("d",t===Bt||t===te?a?"M"+p*a+","+H+"H"+S+"V"+E+"H"+p*a:"M"+S+","+H+"V"+E:a?"M"+H+","+p*a+"V"+S+"H"+E+"V"+p*a:"M"+H+","+S+"H"+E),W.attr("opacity",1).attr("transform",function(o){return F(Z(o)+S)}),_.attr(g+"2",p*s),x.attr(g,p*D).text(I),j.filter(jn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===te?"start":t===Bt?"end":"middle"),j.each(function(){this.__axis=Z})}return w.scale=function(T){return arguments.length?(e=T,w):e},w.ticks=function(){return n=Array.from(arguments),w},w.tickArguments=function(T){return arguments.length?(n=T==null?[]:Array.from(T),w):n.slice()},w.tickValues=function(T){return arguments.length?(r=T==null?null:Array.from(T),w):r&&r.slice()},w.tickFormat=function(T){return arguments.length?(i=T,w):i},w.tickSize=function(T){return arguments.length?(s=a=+T,w):s},w.tickSizeInner=function(T){return arguments.length?(s=+T,w):s},w.tickSizeOuter=function(T){return arguments.length?(a=+T,w):a},w.tickPadding=function(T){return arguments.length?(y=+T,w):y},w.offset=function(T){return arguments.length?(S=+T,w):S},w}function Jn(t){return Ge(Zt,t)}function $n(t){return Ge(ue,t)}const Kn=Math.PI/180,tr=180/Math.PI,Qt=18,Qe=.96422,je=1,Je=.82521,$e=4/29,Mt=6/29,Ke=3*Mt*Mt,er=Mt*Mt*Mt;function tn(t){if(t instanceof st)return new st(t.l,t.a,t.b,t.opacity);if(t instanceof ft)return en(t);t instanceof Xe||(t=Dn(t));var e=ie(t.r),n=ie(t.g),r=ie(t.b),i=ee((.2225045*e+.7168786*n+.0606169*r)/je),s,a;return e===n&&n===r?s=a=i:(s=ee((.4360747*e+.3850649*n+.1430804*r)/Qe),a=ee((.0139322*e+.0971045*n+.7141733*r)/Je)),new st(116*i-16,500*(s-i),200*(i-a),t.opacity)}function nr(t,e,n,r){return arguments.length===1?tn(t):new st(t,e,n,r??1)}function st(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Be(st,nr,Ze(qe,{brighter(t){return new st(this.l+Qt*(t??1),this.a,this.b,this.opacity)},darker(t){return new st(this.l-Qt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Qe*ne(e),t=je*ne(t),n=Je*ne(n),new Xe(re(3.1338561*e-1.6168667*t-.4906146*n),re(-.9787684*e+1.9161415*t+.033454*n),re(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function ee(t){return t>er?Math.pow(t,1/3):t/Ke+$e}function ne(t){return t>Mt?t*t*t:Ke*(t-$e)}function re(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ie(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function rr(t){if(t instanceof ft)return new ft(t.h,t.c,t.l,t.opacity);if(t instanceof st||(t=tn(t)),t.a===0&&t.b===0)return new ft(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),y=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,y)=>{const S=[];if(s=i.ceil(s),y=y==null?1:Math.floor(y),!(s0))return S;let p;do S.push(p=new Date(+s)),e(s,y),t(s);while(ptt(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,y)=>{if(a>=a)if(y<0)for(;++y<=0;)for(;e(a,-1),!s(a););else for(;--y>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(se.setTime(+s),ae.setTime(+a),t(se),t(ae),Math.floor(n(se,ae))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const _t=tt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);_t.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?tt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):_t);_t.range;const ht=1e3,rt=ht*60,dt=rt*60,mt=dt*24,pe=mt*7,Fe=mt*30,oe=mt*365,kt=tt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getUTCSeconds());kt.range;const At=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ht)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getMinutes());At.range;const or=tt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getUTCMinutes());or.range;const It=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ht-t.getMinutes()*rt)},(t,e)=>{t.setTime(+t+e*dt)},(t,e)=>(e-t)/dt,t=>t.getHours());It.range;const cr=tt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*dt)},(t,e)=>(e-t)/dt,t=>t.getUTCHours());cr.range;const pt=tt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rt)/mt,t=>t.getDate()-1);pt.range;const Te=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/mt,t=>t.getUTCDate()-1);Te.range;const lr=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/mt,t=>Math.floor(t/mt));lr.range;function bt(t){return tt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*rt)/pe)}const Ht=bt(0),Wt=bt(1),nn=bt(2),rn=bt(3),Tt=bt(4),sn=bt(5),an=bt(6);Ht.range;Wt.range;nn.range;rn.range;Tt.range;sn.range;an.range;function xt(t){return tt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/pe)}const on=xt(0),jt=xt(1),ur=xt(2),fr=xt(3),Yt=xt(4),hr=xt(5),dr=xt(6);on.range;jt.range;ur.range;fr.range;Yt.range;hr.range;dr.range;const Ot=tt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Ot.range;const mr=tt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());mr.range;const gt=tt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());gt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});gt.range;const vt=tt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());vt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});vt.range;function gr(t,e,n,r,i,s){const a=[[kt,1,ht],[kt,5,5*ht],[kt,15,15*ht],[kt,30,30*ht],[s,1,rt],[s,5,5*rt],[s,15,15*rt],[s,30,30*rt],[i,1,dt],[i,3,3*dt],[i,6,6*dt],[i,12,12*dt],[r,1,mt],[r,2,2*mt],[n,1,pe],[e,1,Fe],[e,3,3*Fe],[t,1,oe]];function y(p,g,F){const w=gD).right(a,w);if(T===a.length)return t.every(Ye(p/oe,g/oe,F));if(T===0)return _t.every(Math.max(Ye(p,g,F),1));const[q,I]=a[w/a[T-1][2]53)return null;"w"in l||(l.w=1),"Z"in l?(V=le(Ft(l.y,0,1)),Q=V.getUTCDay(),V=Q>4||Q===0?jt.ceil(V):jt(V),V=Te.offset(V,(l.V-1)*7),l.y=V.getUTCFullYear(),l.m=V.getUTCMonth(),l.d=V.getUTCDate()+(l.w+6)%7):(V=ce(Ft(l.y,0,1)),Q=V.getDay(),V=Q>4||Q===0?Wt.ceil(V):Wt(V),V=pt.offset(V,(l.V-1)*7),l.y=V.getFullYear(),l.m=V.getMonth(),l.d=V.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),Q="Z"in l?le(Ft(l.y,0,1)).getUTCDay():ce(Ft(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(Q+5)%7:l.w+l.U*7-(Q+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,le(l)):ce(l)}}function v(k,A,Y,l){for(var B=0,V=A.length,Q=Y.length,J,$;B=Q)return-1;if(J=A.charCodeAt(B++),J===37){if(J=A.charAt(B++),$=j[J in Le?A.charAt(B++):J],!$||(l=$(k,Y,l))<0)return-1}else if(J!=Y.charCodeAt(l++))return-1}return l}function U(k,A,Y){var l=p.exec(A.slice(Y));return l?(k.p=g.get(l[0].toLowerCase()),Y+l[0].length):-1}function _(k,A,Y){var l=T.exec(A.slice(Y));return l?(k.w=q.get(l[0].toLowerCase()),Y+l[0].length):-1}function x(k,A,Y){var l=F.exec(A.slice(Y));return l?(k.w=w.get(l[0].toLowerCase()),Y+l[0].length):-1}function o(k,A,Y){var l=L.exec(A.slice(Y));return l?(k.m=H.get(l[0].toLowerCase()),Y+l[0].length):-1}function f(k,A,Y){var l=I.exec(A.slice(Y));return l?(k.m=D.get(l[0].toLowerCase()),Y+l[0].length):-1}function m(k,A,Y){return v(k,e,A,Y)}function u(k,A,Y){return v(k,n,A,Y)}function M(k,A,Y){return v(k,r,A,Y)}function c(k){return a[k.getDay()]}function G(k){return s[k.getDay()]}function d(k){return S[k.getMonth()]}function h(k){return y[k.getMonth()]}function C(k){return i[+(k.getHours()>=12)]}function X(k){return 1+~~(k.getMonth()/3)}function O(k){return a[k.getUTCDay()]}function P(k){return s[k.getUTCDay()]}function N(k){return S[k.getUTCMonth()]}function z(k){return y[k.getUTCMonth()]}function at(k){return i[+(k.getUTCHours()>=12)]}function ot(k){return 1+~~(k.getUTCMonth()/3)}return{format:function(k){var A=b(k+="",E);return A.toString=function(){return k},A},parse:function(k){var A=W(k+="",!1);return A.toString=function(){return k},A},utcFormat:function(k){var A=b(k+="",Z);return A.toString=function(){return k},A},utcParse:function(k){var A=W(k+="",!0);return A.toString=function(){return k},A}}}var Le={"-":"",_:" ",0:"0"},et=/^\s*\d+/,Tr=/^%/,vr=/[\\^$*+?|[\]().{}]/g;function R(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function xr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function wr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Cr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Dr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Mr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ee(t,e,n){var r=et.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ae(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function _r(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Yr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ie(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Ur(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function We(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Fr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Er(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Ar(t,e,n){var r=et.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ir(t,e,n){var r=Tr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Wr(t,e,n){var r=et.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=et.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Oe(t,e){return R(t.getDate(),e,2)}function Hr(t,e){return R(t.getHours(),e,2)}function Nr(t,e){return R(t.getHours()%12||12,e,2)}function Vr(t,e){return R(1+pt.count(gt(t),t),e,3)}function cn(t,e){return R(t.getMilliseconds(),e,3)}function Pr(t,e){return cn(t,e)+"000"}function zr(t,e){return R(t.getMonth()+1,e,2)}function Rr(t,e){return R(t.getMinutes(),e,2)}function Br(t,e){return R(t.getSeconds(),e,2)}function Zr(t){var e=t.getDay();return e===0?7:e}function Xr(t,e){return R(Ht.count(gt(t)-1,t),e,2)}function ln(t){var e=t.getDay();return e>=4||e===0?Tt(t):Tt.ceil(t)}function qr(t,e){return t=ln(t),R(Tt.count(gt(t),t)+(gt(t).getDay()===4),e,2)}function Gr(t){return t.getDay()}function Qr(t,e){return R(Wt.count(gt(t)-1,t),e,2)}function jr(t,e){return R(t.getFullYear()%100,e,2)}function Jr(t,e){return t=ln(t),R(t.getFullYear()%100,e,2)}function $r(t,e){return R(t.getFullYear()%1e4,e,4)}function Kr(t,e){var n=t.getDay();return t=n>=4||n===0?Tt(t):Tt.ceil(t),R(t.getFullYear()%1e4,e,4)}function ti(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+R(e/60|0,"0",2)+R(e%60,"0",2)}function He(t,e){return R(t.getUTCDate(),e,2)}function ei(t,e){return R(t.getUTCHours(),e,2)}function ni(t,e){return R(t.getUTCHours()%12||12,e,2)}function ri(t,e){return R(1+Te.count(vt(t),t),e,3)}function un(t,e){return R(t.getUTCMilliseconds(),e,3)}function ii(t,e){return un(t,e)+"000"}function si(t,e){return R(t.getUTCMonth()+1,e,2)}function ai(t,e){return R(t.getUTCMinutes(),e,2)}function oi(t,e){return R(t.getUTCSeconds(),e,2)}function ci(t){var e=t.getUTCDay();return e===0?7:e}function li(t,e){return R(on.count(vt(t)-1,t),e,2)}function fn(t){var e=t.getUTCDay();return e>=4||e===0?Yt(t):Yt.ceil(t)}function ui(t,e){return t=fn(t),R(Yt.count(vt(t),t)+(vt(t).getUTCDay()===4),e,2)}function fi(t){return t.getUTCDay()}function hi(t,e){return R(jt.count(vt(t)-1,t),e,2)}function di(t,e){return R(t.getUTCFullYear()%100,e,2)}function mi(t,e){return t=fn(t),R(t.getUTCFullYear()%100,e,2)}function gi(t,e){return R(t.getUTCFullYear()%1e4,e,4)}function yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Yt(t):Yt.ceil(t),R(t.getUTCFullYear()%1e4,e,4)}function ki(){return"+0000"}function Ne(){return"%"}function Ve(t){return+t}function Pe(t){return Math.floor(+t/1e3)}var Ct,Jt;pi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function pi(t){return Ct=pr(t),Jt=Ct.format,Ct.parse,Ct.utcFormat,Ct.utcParse,Ct}function Ti(t){return new Date(t)}function vi(t){return t instanceof Date?+t:+new Date(+t)}function hn(t,e,n,r,i,s,a,y,S,p){var g=Nn(),F=g.invert,w=g.domain,T=p(".%L"),q=p(":%S"),I=p("%I:%M"),D=p("%I %p"),L=p("%a %d"),H=p("%b %d"),E=p("%B"),Z=p("%Y");function j(b){return(S(b)4&&(T+=7),w.add(T,n));return q.diff(I,"week")+1},y.isoWeekday=function(p){return this.$utils().u(p)?this.day()||7:this.day(this.day()%7?p:p-7)};var S=y.startOf;y.startOf=function(p,g){var F=this.$utils(),w=!!F.u(g)||g;return F.p(p)==="isoweek"?w?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):S.bind(this)(p,g)}}})})(dn);var xi=dn.exports;const wi=ke(xi);var mn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,a=/\d\d?/,y=/\d*[^-_:/,()\s\d]+/,S={},p=function(D){return(D=+D)+(D>68?1900:2e3)},g=function(D){return function(L){this[D]=+L}},F=[/[+-]\d\d:?(\d\d)?|Z/,function(D){(this.zone||(this.zone={})).offset=function(L){if(!L||L==="Z")return 0;var H=L.match(/([+-]|\d\d)/g),E=60*H[1]+(+H[2]||0);return E===0?0:H[0]==="+"?-E:E}(D)}],w=function(D){var L=S[D];return L&&(L.indexOf?L:L.s.concat(L.f))},T=function(D,L){var H,E=S.meridiem;if(E){for(var Z=1;Z<=24;Z+=1)if(D.indexOf(E(Z,0,L))>-1){H=Z>12;break}}else H=D===(L?"pm":"PM");return H},q={A:[y,function(D){this.afternoon=T(D,!1)}],a:[y,function(D){this.afternoon=T(D,!0)}],Q:[i,function(D){this.month=3*(D-1)+1}],S:[i,function(D){this.milliseconds=100*+D}],SS:[s,function(D){this.milliseconds=10*+D}],SSS:[/\d{3}/,function(D){this.milliseconds=+D}],s:[a,g("seconds")],ss:[a,g("seconds")],m:[a,g("minutes")],mm:[a,g("minutes")],H:[a,g("hours")],h:[a,g("hours")],HH:[a,g("hours")],hh:[a,g("hours")],D:[a,g("day")],DD:[s,g("day")],Do:[y,function(D){var L=S.ordinal,H=D.match(/\d+/);if(this.day=H[0],L)for(var E=1;E<=31;E+=1)L(E).replace(/\[|\]/g,"")===D&&(this.day=E)}],w:[a,g("week")],ww:[s,g("week")],M:[a,g("month")],MM:[s,g("month")],MMM:[y,function(D){var L=w("months"),H=(w("monthsShort")||L.map(function(E){return E.slice(0,3)})).indexOf(D)+1;if(H<1)throw new Error;this.month=H%12||H}],MMMM:[y,function(D){var L=w("months").indexOf(D)+1;if(L<1)throw new Error;this.month=L%12||L}],Y:[/[+-]?\d+/,g("year")],YY:[s,function(D){this.year=p(D)}],YYYY:[/\d{4}/,g("year")],Z:F,ZZ:F};function I(D){var L,H;L=D,H=S&&S.formats;for(var E=(D=L.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(_,x,o){var f=o&&o.toUpperCase();return x||H[o]||n[o]||H[f].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(m,u,M){return u||M.slice(1)})})).match(r),Z=E.length,j=0;j-1)return new Date((G==="X"?1e3:1)*c);var C=I(G)(c),X=C.year,O=C.month,P=C.day,N=C.hours,z=C.minutes,at=C.seconds,ot=C.milliseconds,k=C.zone,A=C.week,Y=new Date,l=P||(X||O?1:Y.getDate()),B=X||Y.getFullYear(),V=0;X&&!O||(V=O>0?O-1:Y.getMonth());var Q,J=N||0,$=z||0,ct=at||0,yt=ot||0;return k?new Date(Date.UTC(B,V,l,J,$,ct,yt+60*k.offset*1e3)):d?new Date(Date.UTC(B,V,l,J,$,ct,yt)):(Q=new Date(B,V,l,J,$,ct,yt),A&&(Q=h(Q).week(A).toDate()),Q)}catch{return new Date("")}}(b,U,W,H),this.init(),f&&f!==!0&&(this.$L=this.locale(f).$L),o&&b!=this.format(U)&&(this.$d=new Date("")),S={}}else if(U instanceof Array)for(var m=U.length,u=1;u<=m;u+=1){v[1]=U[u-1];var M=H.apply(this,v);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}u===m&&(this.$d=new Date(""))}else Z.call(this,j)}}})})(mn);var Ci=mn.exports;const Di=ke(Ci);var gn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var y=this,S=this.$locale();if(!this.isValid())return s.bind(this)(a);var p=this.$utils(),g=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(F){switch(F){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return S.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return S.ordinal(y.week(),"W");case"w":case"ww":return p.s(y.week(),F==="w"?1:2,"0");case"W":case"WW":return p.s(y.isoWeek(),F==="W"?1:2,"0");case"k":case"kk":return p.s(String(y.$H===0?24:y.$H),F==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return F}});return s.bind(this)(g)}}})})(gn);var Mi=gn.exports;const Si=ke(Mi);var he=function(){var t=function(x,o,f,m){for(f=f||{},m=x.length;m--;f[x[m]]=o);return f},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],r=[1,26],i=[1,27],s=[1,28],a=[1,29],y=[1,30],S=[1,31],p=[1,9],g=[1,10],F=[1,11],w=[1,12],T=[1,13],q=[1,14],I=[1,15],D=[1,16],L=[1,18],H=[1,19],E=[1,20],Z=[1,21],j=[1,22],b=[1,24],W=[1,32],v={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(o,f,m,u,M,c,G){var d=c.length-1;switch(M){case 1:return c[d-1];case 2:this.$=[];break;case 3:c[d-1].push(c[d]),this.$=c[d-1];break;case 4:case 5:this.$=c[d];break;case 6:case 7:this.$=[];break;case 8:u.setWeekday("monday");break;case 9:u.setWeekday("tuesday");break;case 10:u.setWeekday("wednesday");break;case 11:u.setWeekday("thursday");break;case 12:u.setWeekday("friday");break;case 13:u.setWeekday("saturday");break;case 14:u.setWeekday("sunday");break;case 15:u.setDateFormat(c[d].substr(11)),this.$=c[d].substr(11);break;case 16:u.enableInclusiveEndDates(),this.$=c[d].substr(18);break;case 17:u.TopAxis(),this.$=c[d].substr(8);break;case 18:u.setAxisFormat(c[d].substr(11)),this.$=c[d].substr(11);break;case 19:u.setTickInterval(c[d].substr(13)),this.$=c[d].substr(13);break;case 20:u.setExcludes(c[d].substr(9)),this.$=c[d].substr(9);break;case 21:u.setIncludes(c[d].substr(9)),this.$=c[d].substr(9);break;case 22:u.setTodayMarker(c[d].substr(12)),this.$=c[d].substr(12);break;case 24:u.setDiagramTitle(c[d].substr(6)),this.$=c[d].substr(6);break;case 25:this.$=c[d].trim(),u.setAccTitle(this.$);break;case 26:case 27:this.$=c[d].trim(),u.setAccDescription(this.$);break;case 28:u.addSection(c[d].substr(8)),this.$=c[d].substr(8);break;case 30:u.addTask(c[d-1],c[d]),this.$="task";break;case 31:this.$=c[d-1],u.setClickEvent(c[d-1],c[d],null);break;case 32:this.$=c[d-2],u.setClickEvent(c[d-2],c[d-1],c[d]);break;case 33:this.$=c[d-2],u.setClickEvent(c[d-2],c[d-1],null),u.setLink(c[d-2],c[d]);break;case 34:this.$=c[d-3],u.setClickEvent(c[d-3],c[d-2],c[d-1]),u.setLink(c[d-3],c[d]);break;case 35:this.$=c[d-2],u.setClickEvent(c[d-2],c[d],null),u.setLink(c[d-2],c[d-1]);break;case 36:this.$=c[d-3],u.setClickEvent(c[d-3],c[d-1],c[d]),u.setLink(c[d-3],c[d-2]);break;case 37:this.$=c[d-1],u.setLink(c[d-1],c[d]);break;case 38:case 44:this.$=c[d-1]+" "+c[d];break;case 39:case 40:case 42:this.$=c[d-2]+" "+c[d-1]+" "+c[d];break;case 41:case 43:this.$=c[d-3]+" "+c[d-2]+" "+c[d-1]+" "+c[d];break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:S,19:p,20:g,21:F,22:w,23:T,24:q,25:I,26:D,27:L,28:H,30:E,32:Z,33:j,34:23,35:b,37:W},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:S,19:p,20:g,21:F,22:w,23:T,24:q,25:I,26:D,27:L,28:H,30:E,32:Z,33:j,34:23,35:b,37:W},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var m=new Error(o);throw m.hash=f,m}},parse:function(o){var f=this,m=[0],u=[],M=[null],c=[],G=this.table,d="",h=0,C=0,X=2,O=1,P=c.slice.call(arguments,1),N=Object.create(this.lexer),z={yy:{}};for(var at in this.yy)Object.prototype.hasOwnProperty.call(this.yy,at)&&(z.yy[at]=this.yy[at]);N.setInput(o,z.yy),z.yy.lexer=N,z.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var ot=N.yylloc;c.push(ot);var k=N.options&&N.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function A(){var lt;return lt=u.pop()||N.lex()||O,typeof lt!="number"&&(lt instanceof Array&&(u=lt,lt=u.pop()),lt=f.symbols_[lt]||lt),lt}for(var Y,l,B,V,Q={},J,$,ct,yt;;){if(l=m[m.length-1],this.defaultActions[l]?B=this.defaultActions[l]:((Y===null||typeof Y>"u")&&(Y=A()),B=G[l]&&G[l][Y]),typeof B>"u"||!B.length||!B[0]){var zt="";yt=[];for(J in G[l])this.terminals_[J]&&J>X&&yt.push("'"+this.terminals_[J]+"'");N.showPosition?zt="Parse error on line "+(h+1)+`: +`+N.showPosition()+` +Expecting `+yt.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":zt="Parse error on line "+(h+1)+": Unexpected "+(Y==O?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(zt,{text:N.match,token:this.terminals_[Y]||Y,line:N.yylineno,loc:ot,expected:yt})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+l+", token: "+Y);switch(B[0]){case 1:m.push(Y),M.push(N.yytext),c.push(N.yylloc),m.push(B[1]),Y=null,C=N.yyleng,d=N.yytext,h=N.yylineno,ot=N.yylloc;break;case 2:if($=this.productions_[B[1]][1],Q.$=M[M.length-$],Q._$={first_line:c[c.length-($||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-($||1)].first_column,last_column:c[c.length-1].last_column},k&&(Q._$.range=[c[c.length-($||1)].range[0],c[c.length-1].range[1]]),V=this.performAction.apply(Q,[d,C,h,z.yy,B[1],M,c].concat(P)),typeof V<"u")return V;$&&(m=m.slice(0,-1*$*2),M=M.slice(0,-1*$),c=c.slice(0,-1*$)),m.push(this.productions_[B[1]][0]),M.push(Q.$),c.push(Q._$),ct=G[m[m.length-2]][m[m.length-1]],m.push(ct);break;case 3:return!0}}return!0}},U=function(){var x={EOF:1,parseError:function(f,m){if(this.yy.parser)this.yy.parser.parseError(f,m);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,m=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===u.length?this.yylloc.first_column:0)+u[u.length-m.length].length-m[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),f=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+f+"^"},test_match:function(o,f){var m,u,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],m=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var c in M)this[c]=M[c];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,m,u;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),c=0;cf[0].length)){if(f=m,u=c,this.options.backtrack_lexer){if(o=this.test_match(m,M[c]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,M[u]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(f,m,u,M){switch(u){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return x}();v.lexer=U;function _(){this.yy={}}return _.prototype=v,v.Parser=_,new _}();he.parser=he;const _i=he;nt.extend(wi);nt.extend(Di);nt.extend(Si);let it="",ve="",be,xe="",Nt=[],Vt=[],we={},Ce=[],$t=[],Ut="",De="";const yn=["active","done","crit","milestone"];let Me=[],Pt=!1,Se=!1,_e="sunday",de=0;const Yi=function(){Ce=[],$t=[],Ut="",Me=[],Xt=0,ge=void 0,qt=void 0,K=[],it="",ve="",De="",be=void 0,xe="",Nt=[],Vt=[],Pt=!1,Se=!1,de=0,we={},En(),_e="sunday"},Ui=function(t){ve=t},Fi=function(){return ve},Li=function(t){be=t},Ei=function(){return be},Ai=function(t){xe=t},Ii=function(){return xe},Wi=function(t){it=t},Oi=function(){Pt=!0},Hi=function(){return Pt},Ni=function(){Se=!0},Vi=function(){return Se},Pi=function(t){De=t},zi=function(){return De},Ri=function(){return it},Bi=function(t){Nt=t.toLowerCase().split(/[\s,]+/)},Zi=function(){return Nt},Xi=function(t){Vt=t.toLowerCase().split(/[\s,]+/)},qi=function(){return Vt},Gi=function(){return we},Qi=function(t){Ut=t,Ce.push(t)},ji=function(){return Ce},Ji=function(){let t=ze();const e=10;let n=0;for(;!t&&n=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase())?!0:n.includes(t.format(e.trim()))},$i=function(t){_e=t},Ki=function(){return _e},pn=function(t,e,n,r){if(!n.length||t.manualEndTime)return;let i;t.startTime instanceof Date?i=nt(t.startTime):i=nt(t.startTime,e,!0),i=i.add(1,"d");let s;t.endTime instanceof Date?s=nt(t.endTime):s=nt(t.endTime,e,!0);const[a,y]=ts(i,s,e,n,r);t.endTime=a.toDate(),t.renderEndTime=y},ts=function(t,e,n,r,i){let s=!1,a=null;for(;t<=e;)s||(a=e.toDate()),s=kn(t,n,r,i),s&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},me=function(t,e,n){n=n.trim();const i=/^after\s+(?[\d\w- ]+)/.exec(n);if(i!==null){let a=null;for(const S of i.groups.ids.split(" ")){let p=wt(S);p!==void 0&&(!a||p.endTime>a.endTime)&&(a=p)}if(a)return a.endTime;const y=new Date;return y.setHours(0,0,0,0),y}let s=nt(n,e.trim(),!0);if(s.isValid())return s.toDate();{Gt.debug("Invalid date:"+n),Gt.debug("With date format:"+e.trim());const a=new Date(n);if(a===void 0||isNaN(a.getTime())||a.getFullYear()<-1e4||a.getFullYear()>1e4)throw new Error("Invalid date:"+n);return a}},Tn=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},vn=function(t,e,n,r=!1){n=n.trim();const s=/^until\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let g=null;for(const w of s.groups.ids.split(" ")){let T=wt(w);T!==void 0&&(!g||T.startTime{window.open(n,"_self")}),we[r]=n)}),xn(t,"clickable")},xn=function(t,e){t.split(",").forEach(function(n){let r=wt(n);r!==void 0&&r.classes.push(e)})},as=function(t,e,n){if(Dt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{On.runFunc(e,...r)})},wn=function(t,e){Me.push(function(){const n=document.querySelector(`[id="${t}"]`);n!==null&&n.addEventListener("click",function(){e()})},function(){const n=document.querySelector(`[id="${t}-text"]`);n!==null&&n.addEventListener("click",function(){e()})})},os=function(t,e,n){t.split(",").forEach(function(r){as(r,e,n)}),xn(t,"clickable")},cs=function(t){Me.forEach(function(e){e(t)})},ls={getConfig:()=>Dt().gantt,clear:Yi,setDateFormat:Wi,getDateFormat:Ri,enableInclusiveEndDates:Oi,endDatesAreInclusive:Hi,enableTopAxis:Ni,topAxisEnabled:Vi,setAxisFormat:Ui,getAxisFormat:Fi,setTickInterval:Li,getTickInterval:Ei,setTodayMarker:Ai,getTodayMarker:Ii,setAccTitle:Sn,getAccTitle:_n,setDiagramTitle:Yn,getDiagramTitle:Un,setDisplayMode:Pi,getDisplayMode:zi,setAccDescription:Fn,getAccDescription:Ln,addSection:Qi,getSections:ji,getTasks:Ji,addTask:rs,findTaskById:wt,addTaskOrg:is,setIncludes:Bi,getIncludes:Zi,setExcludes:Xi,getExcludes:qi,setClickEvent:os,setLink:ss,getLinks:Gi,bindFunctions:cs,parseDuration:Tn,isInvalidDate:kn,setWeekday:$i,getWeekday:Ki};function Cn(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const s="^\\s*"+i+"\\s*$",a=new RegExp(s);t[0].match(a)&&(e[i]=!0,t.shift(1),r=!0)})}const us=function(){Gt.debug("Something is calling, setConf, remove the call")},Re={monday:Wt,tuesday:nn,wednesday:rn,thursday:Tt,friday:sn,saturday:an,sunday:Ht},fs=(t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((s,a)=>s.startTime-a.startTime||s.order-a.order),i=0;for(const s of r)for(let a=0;a=n[a]){n[a]=s.endTime,s.order=a+e,a>i&&(i=a);break}return i};let ut;const hs=function(t,e,n,r){const i=Dt().gantt,s=Dt().securityLevel;let a;s==="sandbox"&&(a=Rt("#i"+e));const y=s==="sandbox"?Rt(a.nodes()[0].contentDocument.body):Rt("body"),S=s==="sandbox"?a.nodes()[0].contentDocument:document,p=S.getElementById(e);ut=p.parentElement.offsetWidth,ut===void 0&&(ut=1200),i.useWidth!==void 0&&(ut=i.useWidth);const g=r.db.getTasks();let F=[];for(const v of g)F.push(v.type);F=W(F);const w={};let T=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const v={};for(const _ of g)v[_.section]===void 0?v[_.section]=[_]:v[_.section].push(_);let U=0;for(const _ of Object.keys(v)){const x=fs(v[_],U)+1;U+=x,T+=x*(i.barHeight+i.barGap),w[_]=x}}else{T+=g.length*(i.barHeight+i.barGap);for(const v of F)w[v]=g.filter(U=>U.type===v).length}p.setAttribute("viewBox","0 0 "+ut+" "+T);const q=y.select(`[id="${e}"]`),I=bi().domain([Bn(g,function(v){return v.startTime}),Rn(g,function(v){return v.endTime})]).rangeRound([0,ut-i.leftPadding-i.rightPadding]);function D(v,U){const _=v.startTime,x=U.startTime;let o=0;return _>x?o=1:_h.order))].map(h=>v.find(C=>C.order===h));q.append("g").selectAll("rect").data(M).enter().append("rect").attr("x",0).attr("y",function(h,C){return C=h.order,C*U+_-2}).attr("width",function(){return m-i.rightPadding/2}).attr("height",U).attr("class",function(h){for(const[C,X]of F.entries())if(h.type===X)return"section section"+C%i.numberSectionStyles;return"section section0"});const c=q.append("g").selectAll("rect").data(v).enter(),G=r.db.getLinks();if(c.append("rect").attr("id",function(h){return h.id}).attr("rx",3).attr("ry",3).attr("x",function(h){return h.milestone?I(h.startTime)+x+.5*(I(h.endTime)-I(h.startTime))-.5*o:I(h.startTime)+x}).attr("y",function(h,C){return C=h.order,C*U+_}).attr("width",function(h){return h.milestone?o:I(h.renderEndTime||h.endTime)-I(h.startTime)}).attr("height",o).attr("transform-origin",function(h,C){return C=h.order,(I(h.startTime)+x+.5*(I(h.endTime)-I(h.startTime))).toString()+"px "+(C*U+_+.5*o).toString()+"px"}).attr("class",function(h){const C="task";let X="";h.classes.length>0&&(X=h.classes.join(" "));let O=0;for(const[N,z]of F.entries())h.type===z&&(O=N%i.numberSectionStyles);let P="";return h.active?h.crit?P+=" activeCrit":P=" active":h.done?h.crit?P=" doneCrit":P=" done":h.crit&&(P+=" crit"),P.length===0&&(P=" task"),h.milestone&&(P=" milestone "+P),P+=O,P+=" "+X,C+P}),c.append("text").attr("id",function(h){return h.id+"-text"}).text(function(h){return h.task}).attr("font-size",i.fontSize).attr("x",function(h){let C=I(h.startTime),X=I(h.renderEndTime||h.endTime);h.milestone&&(C+=.5*(I(h.endTime)-I(h.startTime))-.5*o),h.milestone&&(X=C+o);const O=this.getBBox().width;return O>X-C?X+O+1.5*i.leftPadding>m?C+x-5:X+x+5:(X-C)/2+C+x}).attr("y",function(h,C){return C=h.order,C*U+i.barHeight/2+(i.fontSize/2-2)+_}).attr("text-height",o).attr("class",function(h){const C=I(h.startTime);let X=I(h.endTime);h.milestone&&(X=C+o);const O=this.getBBox().width;let P="";h.classes.length>0&&(P=h.classes.join(" "));let N=0;for(const[at,ot]of F.entries())h.type===ot&&(N=at%i.numberSectionStyles);let z="";return h.active&&(h.crit?z="activeCritText"+N:z="activeText"+N),h.done?h.crit?z=z+" doneCritText"+N:z=z+" doneText"+N:h.crit&&(z=z+" critText"+N),h.milestone&&(z+=" milestoneText"),O>X-C?X+O+1.5*i.leftPadding>m?P+" taskTextOutsideLeft taskTextOutside"+N+" "+z:P+" taskTextOutsideRight taskTextOutside"+N+" "+z+" width-"+O:P+" taskText taskText"+N+" "+z+" width-"+O}),Dt().securityLevel==="sandbox"){let h;h=Rt("#i"+e);const C=h.nodes()[0].contentDocument;c.filter(function(X){return G[X.id]!==void 0}).each(function(X){var O=C.querySelector("#"+X.id),P=C.querySelector("#"+X.id+"-text");const N=O.parentNode;var z=C.createElement("a");z.setAttribute("xlink:href",G[X.id]),z.setAttribute("target","_top"),N.appendChild(z),z.appendChild(O),z.appendChild(P)})}}function E(v,U,_,x,o,f,m,u){if(m.length===0&&u.length===0)return;let M,c;for(const{startTime:O,endTime:P}of f)(M===void 0||Oc)&&(c=P);if(!M||!c)return;if(nt(c).diff(nt(M),"year")>5){Gt.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const G=r.db.getDateFormat(),d=[];let h=null,C=nt(M);for(;C.valueOf()<=c;)r.db.isInvalidDate(C,G,m,u)?h?h.end=C:h={start:C,end:C}:h&&(d.push(h),h=null),C=C.add(1,"d");q.append("g").selectAll("rect").data(d).enter().append("rect").attr("id",function(O){return"exclude-"+O.start.format("YYYY-MM-DD")}).attr("x",function(O){return I(O.start)+_}).attr("y",i.gridLineStartPadding).attr("width",function(O){const P=O.end.add(1,"day");return I(P)-I(O.start)}).attr("height",o-U-i.gridLineStartPadding).attr("transform-origin",function(O,P){return(I(O.start)+_+.5*(I(O.end)-I(O.start))).toString()+"px "+(P*v+.5*o).toString()+"px"}).attr("class","exclude-range")}function Z(v,U,_,x){let o=$n(I).tickSize(-x+U+i.gridLineStartPadding).tickFormat(Jt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));const m=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(m!==null){const u=m[1],M=m[2],c=r.db.getWeekday()||i.weekday;switch(M){case"millisecond":o.ticks(_t.every(u));break;case"second":o.ticks(kt.every(u));break;case"minute":o.ticks(At.every(u));break;case"hour":o.ticks(It.every(u));break;case"day":o.ticks(pt.every(u));break;case"week":o.ticks(Re[c].every(u));break;case"month":o.ticks(Ot.every(u));break}}if(q.append("g").attr("class","grid").attr("transform","translate("+v+", "+(x-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let u=Jn(I).tickSize(-x+U+i.gridLineStartPadding).tickFormat(Jt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(m!==null){const M=m[1],c=m[2],G=r.db.getWeekday()||i.weekday;switch(c){case"millisecond":u.ticks(_t.every(M));break;case"second":u.ticks(kt.every(M));break;case"minute":u.ticks(At.every(M));break;case"hour":u.ticks(It.every(M));break;case"day":u.ticks(pt.every(M));break;case"week":u.ticks(Re[G].every(M));break;case"month":u.ticks(Ot.every(M));break}}q.append("g").attr("class","grid").attr("transform","translate("+v+", "+U+")").call(u).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function j(v,U){let _=0;const x=Object.keys(w).map(o=>[o,w[o]]);q.append("g").selectAll("text").data(x).enter().append(function(o){const f=o[0].split(Wn.lineBreakRegex),m=-(f.length-1)/2,u=S.createElementNS("http://www.w3.org/2000/svg","text");u.setAttribute("dy",m+"em");for(const[M,c]of f.entries()){const G=S.createElementNS("http://www.w3.org/2000/svg","tspan");G.setAttribute("alignment-baseline","central"),G.setAttribute("x","10"),M>0&&G.setAttribute("dy","1em"),G.textContent=c,u.appendChild(G)}return u}).attr("x",10).attr("y",function(o,f){if(f>0)for(let m=0;m` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,gs=ms,vs={parser:_i,db:ls,renderer:ds,styles:gs};export{vs as diagram}; diff --git a/assets/gitGraphDiagram-942e62fe-B3EvEA8b.js b/assets/gitGraphDiagram-942e62fe-B3EvEA8b.js new file mode 100644 index 00000000..04bea3ba --- /dev/null +++ b/assets/gitGraphDiagram-942e62fe-B3EvEA8b.js @@ -0,0 +1,70 @@ +import{c as C,s as vt,g as Ct,a as Ot,b as Pt,C as At,D as Gt,l as B,j as D,E as It,h as St,A as Nt,H as Ht,I as Bt}from"./mermaid.core-Bc1j4tiv.js";import"./app-Ca-A-iaw.js";var mt=function(){var r=function(G,o,u,d){for(u=u||{},d=G.length;d--;u[G[d]]=o);return u},n=[1,3],l=[1,6],h=[1,4],i=[1,5],c=[2,5],p=[1,12],m=[5,7,13,19,21,23,24,26,28,31,37,40,47],x=[7,13,19,21,23,24,26,28,31,37,40],y=[7,12,13,19,21,23,24,26,28,31,37,40],a=[7,13,47],R=[1,42],_=[1,41],b=[7,13,29,32,35,38,47],f=[1,55],k=[1,56],g=[1,57],E=[7,13,32,35,42,47],z={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(o,u,d,s,T,t,X){var e=t.length-1;switch(T){case 2:return t[e];case 3:return t[e-1];case 4:return s.setDirection(t[e-3]),t[e-1];case 6:s.setOptions(t[e-1]),this.$=t[e];break;case 7:t[e-1]+=t[e],this.$=t[e-1];break;case 9:this.$=[];break;case 10:t[e-1].push(t[e]),this.$=t[e-1];break;case 11:this.$=t[e-1];break;case 16:this.$=t[e].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=t[e].trim(),s.setAccDescription(this.$);break;case 19:s.addSection(t[e].substr(8)),this.$=t[e].substr(8);break;case 21:s.checkout(t[e]);break;case 22:s.branch(t[e]);break;case 23:s.branch(t[e-2],t[e]);break;case 24:s.cherryPick(t[e],"",void 0);break;case 25:s.cherryPick(t[e-2],"",void 0,t[e]);break;case 26:s.cherryPick(t[e-2],"",t[e]);break;case 27:s.cherryPick(t[e-4],"",t[e],t[e-2]);break;case 28:s.cherryPick(t[e-4],"",t[e-2],t[e]);break;case 29:s.cherryPick(t[e],"",t[e-2]);break;case 30:s.cherryPick(t[e],"","");break;case 31:s.cherryPick(t[e-2],"","");break;case 32:s.cherryPick(t[e-4],"","",t[e-2]);break;case 33:s.cherryPick(t[e-4],"","",t[e]);break;case 34:s.cherryPick(t[e-2],"",t[e-4],t[e]);break;case 35:s.cherryPick(t[e-2],"","",t[e]);break;case 36:s.merge(t[e],"","","");break;case 37:s.merge(t[e-2],t[e],"","");break;case 38:s.merge(t[e-2],"",t[e],"");break;case 39:s.merge(t[e-2],"","",t[e]);break;case 40:s.merge(t[e-4],t[e],"",t[e-2]);break;case 41:s.merge(t[e-4],"",t[e],t[e-2]);break;case 42:s.merge(t[e-4],"",t[e-2],t[e]);break;case 43:s.merge(t[e-4],t[e-2],t[e],"");break;case 44:s.merge(t[e-4],t[e-2],"",t[e]);break;case 45:s.merge(t[e-4],t[e],t[e-2],"");break;case 46:s.merge(t[e-6],t[e-4],t[e-2],t[e]);break;case 47:s.merge(t[e-6],t[e],t[e-4],t[e-2]);break;case 48:s.merge(t[e-6],t[e-4],t[e],t[e-2]);break;case 49:s.merge(t[e-6],t[e-2],t[e-4],t[e]);break;case 50:s.merge(t[e-6],t[e],t[e-2],t[e-4]);break;case 51:s.merge(t[e-6],t[e-2],t[e],t[e-4]);break;case 52:s.commit(t[e]);break;case 53:s.commit("","",s.commitType.NORMAL,t[e]);break;case 54:s.commit("","",t[e],"");break;case 55:s.commit("","",t[e],t[e-2]);break;case 56:s.commit("","",t[e-2],t[e]);break;case 57:s.commit("",t[e],s.commitType.NORMAL,"");break;case 58:s.commit("",t[e-2],s.commitType.NORMAL,t[e]);break;case 59:s.commit("",t[e],s.commitType.NORMAL,t[e-2]);break;case 60:s.commit("",t[e-2],t[e],"");break;case 61:s.commit("",t[e],t[e-2],"");break;case 62:s.commit("",t[e-4],t[e-2],t[e]);break;case 63:s.commit("",t[e-4],t[e],t[e-2]);break;case 64:s.commit("",t[e-2],t[e-4],t[e]);break;case 65:s.commit("",t[e],t[e-4],t[e-2]);break;case 66:s.commit("",t[e],t[e-2],t[e-4]);break;case 67:s.commit("",t[e-2],t[e],t[e-4]);break;case 68:s.commit(t[e],"",s.commitType.NORMAL,"");break;case 69:s.commit(t[e],"",s.commitType.NORMAL,t[e-2]);break;case 70:s.commit(t[e-2],"",s.commitType.NORMAL,t[e]);break;case 71:s.commit(t[e-2],"",t[e],"");break;case 72:s.commit(t[e],"",t[e-2],"");break;case 73:s.commit(t[e],t[e-2],s.commitType.NORMAL,"");break;case 74:s.commit(t[e-2],t[e],s.commitType.NORMAL,"");break;case 75:s.commit(t[e-4],"",t[e-2],t[e]);break;case 76:s.commit(t[e-4],"",t[e],t[e-2]);break;case 77:s.commit(t[e-2],"",t[e-4],t[e]);break;case 78:s.commit(t[e],"",t[e-4],t[e-2]);break;case 79:s.commit(t[e],"",t[e-2],t[e-4]);break;case 80:s.commit(t[e-2],"",t[e],t[e-4]);break;case 81:s.commit(t[e-4],t[e],t[e-2],"");break;case 82:s.commit(t[e-4],t[e-2],t[e],"");break;case 83:s.commit(t[e-2],t[e],t[e-4],"");break;case 84:s.commit(t[e],t[e-2],t[e-4],"");break;case 85:s.commit(t[e],t[e-4],t[e-2],"");break;case 86:s.commit(t[e-2],t[e-4],t[e],"");break;case 87:s.commit(t[e-4],t[e],s.commitType.NORMAL,t[e-2]);break;case 88:s.commit(t[e-4],t[e-2],s.commitType.NORMAL,t[e]);break;case 89:s.commit(t[e-2],t[e],s.commitType.NORMAL,t[e-4]);break;case 90:s.commit(t[e],t[e-2],s.commitType.NORMAL,t[e-4]);break;case 91:s.commit(t[e],t[e-4],s.commitType.NORMAL,t[e-2]);break;case 92:s.commit(t[e-2],t[e-4],s.commitType.NORMAL,t[e]);break;case 93:s.commit(t[e-6],t[e-4],t[e-2],t[e]);break;case 94:s.commit(t[e-6],t[e-4],t[e],t[e-2]);break;case 95:s.commit(t[e-6],t[e-2],t[e-4],t[e]);break;case 96:s.commit(t[e-6],t[e],t[e-4],t[e-2]);break;case 97:s.commit(t[e-6],t[e-2],t[e],t[e-4]);break;case 98:s.commit(t[e-6],t[e],t[e-2],t[e-4]);break;case 99:s.commit(t[e-4],t[e-6],t[e-2],t[e]);break;case 100:s.commit(t[e-4],t[e-6],t[e],t[e-2]);break;case 101:s.commit(t[e-2],t[e-6],t[e-4],t[e]);break;case 102:s.commit(t[e],t[e-6],t[e-4],t[e-2]);break;case 103:s.commit(t[e-2],t[e-6],t[e],t[e-4]);break;case 104:s.commit(t[e],t[e-6],t[e-2],t[e-4]);break;case 105:s.commit(t[e],t[e-4],t[e-2],t[e-6]);break;case 106:s.commit(t[e-2],t[e-4],t[e],t[e-6]);break;case 107:s.commit(t[e],t[e-2],t[e-4],t[e-6]);break;case 108:s.commit(t[e-2],t[e],t[e-4],t[e-6]);break;case 109:s.commit(t[e-4],t[e-2],t[e],t[e-6]);break;case 110:s.commit(t[e-4],t[e],t[e-2],t[e-6]);break;case 111:s.commit(t[e-2],t[e-4],t[e-6],t[e]);break;case 112:s.commit(t[e],t[e-4],t[e-6],t[e-2]);break;case 113:s.commit(t[e-2],t[e],t[e-6],t[e-4]);break;case 114:s.commit(t[e],t[e-2],t[e-6],t[e-4]);break;case 115:s.commit(t[e-4],t[e-2],t[e-6],t[e]);break;case 116:s.commit(t[e-4],t[e],t[e-6],t[e-2]);break;case 117:this.$="";break;case 118:this.$=t[e];break;case 119:this.$=s.commitType.NORMAL;break;case 120:this.$=s.commitType.REVERSE;break;case 121:this.$=s.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:n,7:l,13:h,47:i},{1:[3]},{3:7,4:2,5:n,7:l,13:h,47:i},{6:8,7:c,8:[1,9],9:[1,10],10:11,13:p},r(m,[2,124]),r(m,[2,125]),r(m,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:c,10:11,13:p},{8:[1,15]},r(x,[2,9],{11:16,12:[1,17]}),r(y,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:c,10:11,13:p},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},r(y,[2,7]),{1:[2,3]},{7:[1,36]},r(x,[2,10]),{4:37,7:l,13:h,47:i},r(x,[2,12]),r(a,[2,13]),r(a,[2,14]),r(a,[2,15]),{20:[1,38]},{22:[1,39]},r(a,[2,18]),r(a,[2,19]),r(a,[2,20]),{27:40,33:R,46:_},r(a,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:R,46:_},{32:[1,50],35:[1,51]},{27:52,33:R,46:_},{1:[2,4]},r(x,[2,11]),r(a,[2,16]),r(a,[2,17]),r(a,[2,21]),r(b,[2,122]),r(b,[2,123]),r(a,[2,52]),{33:[1,53]},{39:54,43:f,44:k,45:g},{33:[1,58]},{33:[1,59]},r(a,[2,118]),r(a,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},r(a,[2,22],{29:[1,66]}),r(a,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),r(a,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),r(E,[2,119]),r(E,[2,120]),r(E,[2,121]),r(a,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),r(a,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:f,44:k,45:g},{33:[1,81]},r(a,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:f,44:k,45:g},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:f,44:k,45:g},{33:[1,95]},{33:[1,96]},{39:97,43:f,44:k,45:g},{33:[1,98]},r(a,[2,37],{35:[1,100],38:[1,99]}),r(a,[2,38],{32:[1,102],35:[1,101]}),r(a,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},r(a,[2,23]),r(a,[2,55],{32:[1,110],42:[1,111]}),r(a,[2,59],{38:[1,112],42:[1,113]}),r(a,[2,69],{32:[1,115],38:[1,114]}),r(a,[2,56],{32:[1,116],42:[1,117]}),r(a,[2,61],{35:[1,118],42:[1,119]}),r(a,[2,72],{32:[1,121],35:[1,120]}),r(a,[2,58],{38:[1,122],42:[1,123]}),r(a,[2,60],{35:[1,124],42:[1,125]}),r(a,[2,73],{35:[1,127],38:[1,126]}),r(a,[2,70],{32:[1,129],38:[1,128]}),r(a,[2,71],{32:[1,131],35:[1,130]}),r(a,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:f,44:k,45:g},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:f,44:k,45:g},r(a,[2,25],{35:[1,140]}),r(a,[2,26],{34:[1,141]}),r(a,[2,31],{34:[1,142]}),r(a,[2,29],{34:[1,143]}),r(a,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:f,44:k,45:g},{33:[1,148]},{39:149,43:f,44:k,45:g},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:f,44:k,45:g},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:f,44:k,45:g},{33:[1,162]},{39:163,43:f,44:k,45:g},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:f,44:k,45:g},{33:[1,168]},r(a,[2,43],{35:[1,169]}),r(a,[2,44],{38:[1,170]}),r(a,[2,42],{32:[1,171]}),r(a,[2,45],{35:[1,172]}),r(a,[2,40],{38:[1,173]}),r(a,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},r(a,[2,66],{42:[1,181]}),r(a,[2,79],{32:[1,182]}),r(a,[2,67],{42:[1,183]}),r(a,[2,90],{38:[1,184]}),r(a,[2,80],{32:[1,185]}),r(a,[2,89],{38:[1,186]}),r(a,[2,65],{42:[1,187]}),r(a,[2,78],{32:[1,188]}),r(a,[2,64],{42:[1,189]}),r(a,[2,84],{35:[1,190]}),r(a,[2,77],{32:[1,191]}),r(a,[2,83],{35:[1,192]}),r(a,[2,63],{42:[1,193]}),r(a,[2,91],{38:[1,194]}),r(a,[2,62],{42:[1,195]}),r(a,[2,85],{35:[1,196]}),r(a,[2,86],{35:[1,197]}),r(a,[2,92],{38:[1,198]}),r(a,[2,76],{32:[1,199]}),r(a,[2,87],{38:[1,200]}),r(a,[2,75],{32:[1,201]}),r(a,[2,81],{35:[1,202]}),r(a,[2,82],{35:[1,203]}),r(a,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:f,44:k,45:g},{33:[1,207]},{33:[1,208]},{39:209,43:f,44:k,45:g},{33:[1,210]},r(a,[2,27]),r(a,[2,32]),r(a,[2,28]),r(a,[2,33]),r(a,[2,34]),r(a,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:f,44:k,45:g},{33:[1,215]},{39:216,43:f,44:k,45:g},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:f,44:k,45:g},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:f,44:k,45:g},{33:[1,229]},{39:230,43:f,44:k,45:g},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:f,44:k,45:g},r(a,[2,46]),r(a,[2,48]),r(a,[2,47]),r(a,[2,49]),r(a,[2,51]),r(a,[2,50]),r(a,[2,107]),r(a,[2,108]),r(a,[2,105]),r(a,[2,106]),r(a,[2,110]),r(a,[2,109]),r(a,[2,114]),r(a,[2,113]),r(a,[2,112]),r(a,[2,111]),r(a,[2,116]),r(a,[2,115]),r(a,[2,104]),r(a,[2,103]),r(a,[2,102]),r(a,[2,101]),r(a,[2,99]),r(a,[2,100]),r(a,[2,98]),r(a,[2,97]),r(a,[2,96]),r(a,[2,95]),r(a,[2,93]),r(a,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(o,u){if(u.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=u,d}},parse:function(o){var u=this,d=[0],s=[],T=[null],t=[],X=this.table,e="",rt=0,ft=0,wt=2,pt=1,Lt=t.slice.call(arguments,1),O=Object.create(this.lexer),F={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(F.yy[ct]=this.yy[ct]);O.setInput(o,F.yy),F.yy.lexer=O,F.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ot=O.yylloc;t.push(ot);var Rt=O.options&&O.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var q;return q=s.pop()||O.lex()||pt,typeof q!="number"&&(q instanceof Array&&(s=q,q=s.pop()),q=u.symbols_[q]||q),q}for(var N,K,V,lt,J={},it,j,bt,st;;){if(K=d[d.length-1],this.defaultActions[K]?V=this.defaultActions[K]:((N===null||typeof N>"u")&&(N=Mt()),V=X[K]&&X[K][N]),typeof V>"u"||!V.length||!V[0]){var ht="";st=[];for(it in X[K])this.terminals_[it]&&it>wt&&st.push("'"+this.terminals_[it]+"'");O.showPosition?ht="Parse error on line "+(rt+1)+`: +`+O.showPosition()+` +Expecting `+st.join(", ")+", got '"+(this.terminals_[N]||N)+"'":ht="Parse error on line "+(rt+1)+": Unexpected "+(N==pt?"end of input":"'"+(this.terminals_[N]||N)+"'"),this.parseError(ht,{text:O.match,token:this.terminals_[N]||N,line:O.yylineno,loc:ot,expected:st})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+K+", token: "+N);switch(V[0]){case 1:d.push(N),T.push(O.yytext),t.push(O.yylloc),d.push(V[1]),N=null,ft=O.yyleng,e=O.yytext,rt=O.yylineno,ot=O.yylloc;break;case 2:if(j=this.productions_[V[1]][1],J.$=T[T.length-j],J._$={first_line:t[t.length-(j||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(j||1)].first_column,last_column:t[t.length-1].last_column},Rt&&(J._$.range=[t[t.length-(j||1)].range[0],t[t.length-1].range[1]]),lt=this.performAction.apply(J,[e,ft,rt,F.yy,V[1],T,t].concat(Lt)),typeof lt<"u")return lt;j&&(d=d.slice(0,-1*j*2),T=T.slice(0,-1*j),t=t.slice(0,-1*j)),d.push(this.productions_[V[1]][0]),T.push(J.$),t.push(J._$),bt=X[d[d.length-2]][d[d.length-1]],d.push(bt);break;case 3:return!0}}return!0}},M=function(){var G={EOF:1,parseError:function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},setInput:function(o,u){return this.yy=u||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var u=o.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var u=o.length,d=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===s.length?this.yylloc.first_column:0)+s[s.length-d.length].length-d[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),u=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+u+"^"},test_match:function(o,u){var d,s,T;if(this.options.backtrack_lexer&&(T={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(T.yylloc.range=this.yylloc.range.slice(0))),s=o[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],d=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var t in T)this[t]=T[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,u,d,s;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),t=0;tu[0].length)){if(u=d,s=t,this.options.backtrack_lexer){if(o=this.test_match(d,T[t]),o!==!1)return o;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(o=this.test_match(u,T[s]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var u=this.next();return u||this.lex()},begin:function(u){this.conditionStack.push(u)},popState:function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},pushState:function(u){this.begin(u)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(u,d,s,T){switch(s){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return G}();z.lexer=M;function I(){this.yy={}}return I.prototype=z,z.Parser=I,new I}();mt.parser=mt;const Vt=mt;let at=C().gitGraph.mainBranchName,Dt=C().gitGraph.mainBranchOrder,v={},S=null,tt={};tt[at]={name:at,order:Dt};let L={};L[at]=S;let A=at,kt="LR",W=0;function ut(){return Bt({length:7})}function zt(r,n){const l=Object.create(null);return r.reduce((h,i)=>{const c=n(i);return l[c]||(l[c]=!0,h.push(i)),h},[])}const jt=function(r){kt=r};let xt={};const qt=function(r){B.debug("options str",r),r=r&&r.trim(),r=r||"{}";try{xt=JSON.parse(r)}catch(n){B.error("error while parsing gitGraph options",n.message)}},Yt=function(){return xt},Ft=function(r,n,l,h){B.debug("Entering commit:",r,n,l,h),n=D.sanitizeText(n,C()),r=D.sanitizeText(r,C()),h=D.sanitizeText(h,C());const i={id:n||W+"-"+ut(),message:r,seq:W++,type:l||Q.NORMAL,tag:h||"",parents:S==null?[]:[S.id],branch:A};S=i,v[i.id]=i,L[A]=i.id,B.debug("in pushCommit "+i.id)},Kt=function(r,n){if(r=D.sanitizeText(r,C()),L[r]===void 0)L[r]=S!=null?S.id:null,tt[r]={name:r,order:n?parseInt(n,10):null},yt(r),B.debug("in createBranch");else{let l=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+r+'")');throw l.hash={text:"branch "+r,token:"branch "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+r+'"']},l}},Ut=function(r,n,l,h){r=D.sanitizeText(r,C()),n=D.sanitizeText(n,C());const i=v[L[A]],c=v[L[r]];if(A===r){let m=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(i===void 0||!i){let m=new Error('Incorrect usage of "merge". Current branch ('+A+")has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},m}else if(L[r]===void 0){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+r]},m}else if(c===void 0||!c){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},m}else if(i===c){let m=new Error('Incorrect usage of "merge". Both branches have same head');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(n&&v[n]!==void 0){let m=new Error('Incorrect usage of "merge". Commit with id:'+n+" already exists, use different custom Id");throw m.hash={text:"merge "+r+n+l+h,token:"merge "+r+n+l+h,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+r+" "+n+"_UNIQUE "+l+" "+h]},m}const p={id:n||W+"-"+ut(),message:"merged branch "+r+" into "+A,seq:W++,parents:[S==null?null:S.id,L[r]],branch:A,type:Q.MERGE,customType:l,customId:!!n,tag:h||""};S=p,v[p.id]=p,L[A]=p.id,B.debug(L),B.debug("in mergeBranch")},Wt=function(r,n,l,h){if(B.debug("Entering cherryPick:",r,n,l),r=D.sanitizeText(r,C()),n=D.sanitizeText(n,C()),l=D.sanitizeText(l,C()),h=D.sanitizeText(h,C()),!r||v[r]===void 0){let p=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw p.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},p}let i=v[r],c=i.branch;if(h&&!(Array.isArray(i.parents)&&i.parents.includes(h)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(i.type===Q.MERGE&&!h)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!n||v[n]===void 0){if(c===A){let x=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw x.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},x}const p=v[L[A]];if(p===void 0||!p){let x=new Error('Incorrect usage of "cherry-pick". Current branch ('+A+")has no commits");throw x.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},x}const m={id:W+"-"+ut(),message:"cherry-picked "+i+" into "+A,seq:W++,parents:[S==null?null:S.id,i.id],branch:A,type:Q.CHERRY_PICK,tag:l??`cherry-pick:${i.id}${i.type===Q.MERGE?`|parent:${h}`:""}`};S=m,v[m.id]=m,L[A]=m.id,B.debug(L),B.debug("in cherryPick")}},yt=function(r){if(r=D.sanitizeText(r,C()),L[r]===void 0){let n=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+r+'")');throw n.hash={text:"checkout "+r,token:"checkout "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+r+'"']},n}else{A=r;const n=L[A];S=v[n]}};function gt(r,n,l){const h=r.indexOf(n);h===-1?r.push(l):r.splice(h,1,l)}function _t(r){const n=r.reduce((i,c)=>i.seq>c.seq?i:c,r[0]);let l="";r.forEach(function(i){i===n?l+=" *":l+=" |"});const h=[l,n.id,n.seq];for(let i in L)L[i]===n.id&&h.push(i);if(B.debug(h.join(" ")),n.parents&&n.parents.length==2){const i=v[n.parents[0]];gt(r,n,i),r.push(v[n.parents[1]])}else{if(n.parents.length==0)return;{const i=v[n.parents];gt(r,n,i)}}r=zt(r,i=>i.id),_t(r)}const Jt=function(){B.debug(v);const r=Et()[0];_t([r])},Qt=function(){v={},S=null;let r=C().gitGraph.mainBranchName,n=C().gitGraph.mainBranchOrder;L={},L[r]=null,tt={},tt[r]={name:r,order:n},A=r,W=0,It()},Xt=function(){return Object.values(tt).map((n,l)=>n.order!==null?n:{...n,order:parseFloat(`0.${l}`,10)}).sort((n,l)=>n.order-l.order).map(({name:n})=>({name:n}))},Zt=function(){return L},$t=function(){return v},Et=function(){const r=Object.keys(v).map(function(n){return v[n]});return r.forEach(function(n){B.debug(n.id)}),r.sort((n,l)=>n.seq-l.seq),r},te=function(){return A},ee=function(){return kt},re=function(){return S},Q={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ie={getConfig:()=>C().gitGraph,setDirection:jt,setOptions:qt,getOptions:Yt,commit:Ft,branch:Kt,merge:Ut,cherryPick:Wt,checkout:yt,prettyPrint:Jt,clear:Qt,getBranchesAsObjArray:Xt,getBranches:Zt,getCommits:$t,getCommitsArray:Et,getCurrentBranch:te,getDirection:ee,getHead:re,setAccTitle:vt,getAccTitle:Ct,getAccDescription:Ot,setAccDescription:Pt,setDiagramTitle:At,getDiagramTitle:Gt,commitType:Q};let Z={};const P={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},U=8;let H={},Y={},nt=[],et=0,w="LR";const se=()=>{H={},Y={},Z={},et=0,nt=[],w="LR"},Tt=r=>{const n=document.createElementNS("http://www.w3.org/2000/svg","text");let l=[];typeof r=="string"?l=r.split(/\\n|\n|/gi):Array.isArray(r)?l=r:l=[];for(const h of l){const i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=h.trim(),n.appendChild(i)}return n},ae=r=>{let n="",l=0;return r.forEach(h=>{const i=w==="TB"?Y[h].y:Y[h].x;i>=l&&(n=h,l=i)}),n||void 0},dt=(r,n,l)=>{const h=C().gitGraph,i=r.append("g").attr("class","commit-bullets"),c=r.append("g").attr("class","commit-labels");let p=0;w==="TB"&&(p=30);const x=Object.keys(n).sort((_,b)=>n[_].seq-n[b].seq),y=h.parallelCommits,a=10,R=40;x.forEach(_=>{const b=n[_];if(y)if(b.parents.length){const E=ae(b.parents);p=w==="TB"?Y[E].y+R:Y[E].x+R}else p=0,w==="TB"&&(p=30);const f=p+a,k=w==="TB"?f:H[b.branch].pos,g=w==="TB"?H[b.branch].pos:f;if(l){let E,z=b.customType!==void 0&&b.customType!==""?b.customType:b.type;switch(z){case P.NORMAL:E="commit-normal";break;case P.REVERSE:E="commit-reverse";break;case P.HIGHLIGHT:E="commit-highlight";break;case P.MERGE:E="commit-merge";break;case P.CHERRY_PICK:E="commit-cherry-pick";break;default:E="commit-normal"}if(z===P.HIGHLIGHT){const M=i.append("rect");M.attr("x",g-10),M.attr("y",k-10),M.attr("height",20),M.attr("width",20),M.attr("class",`commit ${b.id} commit-highlight${H[b.branch].index%U} ${E}-outer`),i.append("rect").attr("x",g-6).attr("y",k-6).attr("height",12).attr("width",12).attr("class",`commit ${b.id} commit${H[b.branch].index%U} ${E}-inner`)}else if(z===P.CHERRY_PICK)i.append("circle").attr("cx",g).attr("cy",k).attr("r",10).attr("class",`commit ${b.id} ${E}`),i.append("circle").attr("cx",g-3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${E}`),i.append("circle").attr("cx",g+3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${E}`),i.append("line").attr("x1",g+3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${E}`),i.append("line").attr("x1",g-3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${E}`);else{const M=i.append("circle");if(M.attr("cx",g),M.attr("cy",k),M.attr("r",b.type===P.MERGE?9:10),M.attr("class",`commit ${b.id} commit${H[b.branch].index%U}`),z===P.MERGE){const I=i.append("circle");I.attr("cx",g),I.attr("cy",k),I.attr("r",6),I.attr("class",`commit ${E} ${b.id} commit${H[b.branch].index%U}`)}z===P.REVERSE&&i.append("path").attr("d",`M ${g-5},${k-5}L${g+5},${k+5}M${g-5},${k+5}L${g+5},${k-5}`).attr("class",`commit ${E} ${b.id} commit${H[b.branch].index%U}`)}}if(w==="TB"?Y[b.id]={x:g,y:f}:Y[b.id]={x:f,y:k},l){if(b.type!==P.CHERRY_PICK&&(b.customId&&b.type===P.MERGE||b.type!==P.MERGE)&&h.showCommitLabel){const M=c.append("g"),I=M.insert("rect").attr("class","commit-label-bkg"),G=M.append("text").attr("x",p).attr("y",k+25).attr("class","commit-label").text(b.id);let o=G.node().getBBox();if(I.attr("x",f-o.width/2-2).attr("y",k+13.5).attr("width",o.width+2*2).attr("height",o.height+2*2),w==="TB"&&(I.attr("x",g-(o.width+4*4+5)).attr("y",k-12),G.attr("x",g-(o.width+4*4)).attr("y",k+o.height-12)),w!=="TB"&&G.attr("x",f-o.width/2),h.rotateCommitLabel)if(w==="TB")G.attr("transform","rotate(-45, "+g+", "+k+")"),I.attr("transform","rotate(-45, "+g+", "+k+")");else{let u=-7.5-(o.width+10)/25*9.5,d=10+o.width/25*8.5;M.attr("transform","translate("+u+", "+d+") rotate(-45, "+p+", "+k+")")}}if(b.tag){const M=c.insert("polygon"),I=c.append("circle"),G=c.append("text").attr("y",k-16).attr("class","tag-label").text(b.tag);let o=G.node().getBBox();G.attr("x",f-o.width/2);const u=o.height/2,d=k-19.2;M.attr("class","tag-label-bkg").attr("points",` + ${p-o.width/2-4/2},${d+2} + ${p-o.width/2-4/2},${d-2} + ${f-o.width/2-4},${d-u-2} + ${f+o.width/2+4},${d-u-2} + ${f+o.width/2+4},${d+u+2} + ${f-o.width/2-4},${d+u+2}`),I.attr("cx",p-o.width/2+4/2).attr("cy",d).attr("r",1.5).attr("class","tag-hole"),w==="TB"&&(M.attr("class","tag-label-bkg").attr("points",` + ${g},${p+2} + ${g},${p-2} + ${g+a},${p-u-2} + ${g+a+o.width+4},${p-u-2} + ${g+a+o.width+4},${p+u+2} + ${g+a},${p+u+2}`).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),I.attr("cx",g+4/2).attr("cy",p).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),G.attr("x",g+5).attr("y",p+3).attr("transform","translate(14,14) rotate(45, "+g+","+p+")"))}}p+=R+a,p>et&&(et=p)})},ne=(r,n,l,h,i)=>{const p=(w==="TB"?l.xy.branch===p,x=y=>y.seq>r.seq&&y.seqx(y)&&m(y))},$=(r,n,l=0)=>{const h=r+Math.abs(r-n)/2;if(l>5)return h;if(nt.every(p=>Math.abs(p-h)>=10))return nt.push(h),h;const c=Math.abs(r-n);return $(r,n-c/5,l+1)},ce=(r,n,l,h)=>{const i=Y[n.id],c=Y[l.id],p=ne(n,l,i,c,h);let m="",x="",y=0,a=0,R=H[l.branch].index;l.type===P.MERGE&&n.id!==l.parents[0]&&(R=H[n.branch].index);let _;if(p){m="A 10 10, 0, 0, 0,",x="A 10 10, 0, 0, 1,",y=10,a=10;const b=i.yc.x&&(m="A 20 20, 0, 0, 0,",x="A 20 20, 0, 0, 1,",y=20,a=20,l.type===P.MERGE&&n.id!==l.parents[0]?_=`M ${i.x} ${i.y} L ${i.x} ${c.y-y} ${x} ${i.x-a} ${c.y} L ${c.x} ${c.y}`:_=`M ${i.x} ${i.y} L ${c.x+y} ${i.y} ${m} ${c.x} ${i.y+a} L ${c.x} ${c.y}`),i.x===c.x&&(_=`M ${i.x} ${i.y} L ${c.x} ${c.y}`)):(i.yc.y&&(l.type===P.MERGE&&n.id!==l.parents[0]?_=`M ${i.x} ${i.y} L ${c.x-y} ${i.y} ${m} ${c.x} ${i.y-a} L ${c.x} ${c.y}`:_=`M ${i.x} ${i.y} L ${i.x} ${c.y+y} ${x} ${i.x+a} ${c.y} L ${c.x} ${c.y}`),i.y===c.y&&(_=`M ${i.x} ${i.y} L ${c.x} ${c.y}`));r.append("path").attr("d",_).attr("class","arrow arrow"+R%U)},oe=(r,n)=>{const l=r.append("g").attr("class","commit-arrows");Object.keys(n).forEach(h=>{const i=n[h];i.parents&&i.parents.length>0&&i.parents.forEach(c=>{ce(l,n[c],i,n)})})},le=(r,n)=>{const l=C().gitGraph,h=r.append("g");n.forEach((i,c)=>{const p=c%U,m=H[i.name].pos,x=h.append("line");x.attr("x1",0),x.attr("y1",m),x.attr("x2",et),x.attr("y2",m),x.attr("class","branch branch"+p),w==="TB"&&(x.attr("y1",30),x.attr("x1",m),x.attr("y2",et),x.attr("x2",m)),nt.push(m);let y=i.name;const a=Tt(y),R=h.insert("rect"),b=h.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+p);b.node().appendChild(a);let f=a.getBBox();R.attr("class","branchLabelBkg label"+p).attr("rx",4).attr("ry",4).attr("x",-f.width-4-(l.rotateCommitLabel===!0?30:0)).attr("y",-f.height/2+8).attr("width",f.width+18).attr("height",f.height+4),b.attr("transform","translate("+(-f.width-14-(l.rotateCommitLabel===!0?30:0))+", "+(m-f.height/2-1)+")"),w==="TB"&&(R.attr("x",m-f.width/2-10).attr("y",0),b.attr("transform","translate("+(m-f.width/2-5)+", 0)")),w!=="TB"&&R.attr("transform","translate(-19, "+(m-f.height/2)+")")})},he=function(r,n,l,h){se();const i=C(),c=i.gitGraph;B.debug("in gitgraph renderer",r+` +`,"id:",n,l),Z=h.db.getCommits();const p=h.db.getBranchesAsObjArray();w=h.db.getDirection();const m=St(`[id="${n}"]`);let x=0;p.forEach((y,a)=>{const R=Tt(y.name),_=m.append("g"),b=_.insert("g").attr("class","branchLabel"),f=b.insert("g").attr("class","label branch-label");f.node().appendChild(R);let k=R.getBBox();H[y.name]={pos:x,index:a},x+=50+(c.rotateCommitLabel?40:0)+(w==="TB"?k.width/2:0),f.remove(),b.remove(),_.remove()}),dt(m,Z,!1),c.showBranches&&le(m,p),oe(m,Z),dt(m,Z,!0),Nt.insertTitle(m,"gitTitleText",c.titleTopMargin,h.db.getDiagramTitle()),Ht(void 0,m,c.diagramPadding,c.useMaxWidth??i.useMaxWidth)},me={draw:he},ue=r=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(n=>` + .branch-label${n} { fill: ${r["gitBranchLabel"+n]}; } + .commit${n} { stroke: ${r["git"+n]}; fill: ${r["git"+n]}; } + .commit-highlight${n} { stroke: ${r["gitInv"+n]}; fill: ${r["gitInv"+n]}; } + .label${n} { fill: ${r["git"+n]}; } + .arrow${n} { stroke: ${r["git"+n]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${r.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};} + .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};} + .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; } + .tag-hole { fill: ${r.textColor}; } + + .commit-merge { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + .commit-reverse { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${r.textColor}; + } +`,fe=ue,ge={parser:Vt,db:ie,renderer:me,styles:fe};export{ge as diagram}; diff --git a/assets/graph-DkiqFSuU.js b/assets/graph-DkiqFSuU.js new file mode 100644 index 00000000..3f0bfb7b --- /dev/null +++ b/assets/graph-DkiqFSuU.js @@ -0,0 +1 @@ +import{W as I,X as qe,Y as m,Z as y,_ as Te,$ as Ze,a0 as Xe,a1 as Je,a2 as Ee,a3 as G,a4 as X,a5 as Qe,a6 as me,a7 as We,a8 as C,a9 as D,aa as Oe,ab as ve,ac as ze,ad as q,ae as Ve,af as ke,ag as P,ah as en,ai as nn,aj as rn,ak as re,al as tn,am as sn,an,ao as we,ap as un,aq as j,ar as fn,as as on,at as M,z as te,au as ie}from"./mermaid.core-Bc1j4tiv.js";var dn="[object Symbol]";function J(e){return typeof e=="symbol"||I(e)&&qe(e)==dn}function $e(e,n){for(var r=-1,t=e==null?0:e.length,i=Array(t);++r-1}function T(e){return Te(e)?Ze(e):Xe(e)}var yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,An=/^\w*$/;function Q(e,n){if(y(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||J(e)?!0:An.test(e)||!yn.test(e)||n!=null&&e in Object(n)}var Tn=500;function En(e){var n=Je(e,function(t){return r.size===Tn&&r.clear(),t}),r=n.cache;return n}var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,On=/\\(\\)?/g,vn=En(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(mn,function(r,t,i,s){n.push(i?s.replace(On,"$1"):t||r)}),n});function wn(e){return e==null?"":Le(e)}function Ie(e,n){return y(e)?e:Q(e,n)?[e]:vn(wn(e))}var $n=1/0;function U(e){if(typeof e=="string"||J(e))return e;var n=e+"";return n=="0"&&1/e==-$n?"-0":n}function Ce(e,n){n=Ie(n,e);for(var r=0,t=n.length;e!=null&&ru))return!1;var l=s.get(e),g=s.get(n);if(l&&g)return l==n&&g==e;var o=-1,h=!0,A=r&Qr?new S:void 0;for(s.set(e,n),s.set(n,e);++o=Ht){var l=Kt(e);if(l)return V(l);a=!1,i=Ge,f=new S}else f=u;e:for(;++t1?i.setNode(s,r):i.setNode(s)}),this}setNode(n,r){return E(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=w,this._children[n]={},this._children[w][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return E(this._nodes,n)}removeNode(n){var r=this;if(E(this._nodes,n)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],v(this.children(n),function(i){r.setParent(i)}),delete this._children[n]),v(T(this._in[n]),t),delete this._in[n],delete this._preds[n],v(T(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if($(r))r=w;else{r+="";for(var t=r;!$(t);t=this.parent(t))if(t===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var r=this._parent[n];if(r!==w)return r}}children(n){if($(n)&&(n=w),this._isCompound){var r=this._children[n];if(r)return T(r)}else{if(n===w)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var r=this._preds[n];if(r)return T(r)}successors(n){var r=this._sucs[n];if(r)return T(r)}neighbors(n){var r=this.predecessors(n);if(r)return qt(r,this.successors(n))}isLeaf(n){var r;return this.isDirected()?r=this.successors(n):r=this.neighbors(n),r.length===0}filterNodes(n){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var t=this;v(this._nodes,function(a,u){n(u)&&r.setNode(u,a)}),v(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,t.edge(a))});var i={};function s(a){var u=t.parent(a);return u===void 0||r.hasNode(u)?(i[a]=u,u):u in i?i[u]:s(u)}return this._isCompound&&v(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(n){return te(n)||(n=M(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return H(this._edgeObjs)}setPath(n,r){var t=this,i=arguments;return jt(n,function(s,a){return i.length>1?t.setEdge(s,a,r):t.setEdge(s,a),a}),this}setEdge(){var n,r,t,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(n=a.v,r=a.w,t=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(n=a,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),n=""+n,r=""+r,$(t)||(t=""+t);var u=L(this._isDirected,n,r,t);if(E(this._edgeLabels,u))return s&&(this._edgeLabels[u]=i),this;if(!$(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(r),this._edgeLabels[u]=s?i:this._defaultEdgeLabelFn(n,r,t);var f=Xt(this._isDirected,n,r,t);return n=f.v,r=f.w,Object.freeze(f),this._edgeObjs[u]=f,ye(this._preds[r],n),ye(this._sucs[n],r),this._in[r][u]=f,this._out[n][u]=f,this._edgeCount++,this}edge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return this._edgeLabels[i]}hasEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return E(this._edgeLabels,i)}removeEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t),s=this._edgeObjs[i];return s&&(n=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Ae(this._preds[r],n),Ae(this._sucs[n],r),delete this._in[r][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,r){var t=this._in[n];if(t){var i=H(t);return r?x(i,function(s){return s.v===r}):i}}outEdges(n,r){var t=this._out[n];if(t){var i=H(t);return r?x(i,function(s){return s.w===r}):i}}nodeEdges(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))}}Ye.prototype._nodeCount=0;Ye.prototype._edgeCount=0;function ye(e,n){e[n]?e[n]++:e[n]=1}function Ae(e,n){--e[n]||delete e[n]}function L(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+be+s+be+($(t)?Zt:t)}function Xt(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var u={v:i,w:s};return t&&(u.name=t),u}function Y(e,n){return L(e,n.v,n.w,n.name)}export{Ye as G,B as a,In as b,He as c,ln as d,ee as e,v as f,$e as g,E as h,J as i,Ft as j,T as k,St as l,Ie as m,Ce as n,vt as o,wn as p,$ as q,x as r,jt as s,U as t,H as v}; diff --git a/assets/index-01f381cb-wllKWk9M.js b/assets/index-01f381cb-wllKWk9M.js new file mode 100644 index 00000000..88da4924 --- /dev/null +++ b/assets/index-01f381cb-wllKWk9M.js @@ -0,0 +1 @@ +import{q as N,G as A}from"./graph-DkiqFSuU.js";import{m as $,l as H}from"./layout-BZLwH4ql.js";import{c as V}from"./clone-CH2yQtrO.js";import{i as q,u as U,s as W,a as _,b as z,g as D,p as O,c as K,d as Q,e as Y,f as Z,h as J,j as p}from"./edges-066a5561-CYMTSPpJ.js";import{l as s,c as T,p as S,h as L}from"./mermaid.core-Bc1j4tiv.js";import{c as I}from"./createText-ca0c5216-bYdpW0Zp.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tt(e),edges:et(e)};return N(e.graph())||(t.value=V(e.graph())),t}function tt(e){return $(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return N(n)||(i.value=n),N(r)||(i.parent=r),i})}function et(e){return $(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return N(t.name)||(r.name=t.name),N(n)||(r.value=n),r})}let l={},g={},R={};const nt=()=>{g={},R={},l={}},B=(e,t)=>(s.trace("In isDescendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),it=(e,t)=>(s.info("Descendants of ",t," is ",g[t]),s.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||B(e.v,t)||B(e.w,t)||g[t].includes(e.w):(s.debug("Tilt, ",t,",not in descendants"),!1)),P=(e,t,n,r)=>{s.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),s.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)P(a,t,n,r);else{const d=t.node(a);s.info("cp ",a," to ",r," with parent ",e),n.setNode(a,d),r!==t.parent(a)&&(s.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.debug("Setting parent",a,e),n.setParent(a,e)):(s.info("In copy ",e,"root",r,"data",t.node(e),r),s.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const u=t.edges(a);s.debug("Copying Edges",u),u.forEach(f=>{s.info("Edge",f);const h=t.edge(f.v,f.w,f.name);s.info("Edge data",h,r);try{it(f,r)?(s.info("Copying as ",f.v,f.w,h,f.name),n.setEdge(f.v,f.w,h,f.name),s.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",r," clusterId:",e)}catch(w){s.error(w)}})}s.debug("Removing node",a),t.removeNode(a)})},k=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)R[i]=e,r=[...r,...k(i,t)];return r},C=(e,t)=>{s.trace("Searching",e);const n=t.children(e);if(s.trace("Searching children of id ",e,n),n.length<1)return s.trace("This is a valid node",e),e;for(const r of n){const i=C(r,t);if(i)return s.trace("Found replacement for",e," => ",i),i}},X=e=>!l[e]||!l[e].externalConnections?e:l[e]?l[e].id:e,st=(e,t)=>{if(!e||t>10){s.debug("Opting out, no graph ");return}else s.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(s.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),g[n]=k(n,e),l[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),i=e.edges();r.length>0?(s.debug("Cluster identified",n,g),i.forEach(a=>{if(a.v!==n&&a.w!==n){const d=B(a.v,n),u=B(a.w,n);d^u&&(s.warn("Edge: ",a," leaves cluster ",n),s.warn("Descendants of XXX ",n,": ",g[n]),l[n].externalConnections=!0)}})):s.debug("Not a cluster ",n,g)});for(let n of Object.keys(l)){const r=l[n].id,i=e.parent(r);i!==n&&l[i]&&!l[i].externalConnections&&(l[n].id=i)}e.edges().forEach(function(n){const r=e.edge(n);s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(s.warn("Fix XXX",l,"ids:",n.v,n.w,"Translating: ",l[n.v]," --- ",l[n.w]),l[n.v]&&l[n.w]&&l[n.v]===l[n.w]){s.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name);const d=n.w+"---"+n.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const u=structuredClone(r),f=structuredClone(r);u.label="",u.arrowTypeEnd="none",f.label="",u.fromCluster=n.v,f.toCluster=n.v,e.setEdge(i,d,u,n.name+"-cyclic-special"),e.setEdge(d,a,f,n.name+"-cyclic-special")}else if(l[n.v]||l[n.w]){if(s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){const d=e.parent(i);l[d].externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){const d=e.parent(a);l[d].externalConnections=!0,r.toCluster=n.w}s.warn("Fix Replacing with XXX",i,a,n.name),e.setEdge(i,a,r,n.name)}}),s.warn("Adjusted Graph",m(e)),F(e,0),s.trace(l)},F=(e,t)=>{if(s.warn("extractor - ",t,m(e),e.children("D")),t>10){s.error("Bailing out");return}let n=e.nodes(),r=!1;for(const i of n){const a=e.children(i);r=r||a.length>0}if(!r){s.debug("Done, no node has children",e.nodes());return}s.debug("Nodes = ",n,t);for(const i of n)if(s.debug("Extracting node",i,l,l[i]&&!l[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!l[i])s.debug("Not a cluster",i,t);else if(!l[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.warn("Cluster without external connections, without a parent and with children",i,t);let d=e.graph().rankdir==="TB"?"LR":"TB";l[i]&&l[i].clusterData&&l[i].clusterData.dir&&(d=l[i].clusterData.dir,s.warn("Fixing dir",l[i].clusterData.dir,d));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.warn("Old graph before copy",m(e)),P(i,e,u,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:l[i].clusterData,labelText:l[i].labelText,graph:u}),s.warn("New graph after copy node: (",i,")",m(u)),s.debug("Old graph after copy",m(e))}else s.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!l[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.debug(l);n=e.nodes(),s.warn("New list of nodes",n);for(const i of n){const a=e.node(i);s.warn(" Now next level",i,a),a.clusterNode&&F(a.graph,t+1)}},G=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const i=e.children(r),a=G(e,i);n=[...n,...a]}),n},rt=e=>G(e,e.children()),at=(e,t)=>{s.info("Creating subgraph rect for ",t.id,t);const n=T(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=S(n.flowchart.htmlLabels),d=r.insert("g").attr("class","cluster-label"),u=t.labelType==="markdown"?I(d,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):d.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}const h=0*t.padding,w=h/2,x=t.width<=f.width+h?f.width+h:t.width;t.width<=f.width+h?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-x/2).attr("y",t.y-t.height/2-w).attr("width",x).attr("height",t.height+h);const{subGraphTitleTopMargin:v}=D(n);a?d.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+v})`):d.attr("transform",`translate(${t.x}, ${t.y-t.height/2+v})`);const y=i.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(c){return p(t,c)},r},ct=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(u){return p(t,u)},n},ot=(e,t)=>{const n=T(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),d=r.append("rect"),u=a.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}f=u.getBBox();const h=0*t.padding,w=h/2,x=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w).attr("width",x+h).attr("height",t.height+h),d.attr("class","inner").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w+f.height-1).attr("width",x+h).attr("height",t.height+h-f.height-3);const{subGraphTitleTopMargin:v}=D(n);a.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2-t.padding/3+(S(n.flowchart.htmlLabels)?5:3)+v})`);const y=i.node().getBBox();return t.height=y.height,t.intersect=function(c){return p(t,c)},r},lt=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(u){return p(t,u)},n},ft={rect:at,roundedWithTitle:ot,noteGroup:ct,divider:lt};let j={};const dt=(e,t)=>{s.trace("Inserting cluster");const n=t.shape||"rect";j[t.id]=ft[n](e,t)},ut=()=>{j={}},M=async(e,t,n,r,i,a)=>{s.info("Graph in recursive render: XXX",m(t),i);const d=t.graph().rankdir;s.trace("Dir in recursive render - dir:",d);const u=e.insert("g").attr("class","root");t.nodes()?s.info("Recursive render XXX",t.nodes()):s.info("No nodes found for",t),t.edges().length>0&&s.trace("Recursive edges",t.edge(t.edges()[0]));const f=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),w=u.insert("g").attr("class","edgeLabels"),x=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(i!==void 0){const b=JSON.parse(JSON.stringify(i.clusterData));s.info("Setting data for cluster XXX (",c,") ",b,i),t.setNode(i.id,b),t.parent(c)||(s.trace("Setting parent",c,i.id),t.setParent(c,i.id,b))}if(s.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){s.info("Cluster identified",c,o.width,t.node(c));const b=await M(x,o.graph,n,r,t.node(c),a),E=b.elem;U(o,E),o.diff=b.diff||0,s.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),W(E,o),s.warn("Recursive render complete ",E,o)}else t.children(c).length>0?(s.info("Cluster - the non recursive path XXX",c,o.id,o,t),s.info(C(o.id,t)),l[o.id]={id:C(o.id,t),node:o}):(s.info("Node - the non recursive path",c,o.id,o),await _(x,t.node(c),d))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),s.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),s.info("Fix",l,"ids:",c.v,c.w,"Translating: ",l[c.v],l[c.w]),z(w,o)}),t.edges().forEach(function(c){s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),s.info("#############################################"),s.info("### Layout ###"),s.info("#############################################"),s.info(t),H(t),s.info("Graph after layout:",m(t));let v=0;const{subGraphTitleTotalMargin:y}=D(a);return rt(t).forEach(function(c){const o=t.node(c);s.info("Position "+c+": "+JSON.stringify(t.node(c))),s.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?(o.y+=y,O(o)):t.children(c).length>0?(o.height+=y,dt(f,o),l[o.id].node=o):(o.y+=y/2,O(o))}),t.edges().forEach(function(c){const o=t.edge(c);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o),o.points.forEach(E=>E.y+=y/2);const b=K(h,c,o,l,n,t,r);Q(o,b)}),t.nodes().forEach(function(c){const o=t.node(c);s.info(c,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:u,diff:v}},bt=async(e,t,n,r,i)=>{q(e,n,r,i),Y(),Z(),ut(),nt(),s.warn("Graph at first:",JSON.stringify(m(t))),st(t),s.warn("Graph after:",JSON.stringify(m(t)));const a=T();await M(e,t,r,i,void 0,a)};export{bt as r}; diff --git a/assets/index-AN989yVn.js b/assets/index-AN989yVn.js new file mode 100644 index 00000000..a0b535fa --- /dev/null +++ b/assets/index-AN989yVn.js @@ -0,0 +1,61 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var _p=function(r,e){return _p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,a){t.__proto__=a}||function(t,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])},_p(r,e)};function k(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");_p(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var oL=function(){function r(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return r}(),sL=function(){function r(){this.browser=new oL,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return r}(),_t=new sL;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(_t.wxa=!0,_t.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?_t.worker=!0:typeof navigator>"u"||navigator.userAgent.indexOf("Node.js")===0?(_t.node=!0,_t.svgSupported=!0):lL(navigator.userAgent,_t);function lL(r,e){var t=e.browser,a=r.match(/Firefox\/([\d.]+)/),n=r.match(/MSIE\s([\d.]+)/)||r.match(/Trident\/.+?rv:(([\d.]+))/),i=r.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(r);a&&(t.firefox=!0,t.version=a[1]),n&&(t.ie=!0,t.version=n[1]),i&&(t.edge=!0,t.version=i[1],t.newEdge=+i[1].split(".")[0]>18),o&&(t.weChat=!0),e.svgSupported=typeof SVGRect<"u",e.touchEventsSupported="ontouchstart"in window&&!t.ie&&!t.edge,e.pointerEventsSupported="onpointerdown"in window&&(t.edge||t.ie&&+t.version>=11),e.domSupported=typeof document<"u";var s=document.documentElement.style;e.transform3dSupported=(t.ie&&"transition"in s||t.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||t.ie&&+t.version>=9}var sg=12,Sw="sans-serif",Ka=sg+"px "+Sw,uL=20,fL=100,hL="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function vL(r){var e={};if(typeof JSON>"u")return e;for(var t=0;t=0)s=o*t.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",a[l]+":0",n[u]+":0",a[1-l]+":auto",n[1-u]+":auto",""].join("!important;"),r.appendChild(o),t.push(o)}return t}function EL(r,e,t){for(var a=t?"invTrans":"trans",n=e[a],i=e.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=r[u].getBoundingClientRect(),h=2*u,v=f.left,c=f.top;o.push(v,c),l=l&&i&&v===i[h]&&c===i[h+1],s.push(r[u].offsetLeft,r[u].offsetTop)}return l&&n?n:(e.srcCoords=o,e[a]=t?Tm(s,o):Tm(o,s))}function Pw(r){return r.nodeName.toUpperCase()==="CANVAS"}var kL=/([&<>"'])/g,OL={"&":"&","<":"<",">":">",'"':""","'":"'"};function Me(r){return r==null?"":(r+"").replace(kL,function(e,t){return OL[t]})}var NL=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Jh=[],BL=_t.browser.firefox&&+_t.browser.version.split(".")[0]<39;function Tp(r,e,t,a){return t=t||{},a?Cm(r,e,t):BL&&e.layerX!=null&&e.layerX!==e.offsetX?(t.zrX=e.layerX,t.zrY=e.layerY):e.offsetX!=null?(t.zrX=e.offsetX,t.zrY=e.offsetY):Cm(r,e,t),t}function Cm(r,e,t){if(_t.domSupported&&r.getBoundingClientRect){var a=e.clientX,n=e.clientY;if(Pw(r)){var i=r.getBoundingClientRect();t.zrX=a-i.left,t.zrY=n-i.top;return}else if(wp(Jh,r,a,n)){t.zrX=Jh[0],t.zrY=Jh[1];return}}t.zrX=t.zrY=0}function pg(r){return r||window.event}function Je(r,e,t){if(e=pg(e),e.zrX!=null)return e;var a=e.type,n=a&&a.indexOf("touch")>=0;if(n){var o=a!=="touchend"?e.targetTouches[0]:e.changedTouches[0];o&&Tp(r,o,e,t)}else{Tp(r,e,e,t);var i=VL(e);e.zrDelta=i?i/120:-(e.detail||0)/3}var s=e.button;return e.which==null&&s!==void 0&&NL.test(e.type)&&(e.which=s&1?1:s&2?3:s&4?2:0),e}function VL(r){var e=r.wheelDelta;if(e)return e;var t=r.deltaX,a=r.deltaY;if(t==null||a==null)return e;var n=Math.abs(a!==0?a:t),i=a>0?-1:a<0?1:t>0?-1:1;return 3*n*i}function Ap(r,e,t,a){r.addEventListener(e,t,a)}function zL(r,e,t,a){r.removeEventListener(e,t,a)}var pa=function(r){r.preventDefault(),r.stopPropagation(),r.cancelBubble=!0};function Dm(r){return r.which===2||r.which===3}var GL=function(){function r(){this._track=[]}return r.prototype.recognize=function(e,t,a){return this._doTrack(e,t,a),this._recognize(e)},r.prototype.clear=function(){return this._track.length=0,this},r.prototype._doTrack=function(e,t,a){var n=e.touches;if(n){for(var i={points:[],touches:[],target:t,event:e},o=0,s=n.length;o1&&a&&a.length>1){var i=Mm(a)/Mm(n);!isFinite(i)&&(i=1),e.pinchScale=i;var o=FL(a);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:r[0].target,event:e}}}}};function Ge(){return[1,0,0,1,0,0]}function Sl(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r}function ph(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r}function Yr(r,e,t){var a=e[0]*t[0]+e[2]*t[1],n=e[1]*t[0]+e[3]*t[1],i=e[0]*t[2]+e[2]*t[3],o=e[1]*t[2]+e[3]*t[3],s=e[0]*t[4]+e[2]*t[5]+e[4],l=e[1]*t[4]+e[3]*t[5]+e[5];return r[0]=a,r[1]=n,r[2]=i,r[3]=o,r[4]=s,r[5]=l,r}function Dr(r,e,t){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4]+t[0],r[5]=e[5]+t[1],r}function an(r,e,t,a){a===void 0&&(a=[0,0]);var n=e[0],i=e[2],o=e[4],s=e[1],l=e[3],u=e[5],f=Math.sin(t),h=Math.cos(t);return r[0]=n*h+s*f,r[1]=-n*f+s*h,r[2]=i*h+l*f,r[3]=-i*f+h*l,r[4]=h*(o-a[0])+f*(u-a[1])+a[0],r[5]=h*(u-a[1])-f*(o-a[0])+a[1],r}function dh(r,e,t){var a=t[0],n=t[1];return r[0]=e[0]*a,r[1]=e[1]*n,r[2]=e[2]*a,r[3]=e[3]*n,r[4]=e[4]*a,r[5]=e[5]*n,r}function vi(r,e){var t=e[0],a=e[2],n=e[4],i=e[1],o=e[3],s=e[5],l=t*o-i*a;return l?(l=1/l,r[0]=o*l,r[1]=-i*l,r[2]=-a*l,r[3]=t*l,r[4]=(a*s-o*n)*l,r[5]=(i*n-t*s)*l,r):null}function Rw(r){var e=Ge();return ph(e,r),e}const a7=Object.freeze(Object.defineProperty({__proto__:null,clone:Rw,copy:ph,create:Ge,identity:Sl,invert:vi,mul:Yr,rotate:an,scale:dh,translate:Dr},Symbol.toStringTag,{value:"Module"}));var ft=function(){function r(e,t){this.x=e||0,this.y=t||0}return r.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},r.prototype.clone=function(){return new r(this.x,this.y)},r.prototype.set=function(e,t){return this.x=e,this.y=t,this},r.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},r.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},r.prototype.scale=function(e){this.x*=e,this.y*=e},r.prototype.scaleAndAdd=function(e,t){this.x+=e.x*t,this.y+=e.y*t},r.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},r.prototype.dot=function(e){return this.x*e.x+this.y*e.y},r.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},r.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},r.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},r.prototype.distance=function(e){var t=this.x-e.x,a=this.y-e.y;return Math.sqrt(t*t+a*a)},r.prototype.distanceSquare=function(e){var t=this.x-e.x,a=this.y-e.y;return t*t+a*a},r.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},r.prototype.transform=function(e){if(e){var t=this.x,a=this.y;return this.x=e[0]*t+e[2]*a+e[4],this.y=e[1]*t+e[3]*a+e[5],this}},r.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},r.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},r.set=function(e,t,a){e.x=t,e.y=a},r.copy=function(e,t){e.x=t.x,e.y=t.y},r.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},r.lenSquare=function(e){return e.x*e.x+e.y*e.y},r.dot=function(e,t){return e.x*t.x+e.y*t.y},r.add=function(e,t,a){e.x=t.x+a.x,e.y=t.y+a.y},r.sub=function(e,t,a){e.x=t.x-a.x,e.y=t.y-a.y},r.scale=function(e,t,a){e.x=t.x*a,e.y=t.y*a},r.scaleAndAdd=function(e,t,a,n){e.x=t.x+a.x*n,e.y=t.y+a.y*n},r.lerp=function(e,t,a,n){var i=1-n;e.x=i*t.x+n*a.x,e.y=i*t.y+n*a.y},r}(),Wl=Math.min,Ul=Math.max,sn=new ft,ln=new ft,un=new ft,fn=new ft,Bo=new ft,Vo=new ft,ht=function(){function r(e,t,a,n){a<0&&(e=e+a,a=-a),n<0&&(t=t+n,n=-n),this.x=e,this.y=t,this.width=a,this.height=n}return r.prototype.union=function(e){var t=Wl(e.x,this.x),a=Wl(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Ul(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=Ul(e.y+e.height,this.y+this.height)-a:this.height=e.height,this.x=t,this.y=a},r.prototype.applyTransform=function(e){r.applyTransform(this,this,e)},r.prototype.calculateTransform=function(e){var t=this,a=e.width/t.width,n=e.height/t.height,i=Ge();return Dr(i,i,[-t.x,-t.y]),dh(i,i,[a,n]),Dr(i,i,[e.x,e.y]),i},r.prototype.intersect=function(e,t){if(!e)return!1;e instanceof r||(e=r.create(e));var a=this,n=a.x,i=a.x+a.width,o=a.y,s=a.y+a.height,l=e.x,u=e.x+e.width,f=e.y,h=e.y+e.height,v=!(ip&&(p=_,dp&&(p=S,y=a.x&&e<=a.x+a.width&&t>=a.y&&t<=a.y+a.height},r.prototype.clone=function(){return new r(this.x,this.y,this.width,this.height)},r.prototype.copy=function(e){r.copy(this,e)},r.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},r.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},r.prototype.isZero=function(){return this.width===0||this.height===0},r.create=function(e){return new r(e.x,e.y,e.width,e.height)},r.copy=function(e,t){e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height},r.applyTransform=function(e,t,a){if(!a){e!==t&&r.copy(e,t);return}if(a[1]<1e-5&&a[1]>-1e-5&&a[2]<1e-5&&a[2]>-1e-5){var n=a[0],i=a[3],o=a[4],s=a[5];e.x=t.x*n+o,e.y=t.y*i+s,e.width=t.width*n,e.height=t.height*i,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}sn.x=un.x=t.x,sn.y=fn.y=t.y,ln.x=fn.x=t.x+t.width,ln.y=un.y=t.y+t.height,sn.transform(a),fn.transform(a),ln.transform(a),un.transform(a),e.x=Wl(sn.x,ln.x,un.x,fn.x),e.y=Wl(sn.y,ln.y,un.y,fn.y);var l=Ul(sn.x,ln.x,un.x,fn.x),u=Ul(sn.y,ln.y,un.y,fn.y);e.width=l-e.x,e.height=u-e.y},r}(),Ew="silent";function HL(r,e,t){return{type:r,event:t,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:t.zrX,offsetY:t.zrY,gestureEvent:t.gestureEvent,pinchX:t.pinchX,pinchY:t.pinchY,pinchScale:t.pinchScale,wheelDelta:t.zrDelta,zrByTouch:t.zrByTouch,which:t.which,stop:WL}}function WL(){pa(this.event)}var UL=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.handler=null,t}return e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(fr),zo=function(){function r(e,t){this.x=e,this.y=t}return r}(),YL=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ev=new ht(0,0,0,0),kw=function(r){k(e,r);function e(t,a,n,i,o){var s=r.call(this)||this;return s._hovered=new zo(0,0),s.storage=t,s.painter=a,s.painterRoot=i,s._pointerSize=o,n=n||new UL,s.proxy=null,s.setHandlerProxy(n),s._draggingMgr=new IL(s),s}return e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(C(YL,function(a){t.on&&t.on(a,this[a],this)},this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var a=t.zrX,n=t.zrY,i=Ow(this,a,n),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=i?new zo(a,n):this.findHover(a,n),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(l,"mousemove",t),u&&u!==s&&this.dispatchToElement(l,"mouseover",t)},e.prototype.mouseout=function(t){var a=t.zrEventControl;a!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",t),a!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new zo(0,0)},e.prototype.dispatch=function(t,a){var n=this[t];n&&n.call(this,a)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var a=this.proxy;a.setCursor&&a.setCursor(t)},e.prototype.dispatchToElement=function(t,a,n){t=t||{};var i=t.target;if(!(i&&i.silent)){for(var o="on"+a,s=HL(a,t,n);i&&(i[o]&&(s.cancelBubble=!!i[o].call(i,s)),i.trigger(a,s),i=i.__hostTarget?i.__hostTarget:i.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(a,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(a,s)}))}},e.prototype.findHover=function(t,a,n){var i=this.storage.getDisplayList(),o=new zo(t,a);if(Im(i,o,t,a,n),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new ht(t-u,a-u,l,l),h=i.length-1;h>=0;h--){var v=i[h];v!==n&&!v.ignore&&!v.ignoreCoarsePointer&&(!v.parent||!v.parent.ignoreCoarsePointer)&&(ev.copy(v.getBoundingRect()),v.transform&&ev.applyTransform(v.transform),ev.intersect(f)&&s.push(v))}if(s.length)for(var c=4,p=Math.PI/12,d=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(i,r,e)}});function XL(r,e,t){if(r[r.rectHover?"rectContain":"contain"](e,t)){for(var a=r,n=void 0,i=!1;a;){if(a.ignoreClip&&(i=!0),!i){var o=a.getClipPath();if(o&&!o.contain(e,t))return!1}a.silent&&(n=!0);var s=a.__hostTarget;a=s||a.parent}return n?Ew:!0}return!1}function Im(r,e,t,a,n){for(var i=r.length-1;i>=0;i--){var o=r[i],s=void 0;if(o!==n&&!o.ignore&&(s=XL(o,t,a))&&(!e.topTarget&&(e.topTarget=o),s!==Ew)){e.target=o;break}}}function Ow(r,e,t){var a=r.painter;return e<0||e>a.getWidth()||t<0||t>a.getHeight()}var Nw=32,Go=7;function $L(r){for(var e=0;r>=Nw;)e|=r&1,r>>=1;return r+e}function Lm(r,e,t,a){var n=e+1;if(n===t)return 1;if(a(r[n++],r[e])<0){for(;n=0;)n++;return n-e}function ZL(r,e,t){for(t--;e>>1,n(i,r[l])<0?s=l:o=l+1;var u=a-o;switch(u){case 3:r[o+3]=r[o+2];case 2:r[o+2]=r[o+1];case 1:r[o+1]=r[o];break;default:for(;u>0;)r[o+u]=r[o+u-1],u--}r[o]=i}}function rv(r,e,t,a,n,i){var o=0,s=0,l=1;if(i(r,e[t+n])>0){for(s=a-n;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=n,l+=n}else{for(s=n+1;ls&&(l=s);var u=o;o=n-l,l=n-u}for(o++;o>>1);i(r,e[t+f])>0?o=f+1:l=f}return l}function av(r,e,t,a,n,i){var o=0,s=0,l=1;if(i(r,e[t+n])<0){for(s=n+1;ls&&(l=s);var u=o;o=n-l,l=n-u}else{for(s=a-n;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=n,l+=n}for(o++;o>>1);i(r,e[t+f])<0?l=f:o=f+1}return l}function qL(r,e){var t=Go,a,n,i=0,o=[];a=[],n=[];function s(c,p){a[i]=c,n[i]=p,i+=1}function l(){for(;i>1;){var c=i-2;if(c>=1&&n[c-1]<=n[c]+n[c+1]||c>=2&&n[c-2]<=n[c]+n[c-1])n[c-1]n[c+1])break;f(c)}}function u(){for(;i>1;){var c=i-2;c>0&&n[c-1]=Go||w>=Go);if(T)break;b<0&&(b=0),b+=2}if(t=b,t<1&&(t=1),p===1){for(y=0;y=0;y--)r[x+y]=r[b+y];r[S]=o[_];return}for(var w=t;;){var T=0,A=0,D=!1;do if(e(o[_],r[m])<0){if(r[S--]=r[m--],T++,A=0,--p===0){D=!0;break}}else if(r[S--]=o[_--],A++,T=0,--g===1){D=!0;break}while((T|A)=0;y--)r[x+y]=r[b+y];if(p===0){D=!0;break}}if(r[S--]=o[_--],--g===1){D=!0;break}if(A=g-rv(r[m],o,0,g,g-1,e),A!==0){for(S-=A,_-=A,g-=A,x=S+1,b=_+1,y=0;y=Go||A>=Go);if(D)break;w<0&&(w=0),w+=2}if(t=w,t<1&&(t=1),g===1){for(S-=p,m-=p,x=S+1,b=m+1,y=p-1;y>=0;y--)r[x+y]=r[b+y];r[S]=o[_]}else{if(g===0)throw new Error;for(b=S-(g-1),y=0;ys&&(l=s),Pm(r,t,t+l,t+i,e),i=l}o.pushRun(t,i),o.mergeRuns(),n-=i,t+=i}while(n!==0);o.forceMergeRuns()}}var He=1,vs=2,Fi=4,Rm=!1;function nv(){Rm||(Rm=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function Em(r,e){return r.zlevel===e.zlevel?r.z===e.z?r.z2-e.z2:r.z-e.z:r.zlevel-e.zlevel}var KL=function(){function r(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=Em}return r.prototype.traverse=function(e,t){for(var a=0;a0&&(f.__clipPaths=[]),isNaN(f.z)&&(nv(),f.z=0),isNaN(f.z2)&&(nv(),f.z2=0),isNaN(f.zlevel)&&(nv(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var h=e.getDecalElement&&e.getDecalElement();h&&this._updateAndAddDisplayable(h,t,a);var v=e.getTextGuideLine();v&&this._updateAndAddDisplayable(v,t,a);var c=e.getTextContent();c&&this._updateAndAddDisplayable(c,t,a)}},r.prototype.addRoot=function(e){e.__zr&&e.__zr.storage===this||this._roots.push(e)},r.prototype.delRoot=function(e){if(e instanceof Array){for(var t=0,a=e.length;t=0&&this._roots.splice(n,1)},r.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},r.prototype.getRoots=function(){return this._roots},r.prototype.dispose=function(){this._displayList=null,this._roots=null},r}(),pf;pf=_t.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(r){return setTimeout(r,16)};var Ds={linear:function(r){return r},quadraticIn:function(r){return r*r},quadraticOut:function(r){return r*(2-r)},quadraticInOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)},cubicIn:function(r){return r*r*r},cubicOut:function(r){return--r*r*r+1},cubicInOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)},quarticIn:function(r){return r*r*r*r},quarticOut:function(r){return 1- --r*r*r*r},quarticInOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)},quinticIn:function(r){return r*r*r*r*r},quinticOut:function(r){return--r*r*r*r*r+1},quinticInOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)},sinusoidalIn:function(r){return 1-Math.cos(r*Math.PI/2)},sinusoidalOut:function(r){return Math.sin(r*Math.PI/2)},sinusoidalInOut:function(r){return .5*(1-Math.cos(Math.PI*r))},exponentialIn:function(r){return r===0?0:Math.pow(1024,r-1)},exponentialOut:function(r){return r===1?1:1-Math.pow(2,-10*r)},exponentialInOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)},circularIn:function(r){return 1-Math.sqrt(1-r*r)},circularOut:function(r){return Math.sqrt(1- --r*r)},circularInOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)},elasticIn:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),-(t*Math.pow(2,10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)))},elasticOut:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),t*Math.pow(2,-10*r)*Math.sin((r-e)*(2*Math.PI)/a)+1)},elasticInOut:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),(r*=2)<1?-.5*(t*Math.pow(2,10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)):t*Math.pow(2,-10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)*.5+1)},backIn:function(r){var e=1.70158;return r*r*((e+1)*r-e)},backOut:function(r){var e=1.70158;return--r*r*((e+1)*r+e)+1},backInOut:function(r){var e=2.5949095;return(r*=2)<1?.5*(r*r*((e+1)*r-e)):.5*((r-=2)*r*((e+1)*r+e)+2)},bounceIn:function(r){return 1-Ds.bounceOut(1-r)},bounceOut:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},bounceInOut:function(r){return r<.5?Ds.bounceIn(r*2)*.5:Ds.bounceOut(r*2-1)*.5+.5}},Yl=Math.pow,Ua=Math.sqrt,df=1e-8,Bw=1e-4,km=Ua(3),Xl=1/3,zr=rn(),ar=rn(),ji=rn();function Ba(r){return r>-df&&rdf||r<-df}function te(r,e,t,a,n){var i=1-n;return i*i*(i*r+3*n*e)+n*n*(n*a+3*i*t)}function Om(r,e,t,a,n){var i=1-n;return 3*(((e-r)*i+2*(t-e)*n)*i+(a-t)*n*n)}function gf(r,e,t,a,n,i){var o=a+3*(e-t)-r,s=3*(t-e*2+r),l=3*(e-r),u=r-n,f=s*s-3*o*l,h=s*l-9*o*u,v=l*l-3*s*u,c=0;if(Ba(f)&&Ba(h))if(Ba(s))i[0]=0;else{var p=-l/s;p>=0&&p<=1&&(i[c++]=p)}else{var d=h*h-4*f*v;if(Ba(d)){var g=h/f,p=-s/o+g,y=-g/2;p>=0&&p<=1&&(i[c++]=p),y>=0&&y<=1&&(i[c++]=y)}else if(d>0){var m=Ua(d),_=f*s+1.5*o*(-h+m),S=f*s+1.5*o*(-h-m);_<0?_=-Yl(-_,Xl):_=Yl(_,Xl),S<0?S=-Yl(-S,Xl):S=Yl(S,Xl);var p=(-s-(_+S))/(3*o);p>=0&&p<=1&&(i[c++]=p)}else{var b=(2*f*s-3*o*h)/(2*Ua(f*f*f)),x=Math.acos(b)/3,w=Ua(f),T=Math.cos(x),p=(-s-2*w*T)/(3*o),y=(-s+w*(T+km*Math.sin(x)))/(3*o),A=(-s+w*(T-km*Math.sin(x)))/(3*o);p>=0&&p<=1&&(i[c++]=p),y>=0&&y<=1&&(i[c++]=y),A>=0&&A<=1&&(i[c++]=A)}}return c}function zw(r,e,t,a,n){var i=6*t-12*e+6*r,o=9*e+3*a-3*r-9*t,s=3*e-3*r,l=0;if(Ba(o)){if(Vw(i)){var u=-s/i;u>=0&&u<=1&&(n[l++]=u)}}else{var f=i*i-4*o*s;if(Ba(f))n[0]=-i/(2*o);else if(f>0){var h=Ua(f),u=(-i+h)/(2*o),v=(-i-h)/(2*o);u>=0&&u<=1&&(n[l++]=u),v>=0&&v<=1&&(n[l++]=v)}}return l}function ja(r,e,t,a,n,i){var o=(e-r)*n+r,s=(t-e)*n+e,l=(a-t)*n+t,u=(s-o)*n+o,f=(l-s)*n+s,h=(f-u)*n+u;i[0]=r,i[1]=o,i[2]=u,i[3]=h,i[4]=h,i[5]=f,i[6]=l,i[7]=a}function Gw(r,e,t,a,n,i,o,s,l,u,f){var h,v=.005,c=1/0,p,d,g,y;zr[0]=l,zr[1]=u;for(var m=0;m<1;m+=.05)ar[0]=te(r,t,n,o,m),ar[1]=te(e,a,i,s,m),g=Wa(zr,ar),g=0&&g=0&&u<=1&&(n[l++]=u)}}else{var f=o*o-4*i*s;if(Ba(f)){var u=-o/(2*i);u>=0&&u<=1&&(n[l++]=u)}else if(f>0){var h=Ua(f),u=(-o+h)/(2*i),v=(-o-h)/(2*i);u>=0&&u<=1&&(n[l++]=u),v>=0&&v<=1&&(n[l++]=v)}}return l}function Fw(r,e,t){var a=r+t-2*e;return a===0?.5:(r-e)/a}function Us(r,e,t,a,n){var i=(e-r)*a+r,o=(t-e)*a+e,s=(o-i)*a+i;n[0]=r,n[1]=i,n[2]=s,n[3]=s,n[4]=o,n[5]=t}function Hw(r,e,t,a,n,i,o,s,l){var u,f=.005,h=1/0;zr[0]=o,zr[1]=s;for(var v=0;v<1;v+=.05){ar[0]=se(r,t,n,v),ar[1]=se(e,a,i,v);var c=Wa(zr,ar);c=0&&c=1?1:gf(0,a,i,1,l,s)&&te(0,n,o,1,s[0])}}}var e2=function(){function r(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||Yt,this.ondestroy=e.ondestroy||Yt,this.onrestart=e.onrestart||Yt,e.easing&&this.setEasing(e.easing)}return r.prototype.step=function(e,t){if(this._inited||(this._startTime=e+this._delay,this._inited=!0),this._paused){this._pausedTime+=t;return}var a=this._life,n=e-this._startTime-this._pausedTime,i=n/a;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,s=o?o(i):i;if(this.onframe(s),i===1)if(this.loop){var l=n%a;this._startTime=e-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){this._paused=!1},r.prototype.setEasing=function(e){this.easing=e,this.easingFunc=K(e)?e:Ds[e]||dg(e)},r}(),Ww=function(){function r(e){this.value=e}return r}(),r2=function(){function r(){this._len=0}return r.prototype.insert=function(e){var t=new Ww(e);return this.insertEntry(t),t},r.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},r.prototype.remove=function(e){var t=e.prev,a=e.next;t?t.next=a:this.head=a,a?a.prev=t:this.tail=t,e.next=e.prev=null,this._len--},r.prototype.len=function(){return this._len},r.prototype.clear=function(){this.head=this.tail=null,this._len=0},r}(),xl=function(){function r(e){this._list=new r2,this._maxSize=10,this._map={},this._maxSize=e}return r.prototype.put=function(e,t){var a=this._list,n=this._map,i=null;if(n[e]==null){var o=a.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=a.head;a.remove(l),delete n[l.key],i=l.value,this._lastRemovedEntry=l}s?s.value=t:s=new Ww(t),s.key=e,a.insertEntry(s),n[e]=s}return i},r.prototype.get=function(e){var t=this._map[e],a=this._list;if(t!=null)return t!==a.tail&&(a.remove(t),a.insertEntry(t)),t.value},r.prototype.clear=function(){this._list.clear(),this._map={}},r.prototype.len=function(){return this._list.len()},r}(),Nm={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function wr(r){return r=Math.round(r),r<0?0:r>255?255:r}function a2(r){return r=Math.round(r),r<0?0:r>360?360:r}function Ys(r){return r<0?0:r>1?1:r}function iv(r){var e=r;return e.length&&e.charAt(e.length-1)==="%"?wr(parseFloat(e)/100*255):wr(parseInt(e,10))}function qn(r){var e=r;return e.length&&e.charAt(e.length-1)==="%"?Ys(parseFloat(e)/100):Ys(parseFloat(e))}function ov(r,e,t){return t<0?t+=1:t>1&&(t-=1),t*6<1?r+(e-r)*t*6:t*2<1?e:t*3<2?r+(e-r)*(2/3-t)*6:r}function Va(r,e,t){return r+(e-r)*t}function Qe(r,e,t,a,n){return r[0]=e,r[1]=t,r[2]=a,r[3]=n,r}function Dp(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}var Uw=new xl(20),$l=null;function xi(r,e){$l&&Dp($l,e),$l=Uw.put(r,$l||e.slice())}function Ie(r,e){if(r){e=e||[];var t=Uw.get(r);if(t)return Dp(e,t);r=r+"";var a=r.replace(/ /g,"").toLowerCase();if(a in Nm)return Dp(e,Nm[a]),xi(r,e),e;var n=a.length;if(a.charAt(0)==="#"){if(n===4||n===5){var i=parseInt(a.slice(1,4),16);if(!(i>=0&&i<=4095)){Qe(e,0,0,0,1);return}return Qe(e,(i&3840)>>4|(i&3840)>>8,i&240|(i&240)>>4,i&15|(i&15)<<4,n===5?parseInt(a.slice(4),16)/15:1),xi(r,e),e}else if(n===7||n===9){var i=parseInt(a.slice(1,7),16);if(!(i>=0&&i<=16777215)){Qe(e,0,0,0,1);return}return Qe(e,(i&16711680)>>16,(i&65280)>>8,i&255,n===9?parseInt(a.slice(7),16)/255:1),xi(r,e),e}return}var o=a.indexOf("("),s=a.indexOf(")");if(o!==-1&&s+1===n){var l=a.substr(0,o),u=a.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Qe(e,+u[0],+u[1],+u[2],1):Qe(e,0,0,0,1);f=qn(u.pop());case"rgb":if(u.length>=3)return Qe(e,iv(u[0]),iv(u[1]),iv(u[2]),u.length===3?f:qn(u[3])),xi(r,e),e;Qe(e,0,0,0,1);return;case"hsla":if(u.length!==4){Qe(e,0,0,0,1);return}return u[3]=qn(u[3]),Mp(u,e),xi(r,e),e;case"hsl":if(u.length!==3){Qe(e,0,0,0,1);return}return Mp(u,e),xi(r,e),e;default:return}}Qe(e,0,0,0,1)}}function Mp(r,e){var t=(parseFloat(r[0])%360+360)%360/360,a=qn(r[1]),n=qn(r[2]),i=n<=.5?n*(a+1):n+a-n*a,o=n*2-i;return e=e||[],Qe(e,wr(ov(o,i,t+1/3)*255),wr(ov(o,i,t)*255),wr(ov(o,i,t-1/3)*255),1),r.length===4&&(e[3]=r[3]),e}function n2(r){if(r){var e=r[0]/255,t=r[1]/255,a=r[2]/255,n=Math.min(e,t,a),i=Math.max(e,t,a),o=i-n,s=(i+n)/2,l,u;if(o===0)l=0,u=0;else{s<.5?u=o/(i+n):u=o/(2-i-n);var f=((i-e)/6+o/2)/o,h=((i-t)/6+o/2)/o,v=((i-a)/6+o/2)/o;e===i?l=v-h:t===i?l=1/3+f-v:a===i&&(l=2/3+h-f),l<0&&(l+=1),l>1&&(l-=1)}var c=[l*360,u,s];return r[3]!=null&&c.push(r[3]),c}}function yf(r,e){var t=Ie(r);if(t){for(var a=0;a<3;a++)e<0?t[a]=t[a]*(1-e)|0:t[a]=(255-t[a])*e+t[a]|0,t[a]>255?t[a]=255:t[a]<0&&(t[a]=0);return Tr(t,t.length===4?"rgba":"rgb")}}function i2(r){var e=Ie(r);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Ms(r,e,t){if(!(!(e&&e.length)||!(r>=0&&r<=1))){t=t||[];var a=r*(e.length-1),n=Math.floor(a),i=Math.ceil(a),o=e[n],s=e[i],l=a-n;return t[0]=wr(Va(o[0],s[0],l)),t[1]=wr(Va(o[1],s[1],l)),t[2]=wr(Va(o[2],s[2],l)),t[3]=Ys(Va(o[3],s[3],l)),t}}var o2=Ms;function gg(r,e,t){if(!(!(e&&e.length)||!(r>=0&&r<=1))){var a=r*(e.length-1),n=Math.floor(a),i=Math.ceil(a),o=Ie(e[n]),s=Ie(e[i]),l=a-n,u=Tr([wr(Va(o[0],s[0],l)),wr(Va(o[1],s[1],l)),wr(Va(o[2],s[2],l)),Ys(Va(o[3],s[3],l))],"rgba");return t?{color:u,leftIndex:n,rightIndex:i,value:a}:u}}var s2=gg;function Qi(r,e,t,a){var n=Ie(r);if(r)return n=n2(n),e!=null&&(n[0]=a2(e)),t!=null&&(n[1]=qn(t)),a!=null&&(n[2]=qn(a)),Tr(Mp(n),"rgba")}function Xs(r,e){var t=Ie(r);if(t&&e!=null)return t[3]=Ys(e),Tr(t,"rgba")}function Tr(r,e){if(!(!r||!r.length)){var t=r[0]+","+r[1]+","+r[2];return(e==="rgba"||e==="hsva"||e==="hsla")&&(t+=","+r[3]),e+"("+t+")"}}function $s(r,e){var t=Ie(r);return t?(.299*t[0]+.587*t[1]+.114*t[2])*t[3]/255+(1-t[3])*e:0}function l2(){return Tr([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var Bm=new xl(100);function mf(r){if(U(r)){var e=Bm.get(r);return e||(e=yf(r,-.1),Bm.put(r,e)),e}else if(ml(r)){var t=V({},r);return t.colorStops=G(r.colorStops,function(a){return{offset:a.offset,color:yf(a.color,-.1)}}),t}return r}const n7=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:Ms,fastMapToColor:o2,lerp:gg,lift:yf,liftColor:mf,lum:$s,mapToColor:s2,modifyAlpha:Xs,modifyHSL:Qi,parse:Ie,random:l2,stringify:Tr,toHex:i2},Symbol.toStringTag,{value:"Module"}));var _f=Math.round;function Zs(r){var e;if(!r||r==="transparent")r="none";else if(typeof r=="string"&&r.indexOf("rgba")>-1){var t=Ie(r);t&&(r="rgb("+t[0]+","+t[1]+","+t[2]+")",e=t[3])}return{color:r,opacity:e??1}}var Vm=1e-4;function za(r){return r-Vm}function Zl(r){return _f(r*1e3)/1e3}function Ip(r){return _f(r*1e4)/1e4}function u2(r){return"matrix("+Zl(r[0])+","+Zl(r[1])+","+Zl(r[2])+","+Zl(r[3])+","+Ip(r[4])+","+Ip(r[5])+")"}var f2={left:"start",right:"end",center:"middle",middle:"middle"};function h2(r,e,t){return t==="top"?r+=e/2:t==="bottom"&&(r-=e/2),r}function v2(r){return r&&(r.shadowBlur||r.shadowOffsetX||r.shadowOffsetY)}function c2(r){var e=r.style,t=r.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),t[0],t[1]].join(",")}function Yw(r){return r&&!!r.image}function p2(r){return r&&!!r.svgElement}function yg(r){return Yw(r)||p2(r)}function Xw(r){return r.type==="linear"}function $w(r){return r.type==="radial"}function Zw(r){return r&&(r.type==="linear"||r.type==="radial")}function gh(r){return"url(#"+r+")"}function qw(r){var e=r.getGlobalScale(),t=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(t)/Math.log(10)),1)}function Kw(r){var e=r.x||0,t=r.y||0,a=(r.rotation||0)*Ts,n=ot(r.scaleX,1),i=ot(r.scaleY,1),o=r.skewX||0,s=r.skewY||0,l=[];return(e||t)&&l.push("translate("+e+"px,"+t+"px)"),a&&l.push("rotate("+a+")"),(n!==1||i!==1)&&l.push("scale("+n+","+i+")"),(o||s)&&l.push("skew("+_f(o*Ts)+"deg, "+_f(s*Ts)+"deg)"),l.join(" ")}var d2=function(){return _t.hasGlobalWindow&&K(window.btoa)?function(r){return window.btoa(unescape(encodeURIComponent(r)))}:typeof Buffer<"u"?function(r){return Buffer.from(r).toString("base64")}:function(r){return null}}(),Lp=Array.prototype.slice;function ia(r,e,t){return(e-r)*t+r}function sv(r,e,t,a){for(var n=e.length,i=0;ia?e:r,i=Math.min(t,a),o=n[i-1]||{color:[0,0,0,0],offset:0},s=i;so;if(s)a.length=o;else for(var l=i;l=1},r.prototype.getAdditiveTrack=function(){return this._additiveTrack},r.prototype.addKeyframe=function(e,t,a){this._needsSort=!0;var n=this.keyframes,i=n.length,o=!1,s=Gm,l=t;if(fe(t)){var u=_2(t);s=u,(u===1&&!Ct(t[0])||u===2&&!Ct(t[0][0]))&&(o=!0)}else if(Ct(t)&&!no(t))s=Kl;else if(U(t))if(!isNaN(+t))s=Kl;else{var f=Ie(t);f&&(l=f,s=cs)}else if(ml(t)){var h=V({},l);h.colorStops=G(t.colorStops,function(c){return{offset:c.offset,color:Ie(c.color)}}),Xw(t)?s=Pp:$w(t)&&(s=Rp),l=h}i===0?this.valType=s:(s!==this.valType||s===Gm)&&(o=!0),this.discrete=this.discrete||o;var v={time:e,value:l,rawValue:t,percent:0};return a&&(v.easing=a,v.easingFunc=K(a)?a:Ds[a]||dg(a)),n.push(v),v},r.prototype.prepare=function(e,t){var a=this.keyframes;this._needsSort&&a.sort(function(d,g){return d.time-g.time});for(var n=this.valType,i=a.length,o=a[i-1],s=this.discrete,l=jl(n),u=Fm(n),f=0;f=0&&!(o[f].percent<=t);f--);f=v(f,s-2)}else{for(f=h;ft);f++);f=v(f-1,s-2)}p=o[f+1],c=o[f]}if(c&&p){this._lastFr=f,this._lastFrP=t;var g=p.percent-c.percent,y=g===0?1:v((t-c.percent)/g,1);p.easingFunc&&(y=p.easingFunc(y));var m=a?this._additiveValue:u?Fo:e[l];if((jl(i)||u)&&!m&&(m=this._additiveValue=[]),this.discrete)e[l]=y<1?c.rawValue:p.rawValue;else if(jl(i))i===$u?sv(m,c[n],p[n],y):g2(m,c[n],p[n],y);else if(Fm(i)){var _=c[n],S=p[n],b=i===Pp;e[l]={type:b?"linear":"radial",x:ia(_.x,S.x,y),y:ia(_.y,S.y,y),colorStops:G(_.colorStops,function(w,T){var A=S.colorStops[T];return{offset:ia(w.offset,A.offset,y),color:Xu(sv([],w.color,A.color,y))}}),global:S.global},b?(e[l].x2=ia(_.x2,S.x2,y),e[l].y2=ia(_.y2,S.y2,y)):e[l].r=ia(_.r,S.r,y)}else if(u)sv(m,c[n],p[n],y),a||(e[l]=Xu(m));else{var x=ia(c[n],p[n],y);a?this._additiveValue=x:e[l]=x}a&&this._addToTarget(e)}}},r.prototype._addToTarget=function(e){var t=this.valType,a=this.propName,n=this._additiveValue;t===Kl?e[a]=e[a]+n:t===cs?(Ie(e[a],Fo),ql(Fo,Fo,n,1),e[a]=Xu(Fo)):t===$u?ql(e[a],e[a],n,1):t===jw&&zm(e[a],e[a],n,1)},r}(),mg=function(){function r(e,t,a,n){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&n){fh("Can' use additive animation on looped animation.");return}this._additiveAnimators=n,this._allowDiscrete=a}return r.prototype.getMaxTime=function(){return this._maxTime},r.prototype.getDelay=function(){return this._delay},r.prototype.getLoop=function(){return this._loop},r.prototype.getTarget=function(){return this._target},r.prototype.changeTarget=function(e){this._target=e},r.prototype.when=function(e,t,a){return this.whenWithKeys(e,t,St(t),a)},r.prototype.whenWithKeys=function(e,t,a,n){for(var i=this._tracks,o=0;o0&&l.addKeyframe(0,Is(u),n),this._trackKeys.push(s)}l.addKeyframe(e,Is(t[s]),n)}return this._maxTime=Math.max(this._maxTime,e),this},r.prototype.pause=function(){this._clip.pause(),this._paused=!0},r.prototype.resume=function(){this._clip.resume(),this._paused=!1},r.prototype.isPaused=function(){return!!this._paused},r.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},r.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,a=0;a0)){this._started=1;for(var t=this,a=[],n=this._maxTime||0,i=0;i1){var s=o.pop();i.addKeyframe(s.time,e[n]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},r}();function Xi(){return new Date().getTime()}var x2=function(r){k(e,r);function e(t){var a=r.call(this)||this;return a._running=!1,a._time=0,a._pausedTime=0,a._pauseStart=0,a._paused=!1,t=t||{},a.stage=t.stage||{},a}return e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var a=t.getClip();a&&this.addClip(a)},e.prototype.removeClip=function(t){if(t.animation){var a=t.prev,n=t.next;a?a.next=n:this._head=n,n?n.prev=a:this._tail=a,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var a=t.getClip();a&&this.removeClip(a),t.animation=null},e.prototype.update=function(t){for(var a=Xi()-this._pausedTime,n=a-this._time,i=this._head;i;){var o=i.next,s=i.step(a,n);s&&(i.ondestroy(),this.removeClip(i)),i=o}this._time=a,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0;function a(){t._running&&(pf(a),!t._paused&&t.update())}pf(a)},e.prototype.start=function(){this._running||(this._time=Xi(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=Xi(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=Xi()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._head;t;){var a=t.next;t.prev=t.next=t.animation=null,t=a}this._head=this._tail=null},e.prototype.isFinished=function(){return this._head==null},e.prototype.animate=function(t,a){a=a||{},this.start();var n=new mg(t,a.loop);return this.addAnimator(n),n},e}(fr),b2=300,lv=_t.domSupported,uv=function(){var r=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],t={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},a=G(r,function(n){var i=n.replace("mouse","pointer");return t.hasOwnProperty(i)?i:n});return{mouse:r,touch:e,pointer:a}}(),Hm={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Wm=!1;function Ep(r){var e=r.pointerType;return e==="pen"||e==="touch"}function w2(r){r.touching=!0,r.touchTimer!=null&&(clearTimeout(r.touchTimer),r.touchTimer=null),r.touchTimer=setTimeout(function(){r.touching=!1,r.touchTimer=null},700)}function fv(r){r&&(r.zrByTouch=!0)}function T2(r,e){return Je(r.dom,new A2(r,e),!0)}function Qw(r,e){for(var t=e,a=!1;t&&t.nodeType!==9&&!(a=t.domBelongToZr||t!==e&&t===r.painterRoot);)t=t.parentNode;return a}var A2=function(){function r(e,t){this.stopPropagation=Yt,this.stopImmediatePropagation=Yt,this.preventDefault=Yt,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return r}(),yr={mousedown:function(r){r=Je(this.dom,r),this.__mayPointerCapture=[r.zrX,r.zrY],this.trigger("mousedown",r)},mousemove:function(r){r=Je(this.dom,r);var e=this.__mayPointerCapture;e&&(r.zrX!==e[0]||r.zrY!==e[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",r)},mouseup:function(r){r=Je(this.dom,r),this.__togglePointerCapture(!1),this.trigger("mouseup",r)},mouseout:function(r){r=Je(this.dom,r);var e=r.toElement||r.relatedTarget;Qw(this,e)||(this.__pointerCapturing&&(r.zrEventControl="no_globalout"),this.trigger("mouseout",r))},wheel:function(r){Wm=!0,r=Je(this.dom,r),this.trigger("mousewheel",r)},mousewheel:function(r){Wm||(r=Je(this.dom,r),this.trigger("mousewheel",r))},touchstart:function(r){r=Je(this.dom,r),fv(r),this.__lastTouchMoment=new Date,this.handler.processGesture(r,"start"),yr.mousemove.call(this,r),yr.mousedown.call(this,r)},touchmove:function(r){r=Je(this.dom,r),fv(r),this.handler.processGesture(r,"change"),yr.mousemove.call(this,r)},touchend:function(r){r=Je(this.dom,r),fv(r),this.handler.processGesture(r,"end"),yr.mouseup.call(this,r),+new Date-+this.__lastTouchMomentXm||r<-Xm}var vn=[],bi=[],vv=Ge(),cv=Math.abs,fa=function(){function r(){}return r.prototype.getLocalTransform=function(e){return r.getLocalTransform(this,e)},r.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},r.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},r.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},r.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},r.prototype.needLocalTransform=function(){return hn(this.rotation)||hn(this.x)||hn(this.y)||hn(this.scaleX-1)||hn(this.scaleY-1)||hn(this.skewX)||hn(this.skewY)},r.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),a=this.transform;if(!(t||e)){a&&(Ym(a),this.invTransform=null);return}a=a||Ge(),t?this.getLocalTransform(a):Ym(a),e&&(t?Yr(a,e,a):ph(a,e)),this.transform=a,this._resolveGlobalScaleRatio(a)},r.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(vn);var a=vn[0]<0?-1:1,n=vn[1]<0?-1:1,i=((vn[0]-a)*t+a)/vn[0]||0,o=((vn[1]-n)*t+n)/vn[1]||0;e[0]*=i,e[1]*=i,e[2]*=o,e[3]*=o}this.invTransform=this.invTransform||Ge(),vi(this.invTransform,e)},r.prototype.getComputedTransform=function(){for(var e=this,t=[];e;)t.push(e),e=e.parent;for(;e=t.pop();)e.updateTransform();return this.transform},r.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],a=e[2]*e[2]+e[3]*e[3],n=Math.atan2(e[1],e[0]),i=Math.PI/2+n-Math.atan2(e[3],e[2]);a=Math.sqrt(a)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-n,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=a,this.originX=0,this.originY=0}},r.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||Ge(),Yr(bi,e.invTransform,t),t=bi);var a=this.originX,n=this.originY;(a||n)&&(vv[4]=a,vv[5]=n,Yr(bi,t,vv),bi[4]-=a,bi[5]-=n,t=bi),this.setLocalTransform(t)}},r.prototype.getGlobalScale=function(e){var t=this.transform;return e=e||[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},r.prototype.transformCoordToLocal=function(e,t){var a=[e,t],n=this.invTransform;return n&&le(a,a,n),a},r.prototype.transformCoordToGlobal=function(e,t){var a=[e,t],n=this.transform;return n&&le(a,a,n),a},r.prototype.getLineScale=function(){var e=this.transform;return e&&cv(e[0]-1)>1e-10&&cv(e[3]-1)>1e-10?Math.sqrt(cv(e[0]*e[3]-e[2]*e[1])):1},r.prototype.copyTransform=function(e){tT(this,e)},r.getLocalTransform=function(e,t){t=t||[];var a=e.originX||0,n=e.originY||0,i=e.scaleX,o=e.scaleY,s=e.anchorX,l=e.anchorY,u=e.rotation||0,f=e.x,h=e.y,v=e.skewX?Math.tan(e.skewX):0,c=e.skewY?Math.tan(-e.skewY):0;if(a||n||s||l){var p=a+s,d=n+l;t[4]=-p*i-v*d*o,t[5]=-d*o-c*p*i}else t[4]=t[5]=0;return t[0]=i,t[3]=o,t[1]=c*i,t[2]=v*o,u&&an(t,t,u),t[4]+=a+f,t[5]+=n+h,t},r.initDefaultProps=function(){var e=r.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),r}(),$r=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function tT(r,e){for(var t=0;t<$r.length;t++){var a=$r[t];r[a]=e[a]}}var $m={};function Xe(r,e){e=e||Ka;var t=$m[e];t||(t=$m[e]=new xl(500));var a=t.get(r);return a==null&&(a=Cr.measureText(r,e).width,t.put(r,a)),a}function Zm(r,e,t,a){var n=Xe(r,e),i=yh(e),o=ps(0,n,t),s=Hi(0,i,a),l=new ht(o,s,n,i);return l}function bl(r,e,t,a){var n=((r||"")+"").split(` +`),i=n.length;if(i===1)return Zm(n[0],e,t,a);for(var o=new ht(0,0,0,0),s=0;s=0?parseFloat(r)/100*e:parseFloat(r):r}function xf(r,e,t){var a=e.position||"inside",n=e.distance!=null?e.distance:5,i=t.height,o=t.width,s=i/2,l=t.x,u=t.y,f="left",h="top";if(a instanceof Array)l+=Mr(a[0],t.width),u+=Mr(a[1],t.height),f=null,h=null;else switch(a){case"left":l-=n,u+=s,f="right",h="middle";break;case"right":l+=n+o,u+=s,h="middle";break;case"top":l+=o/2,u-=n,f="center",h="bottom";break;case"bottom":l+=o/2,u+=i+n,f="center";break;case"inside":l+=o/2,u+=s,f="center",h="middle";break;case"insideLeft":l+=n,u+=s,h="middle";break;case"insideRight":l+=o-n,u+=s,f="right",h="middle";break;case"insideTop":l+=o/2,u+=n,f="center";break;case"insideBottom":l+=o/2,u+=i-n,f="center",h="bottom";break;case"insideTopLeft":l+=n,u+=n;break;case"insideTopRight":l+=o-n,u+=n,f="right";break;case"insideBottomLeft":l+=n,u+=i-n,h="bottom";break;case"insideBottomRight":l+=o-n,u+=i-n,f="right",h="bottom";break}return r=r||{},r.x=l,r.y=u,r.align=f,r.verticalAlign=h,r}var pv="__zr_normal__",dv=$r.concat(["ignore"]),L2=lr($r,function(r,e){return r[e]=!0,r},{ignore:!1}),wi={},P2=new ht(0,0,0,0),mh=function(){function r(e){this.id=fg(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return r.prototype._init=function(e){this.attr(e)},r.prototype.drift=function(e,t,a){switch(this.draggable){case"horizontal":t=0;break;case"vertical":e=0;break}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=e,n[5]+=t,this.decomposeTransform(),this.markRedraw()},r.prototype.beforeUpdate=function(){},r.prototype.afterUpdate=function(){},r.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},r.prototype.updateInnerText=function(e){var t=this._textContent;if(t&&(!t.ignore||e)){this.textConfig||(this.textConfig={});var a=this.textConfig,n=a.local,i=t.innerTransformable,o=void 0,s=void 0,l=!1;i.parent=n?this:null;var u=!1;if(i.copyTransform(t),a.position!=null){var f=P2;a.layoutRect?f.copy(a.layoutRect):f.copy(this.getBoundingRect()),n||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(wi,a,f):xf(wi,a,f),i.x=wi.x,i.y=wi.y,o=wi.align,s=wi.verticalAlign;var h=a.origin;if(h&&a.rotation!=null){var v=void 0,c=void 0;h==="center"?(v=f.width*.5,c=f.height*.5):(v=Mr(h[0],f.width),c=Mr(h[1],f.height)),u=!0,i.originX=-i.x+v+(n?0:f.x),i.originY=-i.y+c+(n?0:f.y)}}a.rotation!=null&&(i.rotation=a.rotation);var p=a.offset;p&&(i.x+=p[0],i.y+=p[1],u||(i.originX=-p[0],i.originY=-p[1]));var d=a.inside==null?typeof a.position=="string"&&a.position.indexOf("inside")>=0:a.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,m=void 0,_=void 0;d&&this.canBeInsideText()?(y=a.insideFill,m=a.insideStroke,(y==null||y==="auto")&&(y=this.getInsideTextFill()),(m==null||m==="auto")&&(m=this.getInsideTextStroke(y),_=!0)):(y=a.outsideFill,m=a.outsideStroke,(y==null||y==="auto")&&(y=this.getOutsideFill()),(m==null||m==="auto")&&(m=this.getOutsideStroke(y),_=!0)),y=y||"#000",(y!==g.fill||m!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=y,g.stroke=m,g.autoStroke=_,g.align=o,g.verticalAlign=s,t.setDefaultTextStyle(g)),t.__dirty|=He,l&&t.dirtyStyle(!0)}},r.prototype.canBeInsideText=function(){return!0},r.prototype.getInsideTextFill=function(){return"#fff"},r.prototype.getInsideTextStroke=function(e){return"#000"},r.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bp:Np},r.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),a=typeof t=="string"&&Ie(t);a||(a=[255,255,255,1]);for(var n=a[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)a[o]=a[o]*n+(i?0:255)*(1-n);return a[3]=1,Tr(a,"rgba")},r.prototype.traverse=function(e,t){},r.prototype.attrKV=function(e,t){e==="textConfig"?this.setTextConfig(t):e==="textContent"?this.setTextContent(t):e==="clipPath"?this.setClipPath(t):e==="extra"?(this.extra=this.extra||{},V(this.extra,t)):this[e]=t},r.prototype.hide=function(){this.ignore=!0,this.markRedraw()},r.prototype.show=function(){this.ignore=!1,this.markRedraw()},r.prototype.attr=function(e,t){if(typeof e=="string")this.attrKV(e,t);else if(tt(e))for(var a=e,n=St(a),i=0;i0},r.prototype.getState=function(e){return this.states[e]},r.prototype.ensureState=function(e){var t=this.states;return t[e]||(t[e]={}),t[e]},r.prototype.clearStates=function(e){this.useState(pv,!1,e)},r.prototype.useState=function(e,t,a,n){var i=e===pv,o=this.hasState();if(!(!o&&i)){var s=this.currentStates,l=this.stateTransition;if(!(vt(s,e)>=0&&(t||s.length===1))){var u;if(this.stateProxy&&!i&&(u=this.stateProxy(e)),u||(u=this.states&&this.states[e]),!u&&!i){fh("State "+e+" not exists.");return}i||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||n);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,u,this._normalState,t,!a&&!this.__inHover&&l&&l.duration>0,l);var h=this._textContent,v=this._textGuide;return h&&h.useState(e,t,a,f),v&&v.useState(e,t,a,f),i?(this.currentStates=[],this._normalState={}):t?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~He),u}}},r.prototype.useStates=function(e,t,a){if(!e.length)this.clearStates();else{var n=[],i=this.currentStates,o=e.length,s=o===i.length;if(s){for(var l=0;l0,p);var d=this._textContent,g=this._textGuide;d&&d.useStates(e,t,v),g&&g.useStates(e,t,v),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!v&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~He)}},r.prototype.isSilent=function(){for(var e=this.silent,t=this.parent;!e&&t;){if(t.silent){e=!0;break}t=t.parent}return e},r.prototype._updateAnimationTargets=function(){for(var e=0;e=0){var a=this.currentStates.slice();a.splice(t,1),this.useStates(a)}},r.prototype.replaceState=function(e,t,a){var n=this.currentStates.slice(),i=vt(n,e),o=vt(n,t)>=0;i>=0?o?n.splice(i,1):n[i]=t:a&&!o&&n.push(t),this.useStates(n)},r.prototype.toggleState=function(e,t){t?this.useState(e,!0):this.removeState(e)},r.prototype._mergeStates=function(e){for(var t={},a,n=0;n=0&&i.splice(o,1)}),this.animators.push(e),a&&a.animation.addAnimator(e),a&&a.wakeUp()},r.prototype.updateDuringAnimation=function(e){this.markRedraw()},r.prototype.stopAnimation=function(e,t){for(var a=this.animators,n=a.length,i=[],o=0;o0&&t.during&&i[0].during(function(p,d){t.during(d)});for(var v=0;v0||n.force&&!o.length){var T=void 0,A=void 0,D=void 0;if(s){A={},v&&(T={});for(var S=0;S<_;S++){var y=d[S];A[y]=t[y],v?T[y]=a[y]:t[y]=a[y]}}else if(v){D={};for(var S=0;S<_;S++){var y=d[S];D[y]=Is(t[y]),E2(t,a,y)}}var b=new mg(t,!1,!1,h?Pt(p,function(I){return I.targetName===e}):null);b.targetName=e,n.scope&&(b.scope=n.scope),v&&T&&b.whenWithKeys(0,T,d),D&&b.whenWithKeys(0,D,d),b.whenWithKeys(u??500,s?A:a,d).delay(f||0),r.addAnimator(b,e),o.push(b)}}var at=function(r){k(e,r);function e(t){var a=r.call(this)||this;return a.isGroup=!0,a._children=[],a.attr(t),a}return e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var a=this._children,n=0;n=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,a){var n=vt(this._children,t);return n>=0&&this.replaceAt(a,n),this},e.prototype.replaceAt=function(t,a){var n=this._children,i=n[a];if(t&&t!==this&&t.parent!==this&&t!==i){n[a]=t,i.parent=null;var o=this.__zr;o&&i.removeSelfFromZr(o),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var a=this.__zr;a&&a!==t.__zr&&t.addSelfToZr(a),a&&a.refresh()},e.prototype.remove=function(t){var a=this.__zr,n=this._children,i=vt(n,t);return i<0?this:(n.splice(i,1),t.parent=null,a&&t.removeSelfFromZr(a),a&&a.refresh(),this)},e.prototype.removeAll=function(){for(var t=this._children,a=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},r.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},r.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},r.prototype.refreshHover=function(){this._needsRefreshHover=!0},r.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover())},r.prototype.resize=function(e){this._disposed||(e=e||{},this.painter.resize(e.width,e.height),this.handler.resize())},r.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},r.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},r.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},r.prototype.setCursorStyle=function(e){this._disposed||this.handler.setCursorStyle(e)},r.prototype.findHover=function(e,t){if(!this._disposed)return this.handler.findHover(e,t)},r.prototype.on=function(e,t,a){return this._disposed||this.handler.on(e,t,a),this},r.prototype.off=function(e,t){this._disposed||this.handler.off(e,t)},r.prototype.trigger=function(e,t){this._disposed||this.handler.trigger(e,t)},r.prototype.clear=function(){if(!this._disposed){for(var e=this.storage.getRoots(),t=0;t0){if(r<=n)return o;if(r>=i)return s}else{if(r>=n)return o;if(r<=i)return s}else{if(r===n)return o;if(r===i)return s}return(r-n)/l*u+o}function W(r,e){switch(r){case"center":case"middle":r="50%";break;case"left":case"top":r="0%";break;case"right":case"bottom":r="100%";break}return U(r)?W2(r).match(/%$/)?parseFloat(r)/100*e:parseFloat(r):r==null?NaN:+r}function Ht(r,e,t){return e==null&&(e=10),e=Math.min(Math.max(0,e),iT),r=(+r).toFixed(e),t?r:+r}function Ue(r){return r.sort(function(e,t){return e-t}),r}function Sr(r){if(r=+r,isNaN(r))return 0;if(r>1e-14){for(var e=1,t=0;t<15;t++,e*=10)if(Math.round(r*e)/e===r)return t}return oT(r)}function oT(r){var e=r.toString().toLowerCase(),t=e.indexOf("e"),a=t>0?+e.slice(t+1):0,n=t>0?t:e.length,i=e.indexOf("."),o=i<0?0:n-1-i;return Math.max(0,o-a)}function _g(r,e){var t=Math.log,a=Math.LN10,n=Math.floor(t(r[1]-r[0])/a),i=Math.round(t(Math.abs(e[1]-e[0]))/a),o=Math.min(Math.max(-n+i,0),20);return isFinite(o)?o:20}function U2(r,e,t){if(!r[e])return 0;var a=sT(r,t);return a[e]||0}function sT(r,e){var t=lr(r,function(c,p){return c+(isNaN(p)?0:p)},0);if(t===0)return[];for(var a=Math.pow(10,e),n=G(r,function(c){return(isNaN(c)?0:c)/t*a*100}),i=a*100,o=G(n,function(c){return Math.floor(c)}),s=lr(o,function(c,p){return c+p},0),l=G(n,function(c,p){return c-o[p]});su&&(u=l[h],f=h);++o[f],l[f]=0,++s}return G(o,function(c){return c/a})}function Y2(r,e){var t=Math.max(Sr(r),Sr(e)),a=r+e;return t>iT?a:Ht(a,t)}var Gp=9007199254740991;function Sg(r){var e=Math.PI*2;return(r%e+e)%e}function io(r){return r>-qm&&r=10&&e++,e}function xg(r,e){var t=_h(r),a=Math.pow(10,t),n=r/a,i;return e?n<1.5?i=1:n<2.5?i=2:n<4?i=3:n<7?i=5:i=10:n<1?i=1:n<2?i=2:n<3?i=3:n<5?i=5:i=10,r=i*a,t>=-20?+r.toFixed(t<0?-t:0):r}function Ku(r,e){var t=(r.length-1)*e+1,a=Math.floor(t),n=+r[a-1],i=t-a;return i?n+i*(r[a]-n):n}function Fp(r){r.sort(function(l,u){return s(l,u,0)?-1:1});for(var e=-1/0,t=1,a=0;a=0||i&&vt(i,l)<0)){var u=a.getShallow(l,e);u!=null&&(o[r[s][0]]=u)}}return o}}var gP=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],yP=ii(gP),mP=function(){function r(){}return r.prototype.getAreaStyle=function(e,t){return yP(this,e,t)},r}(),Wp=new xl(50);function _P(r){if(typeof r=="string"){var e=Wp.get(r);return e&&e.image}else return r}function Cg(r,e,t,a,n){if(r)if(typeof r=="string"){if(e&&e.__zrImageSrc===r||!t)return e;var i=Wp.get(r),o={hostEl:t,cb:a,cbPayload:n};return i?(e=i.image,!xh(e)&&i.pending.push(o)):(e=Cr.loadImage(r,Jm,Jm),e.__zrImageSrc=r,Wp.put(r,e.__cachedImgObj={image:e,pending:[o]})),e}else return r;else return e}function Jm(){var r=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=o;l++)s-=o;var u=Xe(t,e);return u>s&&(t="",u=0),s=r-u,n.ellipsis=t,n.ellipsisWidth=u,n.contentWidth=s,n.containerWidth=r,n}function xT(r,e){var t=e.containerWidth,a=e.font,n=e.contentWidth;if(!t)return"";var i=Xe(r,a);if(i<=t)return r;for(var o=0;;o++){if(i<=n||o>=e.maxIterations){r+=e.ellipsis;break}var s=o===0?SP(r,n,e.ascCharWidth,e.cnCharWidth):i>0?Math.floor(r.length*n/i):0;r=r.substr(0,s),i=Xe(r,a)}return r===""&&(r=e.placeholder),r}function SP(r,e,t,a){for(var n=0,i=0,o=r.length;ic&&u){var p=Math.floor(c/s);h=h.slice(0,p)}if(r&&i&&f!=null)for(var d=ST(f,n,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),g=0;gs&&_v(t,r.substring(s,u),e,o),_v(t,l[2],e,o,l[1]),s=mv.lastIndex}sn){b>0?(m.tokens=m.tokens.slice(0,b),g(m,S,_),t.lines=t.lines.slice(0,y+1)):t.lines=t.lines.slice(0,y);break t}var I=w.width,L=I==null||I==="auto";if(typeof I=="string"&&I.charAt(I.length-1)==="%")x.percentWidth=I,f.push(x),x.contentWidth=Xe(x.text,D);else{if(L){var P=w.backgroundColor,R=P&&P.image;R&&(R=_P(R),xh(R)&&(x.width=Math.max(x.width,R.width*M/R.height)))}var E=p&&a!=null?a-S:null;E!=null&&E0&&p+a.accumWidth>a.width&&(f=e.split(` +`),u=!0),a.accumWidth=p}else{var d=bT(e,l,a.width,a.breakAll,a.accumWidth);a.accumWidth=d.accumWidth+c,h=d.linesWidths,f=d.lines}}else f=e.split(` +`);for(var g=0;g=32&&e<=591||e>=880&&e<=4351||e>=4608&&e<=5119||e>=7680&&e<=8303}var CP=lr(",&?/;] ".split(""),function(r,e){return r[e]=!0,r},{});function DP(r){return AP(r)?!!CP[r]:!0}function bT(r,e,t,a,n){for(var i=[],o=[],s="",l="",u=0,f=0,h=0;ht:n+f+c>t){f?(s||l)&&(p?(s||(s=l,l="",u=0,f=u),i.push(s),o.push(f-u),l+=v,u+=c,s="",f=u):(l&&(s+=l,l="",u=0),i.push(s),o.push(f),s=v,f=c)):p?(i.push(l),o.push(u),l=v,u=c):(i.push(v),o.push(c));continue}f+=c,p?(l+=v,u+=c):(l&&(s+=l,l="",u=0),s+=v)}return!i.length&&!s&&(s=r,l="",u=0),l&&(s+=l),s&&(i.push(s),o.push(f)),i.length===1&&(f+=n),{accumWidth:f,lines:i,linesWidths:o}}var Up="__zr_style_"+Math.round(Math.random()*10),Kn={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},bh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Kn[Up]=!0;var e0=["z","z2","invisible"],MP=["invisible"],ur=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype._init=function(t){for(var a=St(t),n=0;n1e-4){s[0]=r-t,s[1]=e-a,l[0]=r+t,l[1]=e+a;return}if(Ql[0]=wv(n)*t+r,Ql[1]=bv(n)*a+e,Jl[0]=wv(i)*t+r,Jl[1]=bv(i)*a+e,u(s,Ql,Jl),f(l,Ql,Jl),n=n%pn,n<0&&(n=n+pn),i=i%pn,i<0&&(i=i+pn),n>i&&!o?i+=pn:nn&&(tu[0]=wv(c)*t+r,tu[1]=bv(c)*a+e,u(s,tu,s),f(l,tu,l))}var Ot={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},dn=[],gn=[],Pr=[],Ta=[],Rr=[],Er=[],Tv=Math.min,Av=Math.max,yn=Math.cos,mn=Math.sin,ra=Math.abs,Yp=Math.PI,Ra=Yp*2,Cv=typeof Float32Array<"u",Ho=[];function Dv(r){var e=Math.round(r/Yp*1e8)/1e8;return e%2*Yp}function Dg(r,e){var t=Dv(r[0]);t<0&&(t+=Ra);var a=t-r[0],n=r[1];n+=a,!e&&n-t>=Ra?n=t+Ra:e&&t-n>=Ra?n=t-Ra:!e&&t>n?n=t+(Ra-Dv(t-n)):e&&t0&&(this._ux=ra(a/Sf/e)||0,this._uy=ra(a/Sf/t)||0)},r.prototype.setDPR=function(e){this.dpr=e},r.prototype.setContext=function(e){this._ctx=e},r.prototype.getContext=function(){return this._ctx},r.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},r.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},r.prototype.moveTo=function(e,t){return this._drawPendingPt(),this.addData(Ot.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},r.prototype.lineTo=function(e,t){var a=ra(e-this._xi),n=ra(t-this._yi),i=a>this._ux||n>this._uy;if(this.addData(Ot.L,e,t),this._ctx&&i&&this._ctx.lineTo(e,t),i)this._xi=e,this._yi=t,this._pendingPtDist=0;else{var o=a*a+n*n;o>this._pendingPtDist&&(this._pendingPtX=e,this._pendingPtY=t,this._pendingPtDist=o)}return this},r.prototype.bezierCurveTo=function(e,t,a,n,i,o){return this._drawPendingPt(),this.addData(Ot.C,e,t,a,n,i,o),this._ctx&&this._ctx.bezierCurveTo(e,t,a,n,i,o),this._xi=i,this._yi=o,this},r.prototype.quadraticCurveTo=function(e,t,a,n){return this._drawPendingPt(),this.addData(Ot.Q,e,t,a,n),this._ctx&&this._ctx.quadraticCurveTo(e,t,a,n),this._xi=a,this._yi=n,this},r.prototype.arc=function(e,t,a,n,i,o){this._drawPendingPt(),Ho[0]=n,Ho[1]=i,Dg(Ho,o),n=Ho[0],i=Ho[1];var s=i-n;return this.addData(Ot.A,e,t,a,a,n,s,0,o?0:1),this._ctx&&this._ctx.arc(e,t,a,n,i,o),this._xi=yn(i)*a+e,this._yi=mn(i)*a+t,this},r.prototype.arcTo=function(e,t,a,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(e,t,a,n,i),this},r.prototype.rect=function(e,t,a,n){return this._drawPendingPt(),this._ctx&&this._ctx.rect(e,t,a,n),this.addData(Ot.R,e,t,a,n),this},r.prototype.closePath=function(){this._drawPendingPt(),this.addData(Ot.Z);var e=this._ctx,t=this._x0,a=this._y0;return e&&e.closePath(),this._xi=t,this._yi=a,this},r.prototype.fill=function(e){e&&e.fill(),this.toStatic()},r.prototype.stroke=function(e){e&&e.stroke(),this.toStatic()},r.prototype.len=function(){return this._len},r.prototype.setData=function(e){var t=e.length;!(this.data&&this.data.length===t)&&Cv&&(this.data=new Float32Array(t));for(var a=0;af.length&&(this._expandData(),f=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},r.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var e=[],t=0;t11&&(this.data=new Float32Array(e)))}},r.prototype.getBoundingRect=function(){Pr[0]=Pr[1]=Rr[0]=Rr[1]=Number.MAX_VALUE,Ta[0]=Ta[1]=Er[0]=Er[1]=-Number.MAX_VALUE;var e=this.data,t=0,a=0,n=0,i=0,o;for(o=0;oa||ra(_)>n||v===t-1)&&(d=Math.sqrt(m*m+_*_),i=g,o=y);break}case Ot.C:{var S=e[v++],b=e[v++],g=e[v++],y=e[v++],x=e[v++],w=e[v++];d=jL(i,o,S,b,g,y,x,w,10),i=x,o=w;break}case Ot.Q:{var S=e[v++],b=e[v++],g=e[v++],y=e[v++];d=JL(i,o,S,b,g,y,10),i=g,o=y;break}case Ot.A:var T=e[v++],A=e[v++],D=e[v++],M=e[v++],I=e[v++],L=e[v++],P=L+I;v+=1,p&&(s=yn(I)*D+T,l=mn(I)*M+A),d=Av(D,M)*Tv(Ra,Math.abs(L)),i=yn(P)*D+T,o=mn(P)*M+A;break;case Ot.R:{s=i=e[v++],l=o=e[v++];var R=e[v++],E=e[v++];d=R*2+E*2;break}case Ot.Z:{var m=s-i,_=l-o;d=Math.sqrt(m*m+_*_),i=s,o=l;break}}d>=0&&(u[h++]=d,f+=d)}return this._pathLen=f,f},r.prototype.rebuildPath=function(e,t){var a=this.data,n=this._ux,i=this._uy,o=this._len,s,l,u,f,h,v,c=t<1,p,d,g=0,y=0,m,_=0,S,b;if(!(c&&(this._pathSegLen||this._calculateLength(),p=this._pathSegLen,d=this._pathLen,m=t*d,!m)))t:for(var x=0;x0&&(e.lineTo(S,b),_=0),w){case Ot.M:s=u=a[x++],l=f=a[x++],e.moveTo(u,f);break;case Ot.L:{h=a[x++],v=a[x++];var A=ra(h-u),D=ra(v-f);if(A>n||D>i){if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;e.lineTo(u*(1-I)+h*I,f*(1-I)+v*I);break t}g+=M}e.lineTo(h,v),u=h,f=v,_=0}else{var L=A*A+D*D;L>_&&(S=h,b=v,_=L)}break}case Ot.C:{var P=a[x++],R=a[x++],E=a[x++],N=a[x++],O=a[x++],B=a[x++];if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;ja(u,P,E,O,I,dn),ja(f,R,N,B,I,gn),e.bezierCurveTo(dn[1],gn[1],dn[2],gn[2],dn[3],gn[3]);break t}g+=M}e.bezierCurveTo(P,R,E,N,O,B),u=O,f=B;break}case Ot.Q:{var P=a[x++],R=a[x++],E=a[x++],N=a[x++];if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;Us(u,P,E,I,dn),Us(f,R,N,I,gn),e.quadraticCurveTo(dn[1],gn[1],dn[2],gn[2]);break t}g+=M}e.quadraticCurveTo(P,R,E,N),u=E,f=N;break}case Ot.A:var F=a[x++],H=a[x++],Y=a[x++],j=a[x++],J=a[x++],ct=a[x++],xt=a[x++],pt=!a[x++],rt=Y>j?Y:j,dt=ra(Y-j)>.001,lt=J+ct,q=!1;if(c){var M=p[y++];g+M>m&&(lt=J+ct*(m-g)/M,q=!0),g+=M}if(dt&&e.ellipse?e.ellipse(F,H,Y,j,xt,J,lt,pt):e.arc(F,H,rt,J,lt,pt),q)break t;T&&(s=yn(J)*Y+F,l=mn(J)*j+H),u=yn(lt)*Y+F,f=mn(lt)*j+H;break;case Ot.R:s=u=a[x],l=f=a[x+1],h=a[x++],v=a[x++];var ut=a[x++],Gt=a[x++];if(c){var M=p[y++];if(g+M>m){var At=m-g;e.moveTo(h,v),e.lineTo(h+Tv(At,ut),v),At-=ut,At>0&&e.lineTo(h+ut,v+Tv(At,Gt)),At-=Gt,At>0&&e.lineTo(h+Av(ut-At,0),v+Gt),At-=ut,At>0&&e.lineTo(h,v+Av(Gt-At,0));break t}g+=M}e.rect(h,v,ut,Gt);break;case Ot.Z:if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;e.lineTo(u*(1-I)+s*I,f*(1-I)+l*I);break t}g+=M}e.closePath(),u=s,f=l}}},r.prototype.clone=function(){var e=new r,t=this.data;return e.data=t.slice?t.slice():Array.prototype.slice.call(t),e._len=this._len,e},r.CMD=Ot,r.initDefaultProps=function(){var e=r.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),r}();function ka(r,e,t,a,n,i,o){if(n===0)return!1;var s=n,l=0,u=r;if(o>e+s&&o>a+s||or+s&&i>t+s||ie+h&&f>a+h&&f>i+h&&f>s+h||fr+h&&u>t+h&&u>n+h&&u>o+h||ue+u&&l>a+u&&l>i+u||lr+u&&s>t+u&&s>n+u||st||f+un&&(n+=Wo);var v=Math.atan2(l,s);return v<0&&(v+=Wo),v>=a&&v<=n||v+Wo>=a&&v+Wo<=n}function oa(r,e,t,a,n,i){if(i>e&&i>a||in?s:0}var Aa=qr.CMD,_n=Math.PI*2,OP=1e-4;function NP(r,e){return Math.abs(r-e)e&&u>a&&u>i&&u>s||u1&&BP(),c=te(e,a,i,s,er[0]),v>1&&(p=te(e,a,i,s,er[1]))),v===2?ge&&s>a&&s>i||s=0&&u<=1){for(var f=0,h=se(e,a,i,u),v=0;vt||s<-t)return 0;var l=Math.sqrt(t*t-s*s);Ae[0]=-l,Ae[1]=l;var u=Math.abs(a-n);if(u<1e-4)return 0;if(u>=_n-1e-4){a=0,n=_n;var f=i?1:-1;return o>=Ae[0]+r&&o<=Ae[1]+r?f:0}if(a>n){var h=a;a=n,n=h}a<0&&(a+=_n,n+=_n);for(var v=0,c=0;c<2;c++){var p=Ae[c];if(p+r>o){var d=Math.atan2(s,p),f=i?1:-1;d<0&&(d=_n+d),(d>=a&&d<=n||d+_n>=a&&d+_n<=n)&&(d>Math.PI/2&&d1&&(t||(s+=oa(l,u,f,h,a,n))),g&&(l=i[p],u=i[p+1],f=l,h=u),d){case Aa.M:f=i[p++],h=i[p++],l=f,u=h;break;case Aa.L:if(t){if(ka(l,u,i[p],i[p+1],e,a,n))return!0}else s+=oa(l,u,i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Aa.C:if(t){if(EP(l,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],e,a,n))return!0}else s+=VP(l,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Aa.Q:if(t){if(wT(l,u,i[p++],i[p++],i[p],i[p+1],e,a,n))return!0}else s+=zP(l,u,i[p++],i[p++],i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Aa.A:var y=i[p++],m=i[p++],_=i[p++],S=i[p++],b=i[p++],x=i[p++];p+=1;var w=!!(1-i[p++]);v=Math.cos(b)*_+y,c=Math.sin(b)*S+m,g?(f=v,h=c):s+=oa(l,u,v,c,a,n);var T=(a-y)*S/_+y;if(t){if(kP(y,m,S,b,b+x,w,e,T,n))return!0}else s+=GP(y,m,S,b,b+x,w,T,n);l=Math.cos(b+x)*_+y,u=Math.sin(b+x)*S+m;break;case Aa.R:f=l=i[p++],h=u=i[p++];var A=i[p++],D=i[p++];if(v=f+A,c=h+D,t){if(ka(f,h,v,h,e,a,n)||ka(v,h,v,c,e,a,n)||ka(v,c,f,c,e,a,n)||ka(f,c,f,h,e,a,n))return!0}else s+=oa(v,h,v,c,a,n),s+=oa(f,c,f,h,a,n);break;case Aa.Z:if(t){if(ka(l,u,f,h,e,a,n))return!0}else s+=oa(l,u,f,h,a,n);l=f,u=h;break}}return!t&&!NP(u,h)&&(s+=oa(l,u,f,h,a,n)||0),s!==0}function FP(r,e,t){return TT(r,0,!1,e,t)}function HP(r,e,t,a){return TT(r,e,!0,t,a)}var bf=Q({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Kn),WP={style:Q({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},bh.style)},Mv=$r.concat(["invisible","culling","z","z2","zlevel","parent"]),yt=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.update=function(){var t=this;r.prototype.update.call(this);var a=this.style;if(a.decal){var n=this._decalEl=this._decalEl||new e;n.buildPath===e.prototype.buildPath&&(n.buildPath=function(l){t.buildPath(l,t.shape)}),n.silent=!0;var i=n.style;for(var o in a)i[o]!==a[o]&&(i[o]=a[o]);i.fill=a.fill?a.decal:null,i.decal=null,i.shadowColor=null,a.strokeFirst&&(i.stroke=null);for(var s=0;s.5?Np:a>.2?I2:Bp}else if(t)return Bp}return Np},e.prototype.getInsideTextStroke=function(t){var a=this.style.fill;if(U(a)){var n=this.__zr,i=!!(n&&n.isDarkMode()),o=$s(t,0)0))},e.prototype.hasFill=function(){var t=this.style,a=t.fill;return a!=null&&a!=="none"},e.prototype.getBoundingRect=function(){var t=this._rect,a=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var o=this.path;(i||this.__dirty&Fi)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){s.copy(t);var l=a.strokeNoScale?this.getLineScale():1,u=a.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return t},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect(),o=this.style;if(t=n[0],a=n[1],i.contain(t,a)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),HP(s,l/u,t,a)))return!0}if(this.hasFill())return FP(s,t,a)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=Fi,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){t==="style"?this.dirtyStyle():t==="shape"?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(t,a){t==="shape"?this.setShape(a):r.prototype.attrKV.call(this,t,a)},e.prototype.setShape=function(t,a){var n=this.shape;return n||(n=this.shape={}),typeof t=="string"?n[t]=a:V(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&Fi)},e.prototype.createStyle=function(t){return _l(bf,t)},e.prototype._innerSaveToNormal=function(t){r.prototype._innerSaveToNormal.call(this,t);var a=this._normalState;t.shape&&!a.shape&&(a.shape=V({},this.shape))},e.prototype._applyStateObj=function(t,a,n,i,o,s){r.prototype._applyStateObj.call(this,t,a,n,i,o,s);var l=!(a&&i),u;if(a&&a.shape?o?i?u=a.shape:(u=V({},n.shape),V(u,a.shape)):(u=V({},i?this.shape:n.shape),V(u,a.shape)):l&&(u=n.shape),u)if(o){this.shape=V({},this.shape);for(var f={},h=St(u),v=0;v0},e.prototype.hasFill=function(){var t=this.style,a=t.fill;return a!=null&&a!=="none"},e.prototype.createStyle=function(t){return _l(UP,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var a=t.text;a!=null?a+="":a="";var n=bl(a,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=function(){var t=e.prototype;t.dirtyRectTolerance=10}(),e}(ur);oo.prototype.type="tspan";var YP=Q({x:0,y:0},Kn),XP={style:Q({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},bh.style)};function $P(r){return!!(r&&typeof r!="string"&&r.width&&r.height)}var oe=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.createStyle=function(t){return _l(YP,t)},e.prototype._getSize=function(t){var a=this.style,n=a[t];if(n!=null)return n;var i=$P(a.image)?a.image:this.__image;if(!i)return 0;var o=t==="width"?"height":"width",s=a[o];return s==null?i[t]:i[t]/i[o]*s},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return XP},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new ht(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(ur);oe.prototype.type="image";function ZP(r,e){var t=e.x,a=e.y,n=e.width,i=e.height,o=e.r,s,l,u,f;n<0&&(t=t+n,n=-n),i<0&&(a=a+i,i=-i),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var h;s+l>n&&(h=s+l,s*=n/h,l*=n/h),u+f>n&&(h=u+f,u*=n/h,f*=n/h),l+u>i&&(h=l+u,l*=i/h,u*=i/h),s+f>i&&(h=s+f,s*=i/h,f*=i/h),r.moveTo(t+s,a),r.lineTo(t+n-l,a),l!==0&&r.arc(t+n-l,a+l,l,-Math.PI/2,0),r.lineTo(t+n,a+i-u),u!==0&&r.arc(t+n-u,a+i-u,u,0,Math.PI/2),r.lineTo(t+f,a+i),f!==0&&r.arc(t+f,a+i-f,f,Math.PI/2,Math.PI),r.lineTo(t,a+s),s!==0&&r.arc(t+s,a+s,s,Math.PI,Math.PI*1.5)}var $i=Math.round;function AT(r,e,t){if(e){var a=e.x1,n=e.x2,i=e.y1,o=e.y2;r.x1=a,r.x2=n,r.y1=i,r.y2=o;var s=t&&t.lineWidth;return s&&($i(a*2)===$i(n*2)&&(r.x1=r.x2=Hn(a,s,!0)),$i(i*2)===$i(o*2)&&(r.y1=r.y2=Hn(i,s,!0))),r}}function CT(r,e,t){if(e){var a=e.x,n=e.y,i=e.width,o=e.height;r.x=a,r.y=n,r.width=i,r.height=o;var s=t&&t.lineWidth;return s&&(r.x=Hn(a,s,!0),r.y=Hn(n,s,!0),r.width=Math.max(Hn(a+i,s,!1)-r.x,i===0?0:1),r.height=Math.max(Hn(n+o,s,!1)-r.y,o===0?0:1)),r}}function Hn(r,e,t){if(!e)return r;var a=$i(r*2);return(a+$i(e))%2===0?a/2:(a+(t?1:-1))/2}var qP=function(){function r(){this.x=0,this.y=0,this.width=0,this.height=0}return r}(),KP={},wt=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new qP},e.prototype.buildPath=function(t,a){var n,i,o,s;if(this.subPixelOptimize){var l=CT(KP,a,this.style);n=l.x,i=l.y,o=l.width,s=l.height,l.r=a.r,a=l}else n=a.x,i=a.y,o=a.width,s=a.height;a.r?ZP(t,a):t.rect(n,i,o,s)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(yt);wt.prototype.type="rect";var o0={fill:"#000"},s0=2,jP={style:Q({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},bh.style)},bt=function(r){k(e,r);function e(t){var a=r.call(this)||this;return a.type="text",a._children=[],a._defaultStyle=o0,a.attr(t),a}return e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){r.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var t=0;t0,I=t.width!=null&&(t.overflow==="truncate"||t.overflow==="break"||t.overflow==="breakAll"),L=o.calculatedLineHeight,P=0;P=0&&(P=x[L],P.align==="right");)this._placeToken(P,t,T,y,I,"right",_),A-=P.width,I-=P.width,L--;for(M+=(i-(M-g)-(m-I)-A)/2;D<=L;)P=x[D],this._placeToken(P,t,T,y,M+P.width/2,"center",_),M+=P.width,D++;y+=T}},e.prototype._placeToken=function(t,a,n,i,o,s,l){var u=a.rich[t.styleName]||{};u.text=t.text;var f=t.verticalAlign,h=i+n/2;f==="top"?h=i+t.height/2:f==="bottom"&&(h=i+n-t.height/2);var v=!t.isLineHolder&&Iv(u);v&&this._renderBackground(u,a,s==="right"?o-t.width:s==="center"?o-t.width/2:o,h-t.height/2,t.width,t.height);var c=!!u.backgroundColor,p=t.textPadding;p&&(o=c0(o,s,p),h-=t.height/2-p[0]-t.innerHeight/2);var d=this._getOrCreateChild(oo),g=d.createStyle();d.useStyle(g);var y=this._defaultStyle,m=!1,_=0,S=v0("fill"in u?u.fill:"fill"in a?a.fill:(m=!0,y.fill)),b=h0("stroke"in u?u.stroke:"stroke"in a?a.stroke:!c&&!l&&(!y.autoStroke||m)?(_=s0,y.stroke):null),x=u.textShadowBlur>0||a.textShadowBlur>0;g.text=t.text,g.x=o,g.y=h,x&&(g.shadowBlur=u.textShadowBlur||a.textShadowBlur||0,g.shadowColor=u.textShadowColor||a.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||a.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||a.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=t.font||Ka,g.opacity=br(u.opacity,a.opacity,1),u0(g,u),b&&(g.lineWidth=br(u.lineWidth,a.lineWidth,_),g.lineDash=ot(u.lineDash,a.lineDash),g.lineDashOffset=a.lineDashOffset||0,g.stroke=b),S&&(g.fill=S);var w=t.contentWidth,T=t.contentHeight;d.setBoundingRect(new ht(ps(g.x,w,g.textAlign),Hi(g.y,T,g.textBaseline),w,T))},e.prototype._renderBackground=function(t,a,n,i,o,s){var l=t.backgroundColor,u=t.borderWidth,f=t.borderColor,h=l&&l.image,v=l&&!h,c=t.borderRadius,p=this,d,g;if(v||t.lineHeight||u&&f){d=this._getOrCreateChild(wt),d.useStyle(d.createStyle()),d.style.fill=null;var y=d.shape;y.x=n,y.y=i,y.width=o,y.height=s,y.r=c,d.dirtyShape()}if(v){var m=d.style;m.fill=l||null,m.fillOpacity=ot(t.fillOpacity,1)}else if(h){g=this._getOrCreateChild(oe),g.onload=function(){p.dirtyStyle()};var _=g.style;_.image=l.image,_.x=n,_.y=i,_.width=o,_.height=s}if(u&&f){var m=d.style;m.lineWidth=u,m.stroke=f,m.strokeOpacity=ot(t.strokeOpacity,1),m.lineDash=t.borderDash,m.lineDashOffset=t.borderDashOffset||0,d.strokeContainThreshold=0,d.hasFill()&&d.hasStroke()&&(m.strokeFirst=!0,m.lineWidth*=2)}var S=(d||g).style;S.shadowBlur=t.shadowBlur||0,S.shadowColor=t.shadowColor||"transparent",S.shadowOffsetX=t.shadowOffsetX||0,S.shadowOffsetY=t.shadowOffsetY||0,S.opacity=br(t.opacity,a.opacity,1)},e.makeFont=function(t){var a="";return MT(t)&&(a=[t.fontStyle,t.fontWeight,DT(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),a&&or(a)||t.textFont||t.font},e}(ur),QP={left:!0,right:1,center:1},JP={top:1,bottom:1,middle:1},l0=["fontStyle","fontWeight","fontSize","fontFamily"];function DT(r){return typeof r=="string"&&(r.indexOf("px")!==-1||r.indexOf("rem")!==-1||r.indexOf("em")!==-1)?r:isNaN(+r)?sg+"px":r+"px"}function u0(r,e){for(var t=0;t=0,i=!1;if(r instanceof yt){var o=IT(r),s=n&&o.selectFill||o.normalFill,l=n&&o.selectStroke||o.normalStroke;if(Ti(s)||Ti(l)){a=a||{};var u=a.style||{};u.fill==="inherit"?(i=!0,a=V({},a),u=V({},u),u.fill=s):!Ti(u.fill)&&Ti(s)?(i=!0,a=V({},a),u=V({},u),u.fill=mf(s)):!Ti(u.stroke)&&Ti(l)&&(i||(a=V({},a),u=V({},u)),u.stroke=mf(l)),a.style=u}}if(a&&a.z2==null){i||(a=V({},a));var f=r.z2EmphasisLift;a.z2=r.z2+(f??mo)}return a}function oR(r,e,t){if(t&&t.z2==null){t=V({},t);var a=r.z2SelectLift;t.z2=r.z2+(a??eR)}return t}function sR(r,e,t){var a=vt(r.currentStates,e)>=0,n=r.style.opacity,i=a?null:nR(r,["opacity"],e,{opacity:1});t=t||{};var o=t.style||{};return o.opacity==null&&(t=V({},t),o=V({opacity:a?n:i.opacity*.1},o),t.style=o),t}function Lv(r,e){var t=this.states[r];if(this.style){if(r==="emphasis")return iR(this,r,e,t);if(r==="blur")return sR(this,r,t);if(r==="select")return oR(this,r,t)}return t}function oi(r){r.stateProxy=Lv;var e=r.getTextContent(),t=r.getTextGuideLine();e&&(e.stateProxy=Lv),t&&(t.stateProxy=Lv)}function m0(r,e){!NT(r,e)&&!r.__highByOuter&&ba(r,LT)}function _0(r,e){!NT(r,e)&&!r.__highByOuter&&ba(r,PT)}function da(r,e){r.__highByOuter|=1<<(e||0),ba(r,LT)}function ga(r,e){!(r.__highByOuter&=~(1<<(e||0)))&&ba(r,PT)}function ET(r){ba(r,Lg)}function Pg(r){ba(r,RT)}function kT(r){ba(r,rR)}function OT(r){ba(r,aR)}function NT(r,e){return r.__highDownSilentOnTouch&&e.zrByTouch}function BT(r){var e=r.getModel(),t=[],a=[];e.eachComponent(function(n,i){var o=Mg(i),s=n==="series",l=s?r.getViewOfSeriesModel(i):r.getViewOfComponentModel(i);!s&&a.push(l),o.isBlured&&(l.group.traverse(function(u){RT(u)}),s&&t.push(i)),o.isBlured=!1}),C(a,function(n){n&&n.toggleBlurSeries&&n.toggleBlurSeries(t,!1,e)})}function $p(r,e,t,a){var n=a.getModel();t=t||"coordinateSystem";function i(u,f){for(var h=0;h0){var s={dataIndex:o,seriesIndex:t.seriesIndex};i!=null&&(s.dataType=i),e.push(s)}})}),e}function Ya(r,e,t){Wn(r,!0),ba(r,oi),qp(r,e,t)}function cR(r){Wn(r,!1)}function Wt(r,e,t,a){a?cR(r):Ya(r,e,t)}function qp(r,e,t){var a=nt(r);e!=null?(a.focus=e,a.blurScope=t):a.focus&&(a.focus=null)}var x0=["emphasis","blur","select"],pR={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function he(r,e,t,a){t=t||"itemStyle";for(var n=0;n1&&(o*=Pv(p),s*=Pv(p));var d=(n===i?-1:1)*Pv((o*o*(s*s)-o*o*(c*c)-s*s*(v*v))/(o*o*(c*c)+s*s*(v*v)))||0,g=d*o*c/s,y=d*-s*v/o,m=(r+t)/2+ru(h)*g-eu(h)*y,_=(e+a)/2+eu(h)*g+ru(h)*y,S=A0([1,0],[(v-g)/o,(c-y)/s]),b=[(v-g)/o,(c-y)/s],x=[(-1*v-g)/o,(-1*c-y)/s],w=A0(b,x);if(jp(b,x)<=-1&&(w=Uo),jp(b,x)>=1&&(w=0),w<0){var T=Math.round(w/Uo*1e6)/1e6;w=Uo*2+T%2*Uo}f.addData(u,m,_,o,s,S,w,h,i)}var SR=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,xR=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function bR(r){var e=new qr;if(!r)return e;var t=0,a=0,n=t,i=a,o,s=qr.CMD,l=r.match(SR);if(!l)return e;for(var u=0;uP*P+R*R&&(T=D,A=M),{cx:T,cy:A,x0:-f,y0:-h,x1:T*(n/b-1),y1:A*(n/b-1)}}function IR(r){var e;if(z(r)){var t=r.length;if(!t)return r;t===1?e=[r[0],r[0],0,0]:t===2?e=[r[0],r[0],r[1],r[1]]:t===3?e=r.concat(r[2]):e=r}else e=[r,r,r,r];return e}function LR(r,e){var t,a=ds(e.r,0),n=ds(e.r0||0,0),i=a>0,o=n>0;if(!(!i&&!o)){if(i||(a=n,n=0),n>a){var s=a;a=n,n=s}var l=e.startAngle,u=e.endAngle;if(!(isNaN(l)||isNaN(u))){var f=e.cx,h=e.cy,v=!!e.clockwise,c=D0(u-l),p=c>Rv&&c%Rv;if(p>gr&&(c=p),!(a>gr))r.moveTo(f,h);else if(c>Rv-gr)r.moveTo(f+a*Ci(l),h+a*Sn(l)),r.arc(f,h,a,l,u,!v),n>gr&&(r.moveTo(f+n*Ci(u),h+n*Sn(u)),r.arc(f,h,n,u,l,v));else{var d=void 0,g=void 0,y=void 0,m=void 0,_=void 0,S=void 0,b=void 0,x=void 0,w=void 0,T=void 0,A=void 0,D=void 0,M=void 0,I=void 0,L=void 0,P=void 0,R=a*Ci(l),E=a*Sn(l),N=n*Ci(u),O=n*Sn(u),B=c>gr;if(B){var F=e.cornerRadius;F&&(t=IR(F),d=t[0],g=t[1],y=t[2],m=t[3]);var H=D0(a-n)/2;if(_=kr(H,y),S=kr(H,m),b=kr(H,d),x=kr(H,g),A=w=ds(_,S),D=T=ds(b,x),(w>gr||T>gr)&&(M=a*Ci(u),I=a*Sn(u),L=n*Ci(l),P=n*Sn(l),cgr){var dt=kr(y,A),lt=kr(m,A),q=au(L,P,R,E,a,dt,v),ut=au(M,I,N,O,a,lt,v);r.moveTo(f+q.cx+q.x0,h+q.cy+q.y0),A0&&r.arc(f+q.cx,h+q.cy,dt,pe(q.y0,q.x0),pe(q.y1,q.x1),!v),r.arc(f,h,a,pe(q.cy+q.y1,q.cx+q.x1),pe(ut.cy+ut.y1,ut.cx+ut.x1),!v),lt>0&&r.arc(f+ut.cx,h+ut.cy,lt,pe(ut.y1,ut.x1),pe(ut.y0,ut.x0),!v))}else r.moveTo(f+R,h+E),r.arc(f,h,a,l,u,!v);if(!(n>gr)||!B)r.lineTo(f+N,h+O);else if(D>gr){var dt=kr(d,D),lt=kr(g,D),q=au(N,O,M,I,n,-lt,v),ut=au(R,E,L,P,n,-dt,v);r.lineTo(f+q.cx+q.x0,h+q.cy+q.y0),D0&&r.arc(f+q.cx,h+q.cy,lt,pe(q.y0,q.x0),pe(q.y1,q.x1),!v),r.arc(f,h,n,pe(q.cy+q.y1,q.cx+q.x1),pe(ut.cy+ut.y1,ut.cx+ut.x1),v),dt>0&&r.arc(f+ut.cx,h+ut.cy,dt,pe(ut.y1,ut.x1),pe(ut.y0,ut.x0),!v))}else r.lineTo(f+N,h+O),r.arc(f,h,n,u,l,v)}r.closePath()}}}var PR=function(){function r(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return r}(),_e=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new PR},e.prototype.buildPath=function(t,a){LR(t,a)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(yt);_e.prototype.type="sector";var RR=function(){function r(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return r}(),_o=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new RR},e.prototype.buildPath=function(t,a){var n=a.cx,i=a.cy,o=Math.PI*2;t.moveTo(n+a.r,i),t.arc(n,i,a.r,0,o,!1),t.moveTo(n+a.r0,i),t.arc(n,i,a.r0,0,o,!0)},e}(yt);_o.prototype.type="ring";function ER(r,e,t,a){var n=[],i=[],o=[],s=[],l,u,f,h;if(a){f=[1/0,1/0],h=[-1/0,-1/0];for(var v=0,c=r.length;v=2){if(a){var i=ER(n,a,t,e.smoothConstraint);r.moveTo(n[0][0],n[0][1]);for(var o=n.length,s=0;s<(t?o:o-1);s++){var l=i[s*2],u=i[s*2+1],f=n[(s+1)%o];r.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{r.moveTo(n[0][0],n[0][1]);for(var s=1,h=n.length;sbn[1]){if(s=!1,i)return s;var f=Math.abs(bn[0]-xn[1]),h=Math.abs(xn[0]-bn[1]);Math.min(f,h)>n.len()&&(f0){var h=f.duration,v=f.delay,c=f.easing,p={duration:h,delay:v||0,easing:c,done:i,force:!!i||!!o,setToFinal:!u,scope:r,during:o};s?e.animateFrom(t,p):e.animateTo(t,p)}else e.stopAnimation(),!s&&e.attr(t),o&&o(1),i&&i()}function Dt(r,e,t,a,n,i){Og("update",r,e,t,a,n,i)}function Vt(r,e,t,a,n,i){Og("enter",r,e,t,a,n,i)}function Ji(r){if(!r.__zr)return!0;for(var e=0;eMath.abs(i[1])?i[0]>0?"right":"left":i[1]>0?"bottom":"top"}function L0(r){return!r.isGroup}function UR(r){return r.shape!=null}function Ml(r,e,t){if(!r||!e)return;function a(o){var s={};return o.traverse(function(l){L0(l)&&l.anid&&(s[l.anid]=l)}),s}function n(o){var s={x:o.x,y:o.y,rotation:o.rotation};return UR(o)&&(s.shape=V({},o.shape)),s}var i=a(r);e.traverse(function(o){if(L0(o)&&o.anid){var s=i[o.anid];if(s){var l=n(o);o.attr(n(s)),Dt(o,l,t,nt(o).dataIndex)}}})}function Vg(r,e){return G(r,function(t){var a=t[0];a=Af(a,e.x),a=Cf(a,e.x+e.width);var n=t[1];return n=Af(n,e.y),n=Cf(n,e.y+e.height),[a,n]})}function jT(r,e){var t=Af(r.x,e.x),a=Cf(r.x+r.width,e.x+e.width),n=Af(r.y,e.y),i=Cf(r.y+r.height,e.y+e.height);if(a>=t&&i>=n)return{x:t,y:n,width:a-t,height:i-n}}function wo(r,e,t){var a=V({rectHover:!0},e),n=a.style={strokeNoScale:!0};if(t=t||{x:-1,y:-1,width:2,height:2},r)return r.indexOf("image://")===0?(n.image=r.slice(8),Q(n,t),new oe(a)):Dl(r.replace("path://",""),a,t,"center")}function gs(r,e,t,a,n){for(var i=0,o=n[n.length-1];i1)return!1;var g=Ev(c,p,f,h)/v;return!(g<0||g>1)}function Ev(r,e,t,a){return r*a-t*e}function YR(r){return r<=1e-6&&r>=-1e-6}function To(r){var e=r.itemTooltipOption,t=r.componentModel,a=r.itemName,n=U(e)?{formatter:e}:e,i=t.mainType,o=t.componentIndex,s={componentType:i,name:a,$vars:["name"]};s[i+"Index"]=o;var l=r.formatterParamsExtra;l&&C(St(l),function(f){$(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=nt(r.el);u.componentMainType=i,u.componentIndex=o,u.tooltipConfig={name:a,option:Q({content:a,encodeHTMLContent:!0,formatterParams:s},n)}}function P0(r,e){var t;r.isGroup&&(t=e(r)),t||r.traverse(e)}function nn(r,e){if(r)if(z(r))for(var t=0;t=0&&s.push(l)}),s}}function on(r,e){return st(st({},r,!0),e,!0)}const aE={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst",custom:"Custom chart",chart:"Chart"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},nE={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图",custom:"自定义图表",chart:"图表"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Mf="ZH",Gg="EN",to=Gg,tf={},Fg={},nA=_t.domSupported?function(){var r=(document.documentElement.lang||navigator.language||navigator.browserLanguage||to).toUpperCase();return r.indexOf(Mf)>-1?Mf:to}():to;function iA(r,e){r=r.toUpperCase(),Fg[r]=new Mt(e),tf[r]=e}function iE(r){if(U(r)){var e=tf[r.toUpperCase()]||{};return r===Mf||r===Gg?et(e):st(et(e),et(tf[to]),!1)}else return st(et(r),et(tf[to]),!1)}function td(r){return Fg[r]}function oE(){return Fg[to]}iA(Gg,aE);iA(Mf,nE);var Hg=1e3,Wg=Hg*60,Os=Wg*60,ir=Os*24,N0=ir*365,ys={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},ou="{yyyy}-{MM}-{dd}",B0={year:"{yyyy}",month:"{yyyy}-{MM}",day:ou,hour:ou+" "+ys.hour,minute:ou+" "+ys.minute,second:ou+" "+ys.second,millisecond:ys.none},Nv=["year","month","day","hour","minute","second","millisecond"],oA=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ce(r,e){return r+="","0000".substr(0,e-r.length)+r}function eo(r){switch(r){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return r}}function sE(r){return r===eo(r)}function lE(r){switch(r){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Il(r,e,t,a){var n=$e(r),i=n[Ug(t)](),o=n[ro(t)]()+1,s=Math.floor((o-1)/3)+1,l=n[Lh(t)](),u=n["get"+(t?"UTC":"")+"Day"](),f=n[Js(t)](),h=(f-1)%12+1,v=n[Ph(t)](),c=n[Rh(t)](),p=n[Eh(t)](),d=f>=12?"pm":"am",g=d.toUpperCase(),y=a instanceof Mt?a:td(a||nA)||oE(),m=y.getModel("time"),_=m.get("month"),S=m.get("monthAbbr"),b=m.get("dayOfWeek"),x=m.get("dayOfWeekAbbr");return(e||"").replace(/{a}/g,d+"").replace(/{A}/g,g+"").replace(/{yyyy}/g,i+"").replace(/{yy}/g,Ce(i%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,_[o-1]).replace(/{MMM}/g,S[o-1]).replace(/{MM}/g,Ce(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ce(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,b[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ce(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Ce(h+"",2)).replace(/{h}/g,h+"").replace(/{mm}/g,Ce(v,2)).replace(/{m}/g,v+"").replace(/{ss}/g,Ce(c,2)).replace(/{s}/g,c+"").replace(/{SSS}/g,Ce(p,3)).replace(/{S}/g,p+"")}function uE(r,e,t,a,n){var i=null;if(U(t))i=t;else if(K(t))i=t(r.value,e,{level:r.level});else{var o=V({},ys);if(r.level>0)for(var s=0;s=0;--s)if(l[u]){i=l[u];break}i=i||o.none}if(z(i)){var h=r.level==null?0:r.level>=0?r.level:i.length+r.level;h=Math.min(h,i.length-1),i=i[h]}}return Il(new Date(r.value),i,n,a)}function sA(r,e){var t=$e(r),a=t[ro(e)]()+1,n=t[Lh(e)](),i=t[Js(e)](),o=t[Ph(e)](),s=t[Rh(e)](),l=t[Eh(e)](),u=l===0,f=u&&s===0,h=f&&o===0,v=h&&i===0,c=v&&n===1,p=c&&a===1;return p?"year":c?"month":v?"day":h?"hour":f?"minute":u?"second":"millisecond"}function V0(r,e,t){var a=Ct(r)?$e(r):r;switch(e=e||sA(r,t),e){case"year":return a[Ug(t)]();case"half-year":return a[ro(t)]()>=6?1:0;case"quarter":return Math.floor((a[ro(t)]()+1)/4);case"month":return a[ro(t)]();case"day":return a[Lh(t)]();case"half-day":return a[Js(t)]()/24;case"hour":return a[Js(t)]();case"minute":return a[Ph(t)]();case"second":return a[Rh(t)]();case"millisecond":return a[Eh(t)]()}}function Ug(r){return r?"getUTCFullYear":"getFullYear"}function ro(r){return r?"getUTCMonth":"getMonth"}function Lh(r){return r?"getUTCDate":"getDate"}function Js(r){return r?"getUTCHours":"getHours"}function Ph(r){return r?"getUTCMinutes":"getMinutes"}function Rh(r){return r?"getUTCSeconds":"getSeconds"}function Eh(r){return r?"getUTCMilliseconds":"getMilliseconds"}function fE(r){return r?"setUTCFullYear":"setFullYear"}function lA(r){return r?"setUTCMonth":"setMonth"}function uA(r){return r?"setUTCDate":"setDate"}function fA(r){return r?"setUTCHours":"setHours"}function hA(r){return r?"setUTCMinutes":"setMinutes"}function vA(r){return r?"setUTCSeconds":"setSeconds"}function cA(r){return r?"setUTCMilliseconds":"setMilliseconds"}function hE(r,e,t,a,n,i,o,s){var l=new bt({style:{text:r,font:e,align:t,verticalAlign:a,padding:n,rich:i,overflow:o?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function Yg(r){if(!bg(r))return U(r)?r:"-";var e=(r+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Xg(r,e){return r=(r||"").toLowerCase().replace(/-(.)/g,function(t,a){return a.toUpperCase()}),e&&r&&(r=r.charAt(0).toUpperCase()+r.slice(1)),r}var pi=ch;function ed(r,e,t){var a="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function n(f){return f&&or(f)?f:"-"}function i(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=e==="time",s=r instanceof Date;if(o||s){var l=o?$e(r):r;if(isNaN(+l)){if(s)return"-"}else return Il(l,a,t)}if(e==="ordinal")return hf(r)?n(r):Ct(r)&&i(r)?r+"":"-";var u=Zr(r);return i(u)?Yg(u):hf(r)?n(r):typeof r=="boolean"?r+"":"-"}var z0=["a","b","c","d","e","f","g"],Bv=function(r,e){return"{"+r+(e??"")+"}"};function $g(r,e,t){z(e)||(e=[e]);var a=e.length;if(!a)return"";for(var n=e[0].$vars||[],i=0;i':'';var o=t.markerId||"markerX";return{renderMode:i,content:"{"+o+"|} ",style:n==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:a}:{width:10,height:10,borderRadius:5,backgroundColor:a}}}function cE(r,e,t){(r==="week"||r==="month"||r==="quarter"||r==="half-year"||r==="year")&&(r=`MM-dd +yyyy`);var a=$e(e),n=t?"getUTC":"get",i=a[n+"FullYear"](),o=a[n+"Month"]()+1,s=a[n+"Date"](),l=a[n+"Hours"](),u=a[n+"Minutes"](),f=a[n+"Seconds"](),h=a[n+"Milliseconds"]();return r=r.replace("MM",Ce(o,2)).replace("M",o).replace("yyyy",i).replace("yy",Ce(i%100+"",2)).replace("dd",Ce(s,2)).replace("d",s).replace("hh",Ce(l,2)).replace("h",l).replace("mm",Ce(u,2)).replace("m",u).replace("ss",Ce(f,2)).replace("s",f).replace("SSS",Ce(h,3)),r}function pE(r){return r&&r.charAt(0).toUpperCase()+r.substr(1)}function si(r,e){return e=e||"transparent",U(r)?r:tt(r)&&r.colorStops&&(r.colorStops[0]||{}).color||e}function If(r,e){if(e==="_blank"||e==="blank"){var t=window.open();t.opener=null,t.location.href=r}else window.open(r,e)}var ef=C,dA=["left","right","top","bottom","width","height"],Un=[["width","left","right"],["height","top","bottom"]];function Zg(r,e,t,a,n){var i=0,o=0;a==null&&(a=1/0),n==null&&(n=1/0);var s=0;e.eachChild(function(l,u){var f=l.getBoundingRect(),h=e.childAt(u+1),v=h&&h.getBoundingRect(),c,p;if(r==="horizontal"){var d=f.width+(v?-v.x+f.x:0);c=i+d,c>a||l.newline?(i=0,c=d,o+=s+t,s=f.height):s=Math.max(s,f.height)}else{var g=f.height+(v?-v.y+f.y:0);p=o+g,p>n||l.newline?(i+=s+t,o=0,p=g,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=i,l.y=o,l.markRedraw(),r==="horizontal"?i=c+t:o=p+t)})}var Qn=Zg;it(Zg,"vertical");it(Zg,"horizontal");function dE(r,e,t){var a=e.width,n=e.height,i=W(r.left,a),o=W(r.top,n),s=W(r.right,a),l=W(r.bottom,n);return(isNaN(i)||isNaN(parseFloat(r.left)))&&(i=0),(isNaN(s)||isNaN(parseFloat(r.right)))&&(s=a),(isNaN(o)||isNaN(parseFloat(r.top)))&&(o=0),(isNaN(l)||isNaN(parseFloat(r.bottom)))&&(l=n),t=pi(t||0),{width:Math.max(s-i-t[1]-t[3],0),height:Math.max(l-o-t[0]-t[2],0)}}function jt(r,e,t){t=pi(t||0);var a=e.width,n=e.height,i=W(r.left,a),o=W(r.top,n),s=W(r.right,a),l=W(r.bottom,n),u=W(r.width,a),f=W(r.height,n),h=t[2]+t[0],v=t[1]+t[3],c=r.aspect;switch(isNaN(u)&&(u=a-s-v-i),isNaN(f)&&(f=n-l-h-o),c!=null&&(isNaN(u)&&isNaN(f)&&(c>a/n?u=a*.8:f=n*.8),isNaN(u)&&(u=c*f),isNaN(f)&&(f=u/c)),isNaN(i)&&(i=a-s-u-v),isNaN(o)&&(o=n-l-f-h),r.left||r.right){case"center":i=a/2-u/2-t[3];break;case"right":i=a-u-v;break}switch(r.top||r.bottom){case"middle":case"center":o=n/2-f/2-t[0];break;case"bottom":o=n-f-h;break}i=i||0,o=o||0,isNaN(u)&&(u=a-v-i-(s||0)),isNaN(f)&&(f=n-h-o-(l||0));var p=new ht(i+t[3],o+t[0],u,f);return p.margin=t,p}function kh(r,e,t,a,n,i){var o=!n||!n.hv||n.hv[0],s=!n||!n.hv||n.hv[1],l=n&&n.boundingMode||"all";if(i=i||r,i.x=r.x,i.y=r.y,!o&&!s)return!1;var u;if(l==="raw")u=r.type==="group"?new ht(0,0,+e.width||0,+e.height||0):r.getBoundingRect();else if(u=r.getBoundingRect(),r.needLocalTransform()){var f=r.getLocalTransform();u=u.clone(),u.applyTransform(f)}var h=jt(Q({width:u.width,height:u.height},e),t,a),v=o?h.x-u.x:0,c=s?h.y-u.y:0;return l==="raw"?(i.x=v,i.y=c):(i.x+=v,i.y+=c),i===r&&r.markRedraw(),!0}function gE(r,e){return r[Un[e][0]]!=null||r[Un[e][1]]!=null&&r[Un[e][2]]!=null}function tl(r){var e=r.layoutMode||r.constructor.layoutMode;return tt(e)?e:e?{type:e}:null}function Ja(r,e,t){var a=t&&t.ignoreSize;!z(a)&&(a=[a,a]);var n=o(Un[0],0),i=o(Un[1],1);u(Un[0],r,n),u(Un[1],r,i);function o(f,h){var v={},c=0,p={},d=0,g=2;if(ef(f,function(_){p[_]=r[_]}),ef(f,function(_){s(e,_)&&(v[_]=p[_]=e[_]),l(v,_)&&c++,l(p,_)&&d++}),a[h])return l(e,f[1])?p[f[2]]=null:l(e,f[2])&&(p[f[1]]=null),p;if(d===g||!c)return p;if(c>=g)return v;for(var y=0;y=0;l--)s=st(s,n[l],!0);a.defaultOption=s}return a.defaultOption},e.prototype.getReferringComponents=function(t,a){var n=t+"Index",i=t+"Id";return wl(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},a)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Mt);mT(mt,Mt);Sh(mt);eE(mt);rE(mt,mE);function mE(r){var e=[];return C(mt.getClassesByMainType(r),function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])}),e=G(e,function(t){return Fr(t).main}),r!=="dataset"&&vt(e,"dataset")<=0&&e.unshift("dataset"),e}var yA="";typeof navigator<"u"&&(yA=navigator.platform||"");var Di="rgba(0, 0, 0, 0.2)";const _E={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Di,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Di,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Di,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Di,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Di,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Di,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:yA.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var mA=Z(["tooltip","label","itemName","itemId","itemGroupId","itemChildGroupId","seriesName"]),vr="original",xe="arrayRows",cr="objectRows",jr="keyedColumns",$a="typedArray",_A="unknown",Xr="column",Mo="row",ue={Must:1,Might:2,Not:3},SA=Tt();function SE(r){SA(r).datasetMap=Z()}function xA(r,e,t){var a={},n=Kg(e);if(!n||!r)return a;var i=[],o=[],s=e.ecModel,l=SA(s).datasetMap,u=n.uid+"_"+t.seriesLayoutBy,f,h;r=r.slice(),C(r,function(d,g){var y=tt(d)?d:r[g]={name:d};y.type==="ordinal"&&f==null&&(f=g,h=p(y)),a[y.name]=[]});var v=l.get(u)||l.set(u,{categoryWayDim:h,valueWayDim:0});C(r,function(d,g){var y=d.name,m=p(d);if(f==null){var _=v.valueWayDim;c(a[y],_,m),c(o,_,m),v.valueWayDim+=m}else if(f===g)c(a[y],0,m),c(i,0,m);else{var _=v.categoryWayDim;c(a[y],_,m),c(o,_,m),v.categoryWayDim+=m}});function c(d,g,y){for(var m=0;me)return r[a];return r[t-1]}function TA(r,e,t,a,n,i,o){i=i||r;var s=e(i),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(n))return u[n];var f=o==null||!a?t:AE(a,o);if(f=f||t,!(!f||!f.length)){var h=f[l];return n&&(u[n]=h),s.paletteIdx=(l+1)%f.length,h}}function CE(r,e){e(r).paletteIdx=0,e(r).paletteNameMap={}}var su,Yo,F0,H0="\0_ec_inner",DE=1,Qg=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.init=function(t,a,n,i,o,s){i=i||{},this.option=null,this._theme=new Mt(i),this._locale=new Mt(o),this._optionManager=s},e.prototype.setOption=function(t,a,n){var i=Y0(a);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,a){return this._resetOption(t,Y0(a))},e.prototype._resetOption=function(t,a){var n=!1,i=this._optionManager;if(!t||t==="recreate"){var o=i.mountOption(t==="recreate");!this.option||t==="recreate"?F0(this,o):(this.restoreData(),this._mergeOption(o,a)),n=!0}if((t==="timeline"||t==="media")&&this.restoreData(),!t||t==="recreate"||t==="timeline"){var s=i.getTimelineOption(this);s&&(n=!0,this._mergeOption(s,a))}if(!t||t==="recreate"||t==="media"){var l=i.getMediaOption(this);l.length&&C(l,function(u){n=!0,this._mergeOption(u,a)},this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,a){var n=this.option,i=this._componentsMap,o=this._componentsCount,s=[],l=Z(),u=a&&a.replaceMergeMainTypeMap;SE(this),C(t,function(h,v){h!=null&&(mt.hasClass(v)?v&&(s.push(v),l.set(v,!0)):n[v]=n[v]==null?et(h):st(n[v],h,!0))}),u&&u.each(function(h,v){mt.hasClass(v)&&!l.get(v)&&(s.push(v),l.set(v,!0))}),mt.topologicalTravel(s,mt.getAllClassMainTypes(),f,this);function f(h){var v=wE(this,h,Et(t[h])),c=i.get(h),p=c?u&&u.get(h)?"replaceMerge":"normalMerge":"replaceAll",d=cT(c,v,p);eP(d,h,mt),n[h]=null,i.set(h,null),o.set(h,0);var g=[],y=[],m=0,_;C(d,function(S,b){var x=S.existing,w=S.newOption;if(!w)x&&(x.mergeOption({},this),x.optionUpdated({},!1));else{var T=h==="series",A=mt.getClass(h,S.keyInfo.subType,!T);if(!A)return;if(h==="tooltip"){if(_)return;_=!0}if(x&&x.constructor===A)x.name=S.keyInfo.name,x.mergeOption(w,this),x.optionUpdated(w,!1);else{var D=V({componentIndex:b},S.keyInfo);x=new A(w,this,this,D),V(x,D),S.brandNew&&(x.__requireNewView=!0),x.init(w,this,this),x.optionUpdated(null,!0)}}x?(g.push(x.option),y.push(x),m++):(g.push(void 0),y.push(void 0))},this),n[h]=g,i.set(h,y),o.set(h,m),h==="series"&&su(this)}this._seriesIndices||su(this)},e.prototype.getOption=function(){var t=et(this.option);return C(t,function(a,n){if(mt.hasClass(n)){for(var i=Et(a),o=i.length,s=!1,l=o-1;l>=0;l--)i[l]&&!qs(i[l])?s=!0:(i[l]=null,!s&&o--);i.length=o,t[n]=i}}),delete t[H0],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,a){var n=this._componentsMap.get(t);if(n){var i=n[a||0];if(i)return i;if(a==null){for(var o=0;o=e:t==="max"?r<=e:r===e}function NE(r,e){return r.join(",")===e.join(",")}var pr=C,el=tt,X0=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function zv(r){var e=r&&r.itemStyle;if(e)for(var t=0,a=X0.length;t=0;g--){var y=r[g];if(s||(p=y.data.rawIndexOf(y.stackedByDimension,c)),p>=0){var m=y.data.getByRawIndex(y.stackResultDimension,p);if(l==="all"||l==="positive"&&m>0||l==="negative"&&m<0||l==="samesign"&&v>=0&&m>0||l==="samesign"&&v<=0&&m<0){v=Y2(v,m),d=m;break}}}return a[0]=v,a[1]=d,a})})}var Oh=function(){function r(e){this.data=e.data||(e.sourceFormat===jr?{}:[]),this.sourceFormat=e.sourceFormat||_A,this.seriesLayoutBy=e.seriesLayoutBy||Xr,this.startIndex=e.startIndex||0,this.dimensionsDetectedCount=e.dimensionsDetectedCount,this.metaRawOption=e.metaRawOption;var t=this.dimensionsDefine=e.dimensionsDefine;if(t)for(var a=0;ad&&(d=_)}c[0]=p,c[1]=d}},n=function(){return this._data?this._data.length/this._dimSize:0};J0=(e={},e[xe+"_"+Xr]={pure:!0,appendData:i},e[xe+"_"+Mo]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},e[cr]={pure:!0,appendData:i},e[jr]={pure:!0,appendData:function(o){var s=this._data;C(o,function(l,u){for(var f=s[u]||(s[u]=[]),h=0;h<(l||[]).length;h++)f.push(l[h])})}},e[vr]={appendData:i},e[$a]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},e);function i(o){for(var s=0;s=0&&(d=o.interpolatedValue[g])}return d!=null?d+"":""})}},r.prototype.getRawValue=function(e,t){return lo(this.getData(t),e)},r.prototype.formatTooltip=function(e,t,a){},r}();function a_(r){var e,t;return tt(r)?r.type&&(t=r):e=r,{text:e,frag:t}}function Ns(r){return new JE(r)}var JE=function(){function r(e){e=e||{},this._reset=e.reset,this._plan=e.plan,this._count=e.count,this._onDirty=e.onDirty,this._dirty=!0}return r.prototype.perform=function(e){var t=this._upstream,a=e&&e.skip;if(this._dirty&&t){var n=this.context;n.data=n.outputData=t.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!a&&(i=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(e&&e.modBy),u=e&&e.modDataCount||0;(o!==l||s!==u)&&(i="reset");function f(m){return!(m>=1)&&(m=1),m}var h;(this._dirty||i==="reset")&&(this._dirty=!1,h=this._doReset(a)),this._modBy=l,this._modDataCount=u;var v=e&&e.step;if(t?this._dueEnd=t._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var c=this._dueIndex,p=Math.min(v!=null?this._dueIndex+v:1/0,this._dueEnd);if(!a&&(h||c1&&a>0?s:o}};return i;function o(){return e=r?null:le},gte:function(r,e){return r>=e}},ek=function(){function r(e,t){if(!Ct(t)){var a="";It(a)}this._opFn=OA[e],this._rvalFloat=Zr(t)}return r.prototype.evaluate=function(e){return Ct(e)?this._opFn(e,this._rvalFloat):this._opFn(Zr(e),this._rvalFloat)},r}(),NA=function(){function r(e,t){var a=e==="desc";this._resultLT=a?1:-1,t==null&&(t=a?"min":"max"),this._incomparable=t==="min"?-1/0:1/0}return r.prototype.evaluate=function(e,t){var a=Ct(e)?e:Zr(e),n=Ct(t)?t:Zr(t),i=isNaN(a),o=isNaN(n);if(i&&(a=this._incomparable),o&&(n=this._incomparable),i&&o){var s=U(e),l=U(t);s&&(a=l?e:0),l&&(n=s?t:0)}return an?-this._resultLT:0},r}(),rk=function(){function r(e,t){this._rval=t,this._isEQ=e,this._rvalTypeof=typeof t,this._rvalFloat=Zr(t)}return r.prototype.evaluate=function(e){var t=e===this._rval;if(!t){var a=typeof e;a!==this._rvalTypeof&&(a==="number"||this._rvalTypeof==="number")&&(t=Zr(e)===this._rvalFloat)}return this._isEQ?t:!t},r}();function ak(r,e){return r==="eq"||r==="ne"?new rk(r==="eq",e):$(OA,r)?new ek(r,e):null}var nk=function(){function r(){}return r.prototype.getRawData=function(){throw new Error("not supported")},r.prototype.getRawDataItem=function(e){throw new Error("not supported")},r.prototype.cloneRawData=function(){},r.prototype.getDimensionInfo=function(e){},r.prototype.cloneAllDimensionInfo=function(){},r.prototype.count=function(){},r.prototype.retrieveValue=function(e,t){},r.prototype.retrieveValueFromItem=function(e,t){},r.prototype.convertValue=function(e,t){return Za(e,t)},r}();function ik(r,e){var t=new nk,a=r.data,n=t.sourceFormat=r.sourceFormat,i=r.startIndex,o="";r.seriesLayoutBy!==Xr&&It(o);var s=[],l={},u=r.dimensionsDefine;if(u)C(u,function(d,g){var y=d.name,m={index:g,name:y,displayName:d.displayName};if(s.push(m),y!=null){var _="";$(l,y)&&It(_),l[y]=m}});else for(var f=0;f65535?ck:pk}function Mi(){return[1/0,-1/0]}function dk(r){var e=r.constructor;return e===Array?r.slice():new e(r)}function o_(r,e,t,a,n){var i=zA[t||"float"];if(n){var o=r[e],s=o&&o.length;if(s!==a){for(var l=new i(a),u=0;ug[1]&&(g[1]=d)}return this._rawCount=this._count=l,{start:s,end:l}},r.prototype._initDataFromProvider=function(e,t,a){for(var n=this._provider,i=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=G(o,function(m){return m.property}),f=0;fy[1]&&(y[1]=g)}}!n.persistent&&n.clean&&n.clean(),this._rawCount=this._count=t,this._extent=[]},r.prototype.count=function(){return this._count},r.prototype.get=function(e,t){if(!(t>=0&&t=0&&t=this._rawCount||e<0)return-1;if(!this._indices)return e;var t=this._indices,a=t[e];if(a!=null&&ae)i=o-1;else return o}return-1},r.prototype.indicesOfNearest=function(e,t,a){var n=this._chunks,i=n[e],o=[];if(!i)return o;a==null&&(a=1/0);for(var s=1/0,l=-1,u=0,f=0,h=this.count();f=0&&l<0)&&(s=p,l=c,u=0),c===l&&(o[u++]=f))}return o.length=u,o},r.prototype.getIndices=function(){var e,t=this._indices;if(t){var a=t.constructor,n=this._count;if(a===Array){e=new a(n);for(var i=0;i=h&&m<=v||isNaN(m))&&(l[u++]=d),d++}p=!0}else if(i===2){for(var g=c[n[0]],_=c[n[1]],S=e[n[1]][0],b=e[n[1]][1],y=0;y=h&&m<=v||isNaN(m))&&(x>=S&&x<=b||isNaN(x))&&(l[u++]=d),d++}p=!0}}if(!p)if(i===1)for(var y=0;y=h&&m<=v||isNaN(m))&&(l[u++]=w)}else for(var y=0;ye[D][1])&&(T=!1)}T&&(l[u++]=t.getRawIndex(y))}return uy[1]&&(y[1]=g)}}}},r.prototype.lttbDownSample=function(e,t){var a=this.clone([e],!0),n=a._chunks,i=n[e],o=this.count(),s=0,l=Math.floor(1/t),u=this.getRawIndex(0),f,h,v,c=new($o(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));c[s++]=u;for(var p=1;pf&&(f=h,v=S)}M>0&&Mf-p&&(l=f-p,s.length=l);for(var d=0;dh[1]&&(h[1]=y),v[c++]=m}return i._count=c,i._indices=v,i._updateGetRawIdx(),i},r.prototype.each=function(e,t){if(this._count)for(var a=e.length,n=this._chunks,i=0,o=this.count();il&&(l=h)}return o=[s,l],this._extent[e]=o,o},r.prototype.getRawDataItem=function(e){var t=this.getRawIndex(e);if(this._provider.persistent)return this._provider.getItem(t);for(var a=[],n=this._chunks,i=0;i=0?this._indices[e]:-1},r.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},r.internalField=function(){function e(t,a,n,i){return Za(t[i],this._dimensions[i])}Hv={arrayRows:e,objectRows:function(t,a,n,i){return Za(t[a],this._dimensions[i])},keyedColumns:e,original:function(t,a,n,i){var o=t&&(t.value==null?t:t.value);return Za(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(t,a,n,i){return t[i]}}}(),r}(),GA=function(){function r(e){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=e}return r.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},r.prototype._setLocalSource=function(e,t){this._sourceList=e,this._upstreamSignList=t,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},r.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},r.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},r.prototype._createSource=function(){this._setLocalSource([],[]);var e=this._sourceHost,t=this._getUpstreamSourceManagers(),a=!!t.length,n,i;if(lu(e)){var o=e,s=void 0,l=void 0,u=void 0;if(a){var f=t[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,i=[f._getVersionSign()]}else s=o.get("data",!0),l=Re(s)?$a:vr,i=[];var h=this._getSourceMetaRawOption()||{},v=u&&u.metaRawOption||{},c=ot(h.seriesLayoutBy,v.seriesLayoutBy)||null,p=ot(h.sourceHeader,v.sourceHeader),d=ot(h.dimensions,v.dimensions),g=c!==v.seriesLayoutBy||!!p!=!!v.sourceHeader||d;n=g?[nd(s,{seriesLayoutBy:c,sourceHeader:p,dimensions:d},l)]:[]}else{var y=e;if(a){var m=this._applyTransform(t);n=m.sourceList,i=m.upstreamSignList}else{var _=y.get("source",!0);n=[nd(_,this._getSourceMetaRawOption(),null)],i=[]}}this._setLocalSource(n,i)},r.prototype._applyTransform=function(e){var t=this._sourceHost,a=t.get("transform",!0),n=t.get("fromTransformResult",!0);if(n!=null){var i="";e.length!==1&&l_(i)}var o,s=[],l=[];return C(e,function(u){u.prepareSource();var f=u.getSource(n||0),h="";n!=null&&!f&&l_(h),s.push(f),l.push(u._getVersionSign())}),a?o=hk(a,s,{datasetIndex:t.componentIndex}):n!=null&&(o=[XE(s[0])]),{sourceList:o,upstreamSignList:l}},r.prototype._isDirty=function(){if(this._dirty)return!0;for(var e=this._getUpstreamSourceManagers(),t=0;t1||t>0&&!r.noHeader;return C(r.blocks,function(n){var i=UA(n);i>=e&&(e=i+ +(a&&(!i||od(n)&&!n.noHeader)))}),e}return 0}function mk(r,e,t,a){var n=e.noHeader,i=Sk(UA(e)),o=[],s=e.blocks||[];me(!s||z(s)),s=s||[];var l=r.orderMode;if(e.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if($(u,l)){var f=new NA(u[l],null);s.sort(function(p,d){return f.evaluate(p.sortParam,d.sortParam)})}else l==="seriesDesc"&&s.reverse()}C(s,function(p,d){var g=e.valueFormatter,y=WA(p)(g?V(V({},r),{valueFormatter:g}):r,p,d>0?i.html:0,a);y!=null&&o.push(y)});var h=r.renderMode==="richText"?o.join(i.richText):sd(o.join(""),n?t:i.html);if(n)return h;var v=ed(e.header,"ordinal",r.useUTC),c=HA(a,r.renderMode).nameStyle;return r.renderMode==="richText"?YA(r,v,c)+i.richText+h:sd('
    '+Me(v)+"
    "+h,t)}function _k(r,e,t,a){var n=r.renderMode,i=e.noName,o=e.noValue,s=!e.markerType,l=e.name,u=r.useUTC,f=e.valueFormatter||r.valueFormatter||function(S){return S=z(S)?S:[S],G(S,function(b,x){return ed(b,z(c)?c[x]:c,u)})};if(!(i&&o)){var h=s?"":r.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",n),v=i?"":ed(l,"ordinal",u),c=e.valueType,p=o?[]:f(e.value,e.dataIndex),d=!s||!i,g=!s&&i,y=HA(a,n),m=y.nameStyle,_=y.valueStyle;return n==="richText"?(s?"":h)+(i?"":YA(r,v,m))+(o?"":wk(r,p,d,g,_)):sd((s?"":h)+(i?"":xk(v,!s,m))+(o?"":bk(p,d,g,_)),t)}}function u_(r,e,t,a,n,i){if(r){var o=WA(r),s={useUTC:n,renderMode:t,orderMode:a,markupStyleCreator:e,valueFormatter:r.valueFormatter};return o(s,r,0,i)}}function Sk(r){return{html:gk[r],richText:yk[r]}}function sd(r,e){var t='
    ',a="margin: "+e+"px 0 0";return'
    '+r+t+"
    "}function xk(r,e,t){var a=e?"margin-left:2px":"";return''+Me(r)+""}function bk(r,e,t,a){var n=t?"10px":"20px",i=e?"float:right;margin-left:"+n:"";return r=z(r)?r:[r],''+G(r,function(o){return Me(o)}).join("  ")+""}function YA(r,e,t){return r.markupStyleCreator.wrapRichTextStyle(e,t)}function wk(r,e,t,a,n){var i=[n],o=a?10:20;return t&&i.push({padding:[0,0,0,o],align:"right"}),r.markupStyleCreator.wrapRichTextStyle(z(e)?e.join(" "):e,i)}function XA(r,e){var t=r.getData().getItemVisual(e,"style"),a=t[r.visualDrawType];return si(a)}function $A(r,e){var t=r.get("padding");return t??(e==="richText"?[8,10]:10)}var Wv=function(){function r(){this.richTextStyles={},this._nextStyleNameId=uT()}return r.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},r.prototype.makeTooltipMarker=function(e,t,a){var n=a==="richText"?this._generateStyleName():null,i=pA({color:t,type:e,renderMode:a,markerId:n});return U(i)?i:(this.richTextStyles[n]=i.style,i.content)},r.prototype.wrapRichTextStyle=function(e,t){var a={};z(t)?C(t,function(i){return V(a,i)}):V(a,t);var n=this._generateStyleName();return this.richTextStyles[n]=a,"{"+n+"|"+e+"}"},r}();function ZA(r){var e=r.series,t=r.dataIndex,a=r.multipleSeries,n=e.getData(),i=n.mapDimensionsAll("defaultedTooltip"),o=i.length,s=e.getRawValue(t),l=z(s),u=XA(e,t),f,h,v,c;if(o>1||l&&!o){var p=Tk(s,e,t,i,u);f=p.inlineValues,h=p.inlineValueTypes,v=p.blocks,c=p.inlineValues[0]}else if(o){var d=n.getDimensionInfo(i[0]);c=f=lo(n,t,i[0]),h=d.type}else c=f=l?s[0]:s;var g=wg(e),y=g&&e.name||"",m=n.getName(t),_=a?y:m;return ie("section",{header:y,noHeader:a||!g,sortParam:c,blocks:[ie("nameValue",{markerType:"item",markerColor:u,name:_,noName:!or(_),value:f,valueType:h,dataIndex:t})].concat(v||[])})}function Tk(r,e,t,a,n){var i=e.getData(),o=lr(r,function(h,v,c){var p=i.getDimensionInfo(c);return h=h||p&&p.tooltip!==!1&&p.displayName!=null},!1),s=[],l=[],u=[];a.length?C(a,function(h){f(lo(i,t,h),h)}):C(r,f);function f(h,v){var c=i.getDimensionInfo(v);!c||c.otherDims.tooltip===!1||(o?u.push(ie("nameValue",{markerType:"subItem",markerColor:n,name:c.displayName,value:h,valueType:c.type})):(s.push(h),l.push(c.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Ca=Tt();function uu(r,e){return r.getName(e)||r.getId(e)}var rf="__universalTransitionEnabled",kt=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t._selectedDataIndicesMap={},t}return e.prototype.init=function(t,a,n){this.seriesIndex=this.componentIndex,this.dataTask=Ns({count:Ck,reset:Dk}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n);var i=Ca(this).sourceManager=new GA(this);i.prepareSource();var o=this.getInitialData(t,n);h_(o,this),this.dataTask.context.data=o,Ca(this).dataBeforeProcessed=o,f_(this),this._initSelectedMapFromData(o)},e.prototype.mergeDefaultAndTheme=function(t,a){var n=tl(this),i=n?Do(t):{},o=this.subType;mt.hasClass(o)&&(o+="Series"),st(t,a.getTheme().get(this.subType)),st(t,this.getDefaultOption()),ai(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Ja(t,i,n)},e.prototype.mergeOption=function(t,a){t=st(this.option,t,!0),this.fillDataTextStyle(t.data);var n=tl(this);n&&Ja(this.option,t,n);var i=Ca(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(t,a);h_(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Ca(this).dataBeforeProcessed=o,f_(this),this._initSelectedMapFromData(o)},e.prototype.fillDataTextStyle=function(t){if(t&&!Re(t))for(var a=["show"],n=0;nthis.getShallow("animationThreshold")&&(a=!1),!!a},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,a,n){var i=this.ecModel,o=jg.prototype.getColorFromPalette.call(this,t,a,n);return o||(o=i.getColorFromPalette(t,a,n)),o},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,a){this._innerSelect(this.getData(a),t)},e.prototype.unselect=function(t,a){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,o=this.getData(a);if(i==="series"||n==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&n.push(o)}return n},e.prototype.isSelected=function(t,a){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(a);return(n==="all"||n[uu(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this[rf])return!0;var t=this.option.universalTransition;return t?t===!0?!0:t&&t.enabled:!1},e.prototype._innerSelect=function(t,a){var n,i,o=this.option,s=o.selectedMode,l=a.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){tt(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(t,a)}},e.registerClass=function(t){return mt.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(mt);Xt(kt,Nh);Xt(kt,jg);mT(kt,mt);function f_(r){var e=r.name;wg(r)||(r.name=Ak(r)||e)}function Ak(r){var e=r.getRawData(),t=e.mapDimensionsAll("seriesName"),a=[];return C(t,function(n){var i=e.getDimensionInfo(n);i.displayName&&a.push(i.displayName)}),a.join(" ")}function Ck(r){return r.model.getRawData().count()}function Dk(r){var e=r.model;return e.setData(e.getRawData().cloneShallow()),Mk}function Mk(r,e){e.outputData&&r.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function h_(r,e){C(Hs(r.CHANGABLE_METHODS,r.DOWNSAMPLE_METHODS),function(t){r.wrapMethod(t,it(Ik,e))})}function Ik(r,e){var t=ld(r);return t&&t.setOutputEnd((e||this).count()),e}function ld(r){var e=(r.ecModel||{}).scheduler,t=e&&e.getPipeline(r.uid);if(t){var a=t.currentTask;if(a){var n=a.agentStubMap;n&&(a=n.get(r.uid))}return a}}var zt=function(){function r(){this.group=new at,this.uid=Co("viewComponent")}return r.prototype.init=function(e,t){},r.prototype.render=function(e,t,a,n){},r.prototype.dispose=function(e,t){},r.prototype.updateView=function(e,t,a,n){},r.prototype.updateLayout=function(e,t,a,n){},r.prototype.updateVisual=function(e,t,a,n){},r.prototype.toggleBlurSeries=function(e,t,a){},r.prototype.eachRendered=function(e){var t=this.group;t&&t.traverse(e)},r}();Ag(zt);Sh(zt);function Lo(){var r=Tt();return function(e){var t=r(e),a=e.pipelineContext,n=!!t.large,i=!!t.progressiveRender,o=t.large=!!(a&&a.large),s=t.progressiveRender=!!(a&&a.progressiveRender);return(n!==o||i!==s)&&"reset"}}var qA=Tt(),Lk=Lo(),Rt=function(){function r(){this.group=new at,this.uid=Co("viewChart"),this.renderTask=Ns({plan:Pk,reset:Rk}),this.renderTask.context={view:this}}return r.prototype.init=function(e,t){},r.prototype.render=function(e,t,a,n){},r.prototype.highlight=function(e,t,a,n){var i=e.getData(n&&n.dataType);i&&c_(i,n,"emphasis")},r.prototype.downplay=function(e,t,a,n){var i=e.getData(n&&n.dataType);i&&c_(i,n,"normal")},r.prototype.remove=function(e,t){this.group.removeAll()},r.prototype.dispose=function(e,t){},r.prototype.updateView=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.updateLayout=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.updateVisual=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.eachRendered=function(e){nn(this.group,e)},r.markUpdateMethod=function(e,t){qA(e).updateMethod=t},r.protoInitialize=function(){var e=r.prototype;e.type="chart"}(),r}();function v_(r,e,t){r&&js(r)&&(e==="emphasis"?da:ga)(r,t)}function c_(r,e,t){var a=ni(r,e),n=e&&e.highlightKey!=null?gR(e.highlightKey):null;a!=null?C(Et(a),function(i){v_(r.getItemGraphicEl(i),t,n)}):r.eachItemGraphicEl(function(i){v_(i,t,n)})}Ag(Rt);Sh(Rt);function Pk(r){return Lk(r.model)}function Rk(r){var e=r.model,t=r.ecModel,a=r.api,n=r.payload,i=e.pipelineContext.progressiveRender,o=r.view,s=n&&qA(n).updateMethod,l=i?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](e,t,a,n),Ek[l]}var Ek={incrementalPrepareRender:{progress:function(r,e){e.view.incrementalRender(r,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(r,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Lf="\0__throttleOriginMethod",p_="\0__throttleRate",d_="\0__throttleType";function ay(r,e,t){var a,n=0,i=0,o=null,s,l,u,f;e=e||0;function h(){i=new Date().getTime(),o=null,r.apply(l,u||[])}var v=function(){for(var c=[],p=0;p=0?h():o=setTimeout(h,-s),n=a};return v.clear=function(){o&&(clearTimeout(o),o=null)},v.debounceNextCall=function(c){f=c},v}function Po(r,e,t,a){var n=r[e];if(n){var i=n[Lf]||n,o=n[d_],s=n[p_];if(s!==t||o!==a){if(t==null||!a)return r[e]=i;n=r[e]=ay(i,t,a==="debounce"),n[Lf]=i,n[d_]=a,n[p_]=t}return n}}function rl(r,e){var t=r[e];t&&t[Lf]&&(t.clear&&t.clear(),r[e]=t[Lf])}var g_=Tt(),y_={itemStyle:ii(aA,!0),lineStyle:ii(rA,!0)},kk={lineStyle:"stroke",itemStyle:"fill"};function KA(r,e){var t=r.visualStyleMapper||y_[e];return t||(console.warn("Unknown style type '"+e+"'."),y_.itemStyle)}function jA(r,e){var t=r.visualDrawType||kk[e];return t||(console.warn("Unknown style type '"+e+"'."),"fill")}var Ok={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){var t=r.getData(),a=r.visualStyleAccessPath||"itemStyle",n=r.getModel(a),i=KA(r,a),o=i(n),s=n.getShallow("decal");s&&(t.setVisual("decal",s),s.dirty=!0);var l=jA(r,a),u=o[l],f=K(u)?u:null,h=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||h){var v=r.getColorFromPalette(r.name,null,e.getSeriesCount());o[l]||(o[l]=v,t.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||K(o.fill)?v:o.fill,o.stroke=o.stroke==="auto"||K(o.stroke)?v:o.stroke}if(t.setVisual("style",o),t.setVisual("drawType",l),!e.isSeriesFiltered(r)&&f)return t.setVisual("colorFromPalette",!1),{dataEach:function(c,p){var d=r.getDataParams(p),g=V({},o);g[l]=f(d),c.setItemVisual(p,"style",g)}}}},Zo=new Mt,Nk={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){if(!(r.ignoreStyleOnData||e.isSeriesFiltered(r))){var t=r.getData(),a=r.visualStyleAccessPath||"itemStyle",n=KA(r,a),i=t.getVisual("drawType");return{dataEach:t.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[a]){Zo.option=l[a];var u=n(Zo),f=o.ensureUniqueItemVisual(s,"style");V(f,u),Zo.option.decal&&(o.setItemVisual(s,"decal",Zo.option.decal),Zo.option.decal.dirty=!0),i in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},Bk={performRawSeries:!0,overallReset:function(r){var e=Z();r.eachSeries(function(t){var a=t.getColorBy();if(!t.isColorBySeries()){var n=t.type+"-"+a,i=e.get(n);i||(i={},e.set(n,i)),g_(t).scope=i}}),r.eachSeries(function(t){if(!(t.isColorBySeries()||r.isSeriesFiltered(t))){var a=t.getRawData(),n={},i=t.getData(),o=g_(t).scope,s=t.visualStyleAccessPath||"itemStyle",l=jA(t,s);i.each(function(u){var f=i.getRawIndex(u);n[f]=u}),a.each(function(u){var f=n[u],h=i.getItemVisual(f,"colorFromPalette");if(h){var v=i.ensureUniqueItemVisual(f,"style"),c=a.getName(u)||u+"",p=a.count();v[l]=t.getColorFromPalette(c,o,p)}})}})}},fu=Math.PI;function Vk(r,e){e=e||{},Q(e,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var t=new at,a=new wt({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});t.add(a);var n=new bt({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),i=new wt({style:{fill:"none"},textContent:n,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});t.add(i);var o;return e.showSpinner&&(o=new Cl({shape:{startAngle:-fu/2,endAngle:-fu/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:fu*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:fu*3/2}).delay(300).start("circularInOut"),t.add(o)),t.resize=function(){var s=n.getBoundingRect().width,l=e.showSpinner?e.spinnerRadius:0,u=(r.getWidth()-l*2-(e.showSpinner&&s?10:0)-s)/2-(e.showSpinner&&s?0:5+s/2)+(e.showSpinner?0:s/2)+(s?0:l),f=r.getHeight()/2;e.showSpinner&&o.setShape({cx:u,cy:f}),i.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),a.setShape({x:0,y:0,width:r.getWidth(),height:r.getHeight()})},t.resize(),t}var QA=function(){function r(e,t,a,n){this._stageTaskMap=Z(),this.ecInstance=e,this.api=t,a=this._dataProcessorHandlers=a.slice(),n=this._visualHandlers=n.slice(),this._allHandlers=a.concat(n)}return r.prototype.restoreData=function(e,t){e.restoreData(t),this._stageTaskMap.each(function(a){var n=a.overallTask;n&&n.dirty()})},r.prototype.getPerformArgs=function(e,t){if(e.__pipeline){var a=this._pipelineMap.get(e.__pipeline.id),n=a.context,i=!t&&a.progressiveEnabled&&(!n||n.progressiveRender)&&e.__idxInPipeline>a.blockIndex,o=i?a.step:null,s=n&&n.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},r.prototype.getPipeline=function(e){return this._pipelineMap.get(e)},r.prototype.updateStreamModes=function(e,t){var a=this._pipelineMap.get(e.uid),n=e.getData(),i=n.count(),o=a.progressiveEnabled&&t.incrementalPrepareRender&&i>=a.threshold,s=e.get("large")&&i>=e.get("largeThreshold"),l=e.get("progressiveChunkMode")==="mod"?i:null;e.pipelineContext=a.context={progressiveRender:o,modDataCount:l,large:s}},r.prototype.restorePipelines=function(e){var t=this,a=t._pipelineMap=Z();e.eachSeries(function(n){var i=n.getProgressive(),o=n.uid;a.set(o,{id:o,head:null,tail:null,threshold:n.getProgressiveThreshold(),progressiveEnabled:i&&!(n.preventIncremental&&n.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),t._pipe(n,n.dataTask)})},r.prototype.prepareStageTasks=function(){var e=this._stageTaskMap,t=this.api.getModel(),a=this.api;C(this._allHandlers,function(n){var i=e.get(n.uid)||e.set(n.uid,{}),o="";me(!(n.reset&&n.overallReset),o),n.reset&&this._createSeriesStageTask(n,i,t,a),n.overallReset&&this._createOverallStageTask(n,i,t,a)},this)},r.prototype.prepareView=function(e,t,a,n){var i=e.renderTask,o=i.context;o.model=t,o.ecModel=a,o.api=n,i.__block=!e.incrementalPrepareRender,this._pipe(t,i)},r.prototype.performDataProcessorTasks=function(e,t){this._performStageTasks(this._dataProcessorHandlers,e,t,{block:!0})},r.prototype.performVisualTasks=function(e,t,a){this._performStageTasks(this._visualHandlers,e,t,a)},r.prototype._performStageTasks=function(e,t,a,n){n=n||{};var i=!1,o=this;C(e,function(l,u){if(!(n.visualType&&n.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),h=f.seriesTaskMap,v=f.overallTask;if(v){var c,p=v.agentStubMap;p.each(function(g){s(n,g)&&(g.dirty(),c=!0)}),c&&v.dirty(),o.updatePayload(v,a);var d=o.getPerformArgs(v,n.block);p.each(function(g){g.perform(d)}),v.perform(d)&&(i=!0)}else h&&h.each(function(g,y){s(n,g)&&g.dirty();var m=o.getPerformArgs(g,n.block);m.skip=!l.performRawSeries&&t.isSeriesFiltered(g.context.model),o.updatePayload(g,a),g.perform(m)&&(i=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=i||this.unfinished},r.prototype.performSeriesTasks=function(e){var t;e.eachSeries(function(a){t=a.dataTask.perform()||t}),this.unfinished=t||this.unfinished},r.prototype.plan=function(){this._pipelineMap.each(function(e){var t=e.tail;do{if(t.__block){e.blockIndex=t.__idxInPipeline;break}t=t.getUpstream()}while(t)})},r.prototype.updatePayload=function(e,t){t!=="remain"&&(e.context.payload=t)},r.prototype._createSeriesStageTask=function(e,t,a,n){var i=this,o=t.seriesTaskMap,s=t.seriesTaskMap=Z(),l=e.seriesType,u=e.getTargetSeries;e.createOnAllSeries?a.eachRawSeries(f):l?a.eachRawSeriesByType(l,f):u&&u(a,n).each(f);function f(h){var v=h.uid,c=s.set(v,o&&o.get(v)||Ns({plan:Wk,reset:Uk,count:Xk}));c.context={model:h,ecModel:a,api:n,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:i},i._pipe(h,c)}},r.prototype._createOverallStageTask=function(e,t,a,n){var i=this,o=t.overallTask=t.overallTask||Ns({reset:zk});o.context={ecModel:a,api:n,overallReset:e.overallReset,scheduler:i};var s=o.agentStubMap,l=o.agentStubMap=Z(),u=e.seriesType,f=e.getTargetSeries,h=!0,v=!1,c="";me(!e.createOnAllSeries,c),u?a.eachRawSeriesByType(u,p):f?f(a,n).each(p):(h=!1,C(a.getSeries(),p));function p(d){var g=d.uid,y=l.set(g,s&&s.get(g)||(v=!0,Ns({reset:Gk,onDirty:Hk})));y.context={model:d,overallProgress:h},y.agent=o,y.__block=h,i._pipe(d,y)}v&&o.dirty()},r.prototype._pipe=function(e,t){var a=e.uid,n=this._pipelineMap.get(a);!n.head&&(n.head=t),n.tail&&n.tail.pipe(t),n.tail=t,t.__idxInPipeline=n.count++,t.__pipeline=n},r.wrapStageHandler=function(e,t){return K(e)&&(e={overallReset:e,seriesType:$k(e)}),e.uid=Co("stageHandler"),t&&(e.visualType=t),e},r}();function zk(r){r.overallReset(r.ecModel,r.api,r.payload)}function Gk(r){return r.overallProgress&&Fk}function Fk(){this.agent.dirty(),this.getDownstream().dirty()}function Hk(){this.agent&&this.agent.dirty()}function Wk(r){return r.plan?r.plan(r.model,r.ecModel,r.api,r.payload):null}function Uk(r){r.useClearVisual&&r.data.clearAllVisual();var e=r.resetDefines=Et(r.reset(r.model,r.ecModel,r.api,r.payload));return e.length>1?G(e,function(t,a){return JA(a)}):Yk}var Yk=JA(0);function JA(r){return function(e,t){var a=t.data,n=t.resetDefines[r];if(n&&n.dataEach)for(var i=e.start;i0&&c===u.length-v.length){var p=u.slice(0,c);p!=="data"&&(t.mainType=p,t[v.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(a[u]=l,f=!0),f||(n[u]=l)})}return{cptQuery:t,dataQuery:a,otherQuery:n}},r.prototype.filter=function(e,t){var a=this.eventInfo;if(!a)return!0;var n=a.targetEl,i=a.packedEvent,o=a.model,s=a.view;if(!o||!s)return!0;var l=t.cptQuery,u=t.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,i,"name")&&f(u,i,"dataIndex")&&f(u,i,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(e,t.otherQuery,n,i));function f(h,v,c,p){return h[c]==null||v[p||c]===h[c]}},r.prototype.afterTrigger=function(){this.eventInfo=null},r}(),ud=["symbol","symbolSize","symbolRotate","symbolOffset"],x_=ud.concat(["symbolKeepAspect"]),Kk={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){var t=r.getData();if(r.legendIcon&&t.setVisual("legendIcon",r.legendIcon),!r.hasSymbolVisual)return;for(var a={},n={},i=!1,o=0;o=0&&Xn(l)?l:.5;var u=r.createRadialGradient(o,s,0,o,s,l);return u}function fd(r,e,t){for(var a=e.type==="radial"?hO(r,e,t):fO(r,e,t),n=e.colorStops,i=0;i0)?null:r==="dashed"?[4*e,2*e]:r==="dotted"?[e]:Ct(r)?[r]:z(r)?r:null}function iy(r){var e=r.style,t=e.lineDash&&e.lineWidth>0&&cO(e.lineDash,e.lineWidth),a=e.lineDashOffset;if(t){var n=e.strokeNoScale&&r.getLineScale?r.getLineScale():1;n&&n!==1&&(t=G(t,function(i){return i/n}),a/=n)}return[t,a]}var pO=new qr(!0);function Ef(r){var e=r.stroke;return!(e==null||e==="none"||!(r.lineWidth>0))}function b_(r){return typeof r=="string"&&r!=="none"}function kf(r){var e=r.fill;return e!=null&&e!=="none"}function w_(r,e){if(e.fillOpacity!=null&&e.fillOpacity!==1){var t=r.globalAlpha;r.globalAlpha=e.fillOpacity*e.opacity,r.fill(),r.globalAlpha=t}else r.fill()}function T_(r,e){if(e.strokeOpacity!=null&&e.strokeOpacity!==1){var t=r.globalAlpha;r.globalAlpha=e.strokeOpacity*e.opacity,r.stroke(),r.globalAlpha=t}else r.stroke()}function hd(r,e,t){var a=Cg(e.image,e.__image,t);if(xh(a)){var n=r.createPattern(a,e.repeat||"repeat");if(typeof DOMMatrix=="function"&&n&&n.setTransform){var i=new DOMMatrix;i.translateSelf(e.x||0,e.y||0),i.rotateSelf(0,0,(e.rotation||0)*Ts),i.scaleSelf(e.scaleX||1,e.scaleY||1),n.setTransform(i)}return n}}function dO(r,e,t,a){var n,i=Ef(t),o=kf(t),s=t.strokePercent,l=s<1,u=!e.path;(!e.silent||l)&&u&&e.createPathProxy();var f=e.path||pO,h=e.__dirty;if(!a){var v=t.fill,c=t.stroke,p=o&&!!v.colorStops,d=i&&!!c.colorStops,g=o&&!!v.image,y=i&&!!c.image,m=void 0,_=void 0,S=void 0,b=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(m=h?fd(r,v,x):e.__canvasFillGradient,e.__canvasFillGradient=m),d&&(_=h?fd(r,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=_),g&&(S=h||!e.__canvasFillPattern?hd(r,v,e):e.__canvasFillPattern,e.__canvasFillPattern=S),y&&(b=h||!e.__canvasStrokePattern?hd(r,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=S),p?r.fillStyle=m:g&&(S?r.fillStyle=S:o=!1),d?r.strokeStyle=_:y&&(b?r.strokeStyle=b:i=!1)}var w=e.getGlobalScale();f.setScale(w[0],w[1],e.segmentIgnoreThreshold);var T,A;r.setLineDash&&t.lineDash&&(n=iy(e),T=n[0],A=n[1]);var D=!0;(u||h&Fi)&&(f.setDPR(r.dpr),l?f.setContext(null):(f.setContext(r),D=!1),f.reset(),e.buildPath(f,e.shape,a),f.toStatic(),e.pathUpdated()),D&&f.rebuildPath(r,l?s:1),T&&(r.setLineDash(T),r.lineDashOffset=A),a||(t.strokeFirst?(i&&T_(r,t),o&&w_(r,t)):(o&&w_(r,t),i&&T_(r,t))),T&&r.setLineDash([])}function gO(r,e,t){var a=e.__image=Cg(t.image,e.__image,e,e.onload);if(!(!a||!xh(a))){var n=t.x||0,i=t.y||0,o=e.getWidth(),s=e.getHeight(),l=a.width/a.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=a.width,s=a.height),t.sWidth&&t.sHeight){var u=t.sx||0,f=t.sy||0;r.drawImage(a,u,f,t.sWidth,t.sHeight,n,i,o,s)}else if(t.sx&&t.sy){var u=t.sx,f=t.sy,h=o-u,v=s-f;r.drawImage(a,u,f,h,v,n,i,o,s)}else r.drawImage(a,n,i,o,s)}}function yO(r,e,t){var a,n=t.text;if(n!=null&&(n+=""),n){r.font=t.font||Ka,r.textAlign=t.textAlign,r.textBaseline=t.textBaseline;var i=void 0,o=void 0;r.setLineDash&&t.lineDash&&(a=iy(e),i=a[0],o=a[1]),i&&(r.setLineDash(i),r.lineDashOffset=o),t.strokeFirst?(Ef(t)&&r.strokeText(n,t.x,t.y),kf(t)&&r.fillText(n,t.x,t.y)):(kf(t)&&r.fillText(n,t.x,t.y),Ef(t)&&r.strokeText(n,t.x,t.y)),i&&r.setLineDash([])}}var A_=["shadowBlur","shadowOffsetX","shadowOffsetY"],C_=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function iC(r,e,t,a,n){var i=!1;if(!a&&(t=t||{},e===t))return!1;if(a||e.opacity!==t.opacity){ze(r,n),i=!0;var o=Math.max(Math.min(e.opacity,1),0);r.globalAlpha=isNaN(o)?Kn.opacity:o}(a||e.blend!==t.blend)&&(i||(ze(r,n),i=!0),r.globalCompositeOperation=e.blend||Kn.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,a,n){if(!this[de]){if(this._disposed){this.id;return}var i,o,s;if(tt(a)&&(n=a.lazyUpdate,i=a.silent,o=a.replaceMerge,s=a.transition,a=a.notMerge),this[de]=!0,!this._model||a){var l=new RE(this._api),u=this._theme,f=this._model=new Qg;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(t,{replaceMerge:o},cd);var h={seriesTransition:s,optionChanged:!0};if(n)this[Ne]={silent:i,updateParams:h},this[de]=!1,this.getZr().wakeUp();else{try{Li(this),Da.update.call(this,null,h)}catch(v){throw this[Ne]=null,this[de]=!1,v}this._ssr||this._zr.flush(),this[Ne]=null,this[de]=!1,qo.call(this,i),Ko.call(this,i)}}},e.prototype.setTheme=function(){},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||_t.hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){t=t||{};var a=this._zr.painter;return a.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){t=t||{};var a=this._zr.painter;return a.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(_t.svgSupported){var t=this._zr,a=t.storage.getDisplayList();return C(a,function(n){n.stopAnimation(null,!0)}),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(this._disposed){this.id;return}t=t||{};var a=t.excludeComponents,n=this._model,i=[],o=this;C(a,function(l){n.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(i.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return C(i,function(l){l.group.ignore=!1}),s},e.prototype.getConnectedDataURL=function(t){if(this._disposed){this.id;return}var a=t.type==="svg",n=this.group,i=Math.min,o=Math.max,s=1/0;if(Vf[n]){var l=s,u=s,f=-s,h=-s,v=[],c=t&&t.pixelRatio||this.getDevicePixelRatio();C(Jn,function(_,S){if(_.group===n){var b=a?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(et(t)),x=_.getDom().getBoundingClientRect();l=i(x.left,l),u=i(x.top,u),f=o(x.right,f),h=o(x.bottom,h),v.push({dom:b,left:x.left,top:x.top})}}),l*=c,u*=c,f*=c,h*=c;var p=f-l,d=h-u,g=Cr.createCanvas(),y=Vp(g,{renderer:a?"svg":"canvas"});if(y.resize({width:p,height:d}),a){var m="";return C(v,function(_){var S=_.left-l,b=_.top-u;m+=''+_.dom+""}),y.painter.getSvgRoot().innerHTML=m,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}else return t.connectedBackgroundColor&&y.add(new wt({shape:{x:0,y:0,width:p,height:d},style:{fill:t.connectedBackgroundColor}})),C(v,function(_){var S=new oe({style:{x:_.left*c-l,y:_.top*c-u,image:_.dom}});y.add(S)}),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}else return this.getDataURL(t)},e.prototype.convertToPixel=function(t,a){return Zv(this,"convertToPixel",t,a)},e.prototype.convertFromPixel=function(t,a){return Zv(this,"convertFromPixel",t,a)},e.prototype.containPixel=function(t,a){if(this._disposed){this.id;return}var n=this._model,i,o=Ps(n,t);return C(o,function(s,l){l.indexOf("Models")>=0&&C(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)i=i||!!f.containPoint(a);else if(l==="seriesModels"){var h=this._chartsMap[u.__viewId];h&&h.containPoint&&(i=i||h.containPoint(a,u))}},this)},this),!!i},e.prototype.getVisual=function(t,a){var n=this._model,i=Ps(n,t,{defaultMainType:"series"}),o=i.seriesModel,s=o.getData(),l=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?s.indexOfRawIndex(i.dataIndex):null;return l!=null?ny(s,l,a):Ll(s,a)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t=this;C(FO,function(a){var n=function(i){var o=t.getModel(),s=i.target,l,u=a==="globalout";if(u?l={}:s&&Yn(s,function(p){var d=nt(p);if(d&&d.dataIndex!=null){var g=d.dataModel||o.getSeriesByIndex(d.seriesIndex);return l=g&&g.getDataParams(d.dataIndex,d.dataType,s)||{},!0}else if(d.eventData)return l=V({},d.eventData),!0},!0),l){var f=l.componentType,h=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",h=l.seriesIndex);var v=f&&h!=null&&o.getComponent(f,h),c=v&&t[v.mainType==="series"?"_chartsMap":"_componentsMap"][v.__viewId];l.event=i,l.type=a,t._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:v,view:c},t.trigger(a,l)}};n.zrEventfulCallAtLast=!0,t._zr.on(a,n,t)}),C(Bs,function(a,n){t._messageCenter.on(n,function(i){this.trigger(n,i)},t)}),C(["selectchanged"],function(a){t._messageCenter.on(a,function(n){this.trigger(a,n)},t)}),Qk(this._messageCenter,this,this._api)},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var t=this.getDom();t&&dT(this.getDom(),ly,"");var a=this,n=a._api,i=a._model;C(a._componentsViews,function(o){o.dispose(i,n)}),C(a._chartsViews,function(o){o.dispose(i,n)}),a._zr.dispose(),a._dom=a._model=a._chartsMap=a._componentsMap=a._chartsViews=a._componentsViews=a._scheduler=a._api=a._zr=a._throttledZrFlush=a._theme=a._coordSysMgr=a._messageCenter=null,delete Jn[a.id]},e.prototype.resize=function(t){if(!this[de]){if(this._disposed){this.id;return}this._zr.resize(t);var a=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!a){var n=a.resetOption("media"),i=t&&t.silent;this[Ne]&&(i==null&&(i=this[Ne].silent),n=!0,this[Ne]=null),this[de]=!0;try{n&&Li(this),Da.update.call(this,{type:"resize",animation:V({duration:0},t&&t.animation)})}catch(o){throw this[de]=!1,o}this[de]=!1,qo.call(this,i),Ko.call(this,i)}}},e.prototype.showLoading=function(t,a){if(this._disposed){this.id;return}if(tt(t)&&(a=t,t=""),t=t||"default",this.hideLoading(),!!pd[t]){var n=pd[t](this._api,a),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},e.prototype.makeActionFromEvent=function(t){var a=V({},t);return a.type=Bs[t.type],a},e.prototype.dispatchAction=function(t,a){if(this._disposed){this.id;return}if(tt(a)||(a={silent:!!a}),!!Nf[t.type]&&this._model){if(this[de]){this._pendingActions.push(t);return}var n=a.silent;Kv.call(this,t,n);var i=a.flush;i?this._zr.flush():i!==!1&&_t.browser.weChat&&this._throttledZrFlush(),qo.call(this,n),Ko.call(this,n)}},e.prototype.updateLabelLayout=function(){mr.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed){this.id;return}var a=t.seriesIndex,n=this.getModel(),i=n.getSeriesByIndex(a);i.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()},e.internalField=function(){Li=function(h){var v=h._scheduler;v.restorePipelines(h._model),v.prepareStageTasks(),$v(h,!0),$v(h,!1),v.plan()},$v=function(h,v){for(var c=h._model,p=h._scheduler,d=v?h._componentsViews:h._chartsViews,g=v?h._componentsMap:h._chartsMap,y=h._zr,m=h._api,_=0;_v.get("hoverLayerThreshold")&&!_t.node&&!_t.worker&&v.eachSeries(function(g){if(!g.preventUsingHoverLayer){var y=h._chartsMap[g.__viewId];y.__alive&&y.eachRendered(function(m){m.states.emphasis&&(m.states.emphasis.hoverLayer=!0)})}})}function o(h,v){var c=h.get("blendMode")||null;v.eachRendered(function(p){p.isGroup||(p.style.blend=c)})}function s(h,v){if(!h.preventAutoZ){var c=h.get("z")||0,p=h.get("zlevel")||0;v.eachRendered(function(d){return l(d,c,p,-1/0),!0})}}function l(h,v,c,p){var d=h.getTextContent(),g=h.getTextGuideLine(),y=h.isGroup;if(y)for(var m=h.childrenRef(),_=0;_0?{duration:d,delay:c.get("delay"),easing:c.get("easing")}:null;v.eachRendered(function(y){if(y.states&&y.states.emphasis){if(Ji(y))return;if(y instanceof yt&&yR(y),y.__dirty){var m=y.prevStates;m&&y.useStates(m)}if(p){y.stateTransition=g;var _=y.getTextContent(),S=y.getTextGuideLine();_&&(_.stateTransition=g),S&&(S.stateTransition=g)}y.__dirty&&n(y)}})}z_=function(h){return new(function(v){k(c,v);function c(){return v!==null&&v.apply(this,arguments)||this}return c.prototype.getCoordinateSystems=function(){return h._coordSysMgr.getCoordinateSystems()},c.prototype.getComponentByElement=function(p){for(;p;){var d=p.__ecComponentInfo;if(d!=null)return h._model.getComponent(d.mainType,d.index);p=p.parent}},c.prototype.enterEmphasis=function(p,d){da(p,d),Ze(h)},c.prototype.leaveEmphasis=function(p,d){ga(p,d),Ze(h)},c.prototype.enterBlur=function(p){ET(p),Ze(h)},c.prototype.leaveBlur=function(p){Pg(p),Ze(h)},c.prototype.enterSelect=function(p){kT(p),Ze(h)},c.prototype.leaveSelect=function(p){OT(p),Ze(h)},c.prototype.getModel=function(){return h.getModel()},c.prototype.getViewOfComponentModel=function(p){return h.getViewOfComponentModel(p)},c.prototype.getViewOfSeriesModel=function(p){return h.getViewOfSeriesModel(p)},c}(AA))(h)},xC=function(h){function v(c,p){for(var d=0;d=0)){F_.push(t);var i=QA.wrapStageHandler(t,n);i.__prio=e,i.__raw=t,r.push(i)}}function DC(r,e){pd[r]=e}function p7(r){pL({createCanvas:r})}function qO(r,e,t){var a=vC("registerMap");a&&a(r,e,t)}function d7(r){var e=vC("getMap");return e&&e(r)}var KO=fk;gi(oy,Ok);gi(Vh,Nk);gi(Vh,Bk);gi(oy,Kk);gi(Vh,jk);gi(dC,AO);AC(DA);CC(IO,UE);DC("default",Vk);Qr({type:jn,event:jn,update:jn},Yt);Qr({type:ju,event:ju,update:ju},Yt);Qr({type:Rs,event:Rs,update:Rs},Yt);Qr({type:Qu,event:Qu,update:Qu},Yt);Qr({type:Es,event:Es,update:Es},Yt);TC("light",Zk);TC("dark",rC);var g7={},H_=[],jO={registerPreprocessor:AC,registerProcessor:CC,registerPostInit:YO,registerPostUpdate:XO,registerUpdateLifecycle:uy,registerAction:Qr,registerCoordinateSystem:$O,registerLayout:ZO,registerVisual:gi,registerTransform:KO,registerLoading:DC,registerMap:qO,registerImpl:CO,PRIORITY:VO,ComponentModel:mt,ComponentView:zt,SeriesModel:kt,ChartView:Rt,registerComponentModel:function(r){mt.registerClass(r)},registerComponentView:function(r){zt.registerClass(r)},registerSeriesModel:function(r){kt.registerClass(r)},registerChartView:function(r){Rt.registerClass(r)},registerSubTypeDefaulter:function(r,e){mt.registerSubTypeDefaulter(r,e)},registerPainter:function(r,e){rT(r,e)}};function gt(r){if(z(r)){C(r,function(e){gt(e)});return}vt(H_,r)>=0||(H_.push(r),K(r)&&(r={install:r}),r.install(jO))}function jo(r){return r==null?0:r.length||1}function W_(r){return r}var ya=function(){function r(e,t,a,n,i,o){this._old=e,this._new=t,this._oldKeyGetter=a||W_,this._newKeyGetter=n||W_,this.context=i,this._diffModeMultiple=o==="multiple"}return r.prototype.add=function(e){return this._add=e,this},r.prototype.update=function(e){return this._update=e,this},r.prototype.updateManyToOne=function(e){return this._updateManyToOne=e,this},r.prototype.updateOneToMany=function(e){return this._updateOneToMany=e,this},r.prototype.updateManyToMany=function(e){return this._updateManyToMany=e,this},r.prototype.remove=function(e){return this._remove=e,this},r.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},r.prototype._executeOneToOne=function(){var e=this._old,t=this._new,a={},n=new Array(e.length),i=new Array(t.length);this._initIndexMap(e,null,n,"_oldKeyGetter"),this._initIndexMap(t,a,i,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(a[s]=l[0]),this._update&&this._update(f,o)}else u===1?(a[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(i,a)},r.prototype._executeMultiple=function(){var e=this._old,t=this._new,a={},n={},i=[],o=[];this._initIndexMap(e,a,i,"_oldKeyGetter"),this._initIndexMap(t,n,o,"_newKeyGetter");for(var s=0;s1&&v===1)this._updateManyToOne&&this._updateManyToOne(f,u),n[l]=null;else if(h===1&&v>1)this._updateOneToMany&&this._updateOneToMany(f,u),n[l]=null;else if(h===1&&v===1)this._update&&this._update(f,u),n[l]=null;else if(h>1&&v>1)this._updateManyToMany&&this._updateManyToMany(f,u),n[l]=null;else if(h>1)for(var c=0;c1)for(var s=0;s30}var Qo=tt,Ma=G,aN=typeof Int32Array>"u"?Array:Int32Array,nN="e\0\0",U_=-1,iN=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],oN=["_approximateExtent"],Y_,du,Jo,ts,Jv,gu,tc,Le=function(){function r(e,t){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var a,n=!1;IC(e)?(a=e.dimensions,this._dimOmitted=e.isDimensionOmitted(),this._schema=e):(n=!0,a=e),a=a||["x","y"];for(var i={},o=[],s={},l=!1,u={},f=0;f=t)){var a=this._store,n=a.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,s=n.getSource().sourceFormat,l=s===vr;if(l&&!n.pure)for(var u=[],f=e;f0},r.prototype.ensureUniqueItemVisual=function(e,t){var a=this._itemVisuals,n=a[e];n||(n=a[e]={});var i=n[t];return i==null&&(i=this.getVisual(t),z(i)?i=i.slice():Qo(i)&&(i=V({},i)),n[t]=i),i},r.prototype.setItemVisual=function(e,t,a){var n=this._itemVisuals[e]||{};this._itemVisuals[e]=n,Qo(t)?V(n,t):n[t]=a},r.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},r.prototype.setLayout=function(e,t){Qo(e)?V(this._layout,e):this._layout[e]=t},r.prototype.getLayout=function(e){return this._layout[e]},r.prototype.getItemLayout=function(e){return this._itemLayouts[e]},r.prototype.setItemLayout=function(e,t,a){this._itemLayouts[e]=a?V(this._itemLayouts[e]||{},t):t},r.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},r.prototype.setItemGraphicEl=function(e,t){var a=this.hostModel&&this.hostModel.seriesIndex;Xp(a,this.dataType,e,t),this._graphicEls[e]=t},r.prototype.getItemGraphicEl=function(e){return this._graphicEls[e]},r.prototype.eachItemGraphicEl=function(e,t){C(this._graphicEls,function(a,n){a&&e&&e.call(t,a,n)})},r.prototype.cloneShallow=function(e){return e||(e=new r(this._schema?this._schema:Ma(this.dimensions,this._getDimInfo,this),this.hostModel)),Jv(e,this),e._store=this._store,e},r.prototype.wrapMethod=function(e,t){var a=this[e];K(a)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var n=a.apply(this,arguments);return t.apply(this,[n].concat(vh(arguments)))})},r.internalField=function(){Y_=function(e){var t=e._invertedIndicesMap;C(t,function(a,n){var i=e._dimInfos[n],o=i.ordinalMeta,s=e._store;if(o){a=t[n]=new aN(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),n[t]=l}}}(),r}();function sN(r,e){return Eo(r,e).dimensions}function Eo(r,e){Jg(r)||(r=ty(r)),e=e||{};var t=e.coordDimensions||[],a=e.dimensionsDefine||r.dimensionsDefine||[],n=Z(),i=[],o=uN(r,t,a,e.dimensionsCount),s=e.canOmitUnusedDimensions&&RC(o),l=a===r.dimensionsDefine,u=l?PC(r):LC(a),f=e.encodeDefine;!f&&e.encodeDefaulter&&(f=e.encodeDefaulter(r,o));for(var h=Z(f),v=new VA(o),c=0;c0&&(a.name=n+(i-1)),i++,e.set(n,i)}}function uN(r,e,t,a){var n=Math.max(r.dimensionsDetectedCount||1,e.length,t.length,a||0);return C(e,function(i){var o;tt(i)&&(o=i.dimsDef)&&(n=Math.max(n,o.length))}),n}function fN(r,e,t){if(t||e.hasKey(r)){for(var a=0;e.hasKey(r+a);)a++;r+=a}return e.set(r,!0),r}var hN=function(){function r(e){this.coordSysDims=[],this.axisMap=Z(),this.categoryAxisMap=Z(),this.coordSysName=e}return r}();function vN(r){var e=r.get("coordinateSystem"),t=new hN(e),a=cN[e];if(a)return a(r,t,t.axisMap,t.categoryAxisMap),t}var cN={cartesian2d:function(r,e,t,a){var n=r.getReferringComponents("xAxis",Kt).models[0],i=r.getReferringComponents("yAxis",Kt).models[0];e.coordSysDims=["x","y"],t.set("x",n),t.set("y",i),Pi(n)&&(a.set("x",n),e.firstCategoryDimIndex=0),Pi(i)&&(a.set("y",i),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},singleAxis:function(r,e,t,a){var n=r.getReferringComponents("singleAxis",Kt).models[0];e.coordSysDims=["single"],t.set("single",n),Pi(n)&&(a.set("single",n),e.firstCategoryDimIndex=0)},polar:function(r,e,t,a){var n=r.getReferringComponents("polar",Kt).models[0],i=n.findAxisModel("radiusAxis"),o=n.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],t.set("radius",i),t.set("angle",o),Pi(i)&&(a.set("radius",i),e.firstCategoryDimIndex=0),Pi(o)&&(a.set("angle",o),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},geo:function(r,e,t,a){e.coordSysDims=["lng","lat"]},parallel:function(r,e,t,a){var n=r.ecModel,i=n.getComponent("parallel",r.get("parallelIndex")),o=e.coordSysDims=i.dimensions.slice();C(i.parallelAxisIndex,function(s,l){var u=n.getComponent("parallelAxis",s),f=o[l];t.set(f,u),Pi(u)&&(a.set(f,u),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=l))})}};function Pi(r){return r.get("type")==="category"}function EC(r,e,t){t=t||{};var a=t.byIndex,n=t.stackedCoordDimension,i,o,s;pN(e)?i=e:(o=e.schema,i=o.dimensions,s=e.store);var l=!!(r&&r.get("stack")),u,f,h,v;if(C(i,function(m,_){U(m)&&(i[_]=m={name:m}),l&&!m.isExtraCoord&&(!a&&!u&&m.ordinalMeta&&(u=m),!f&&m.type!=="ordinal"&&m.type!=="time"&&(!n||n===m.coordDim)&&(f=m))}),f&&!a&&!u&&(a=!0),f){h="__\0ecstackresult_"+r.id,v="__\0ecstackedover_"+r.id,u&&(u.createInvertedIndices=!0);var c=f.coordDim,p=f.type,d=0;C(i,function(m){m.coordDim===c&&d++});var g={name:h,coordDim:c,coordDimIndex:d,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},y={name:v,coordDim:v,coordDimIndex:d+1,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(v,p),y.storeDimIndex=s.ensureCalculationDimension(h,p)),o.appendCalculationDimension(g),o.appendCalculationDimension(y)):(i.push(g),i.push(y))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:a,stackedOverDimension:v,stackResultDimension:h}}function pN(r){return!IC(r.schema)}function ma(r,e){return!!e&&e===r.getCalculationInfo("stackedDimension")}function hy(r,e){return ma(r,e)?r.getCalculationInfo("stackResultDimension"):e}function dN(r,e){var t=r.get("coordinateSystem"),a=Io.get(t),n;return e&&e.coordSysDims&&(n=G(e.coordSysDims,function(i){var o={name:i},s=e.axisMap.get(i);if(s){var l=s.get("type");o.type=zf(l)}return o})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]),n}function gN(r,e,t){var a,n;return t&&C(r,function(i,o){var s=i.coordDim,l=t.categoryAxisMap.get(s);l&&(a==null&&(a=o),i.ordinalMeta=l.getOrdinalMeta(),e&&(i.createInvertedIndices=!0)),i.otherDims.itemName!=null&&(n=!0)}),!n&&a!=null&&(r[a].otherDims.itemName=0),a}function Jr(r,e,t){t=t||{};var a=e.getSourceManager(),n,i=!1;r?(i=!0,n=ty(r)):(n=a.getSource(),i=n.sourceFormat===vr);var o=vN(e),s=dN(e,o),l=t.useEncodeDefaulter,u=K(l)?l:l?it(xA,s,e):null,f={coordDimensions:s,generateCoord:t.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!i},h=Eo(n,f),v=gN(h.dimensions,t.createInvertedIndices,o),c=i?null:a.getSharedDataStore(h),p=EC(e,{schema:h,store:c}),d=new Le(h,e);d.setCalculationInfo(p);var g=v!=null&&yN(n)?function(y,m,_,S){return S===v?_:this.defaultDimValueGetter(y,m,_,S)}:null;return d.hasItemOption=!1,d.initData(i?n:c,null,g),d}function yN(r){if(r.sourceFormat===vr){var e=mN(r.data||[]);return!z(yo(e))}}function mN(r){for(var e=0;et[1]&&(t[1]=e[1])},r.prototype.unionExtentFromData=function(e,t){this.unionExtent(e.getApproximateExtent(t))},r.prototype.getExtent=function(){return this._extent.slice()},r.prototype.setExtent=function(e,t){var a=this._extent;isNaN(e)||(a[0]=e),isNaN(t)||(a[1]=t)},r.prototype.isInExtentRange=function(e){return this._extent[0]<=e&&this._extent[1]>=e},r.prototype.isBlank=function(){return this._isBlank},r.prototype.setBlank=function(e){this._isBlank=e},r}();Sh(ta);var _N=0,dd=function(){function r(e){this.categories=e.categories||[],this._needCollect=e.needCollect,this._deduplication=e.deduplication,this.uid=++_N}return r.createByAxisModel=function(e){var t=e.option,a=t.data,n=a&&G(a,SN);return new r({categories:n,needCollect:!n,deduplication:t.dedplication!==!1})},r.prototype.getOrdinal=function(e){return this._getOrCreateMap().get(e)},r.prototype.parseAndCollect=function(e){var t,a=this._needCollect;if(!U(e)&&!a)return e;if(a&&!this._deduplication)return t=this.categories.length,this.categories[t]=e,t;var n=this._getOrCreateMap();return t=n.get(e),t==null&&(a?(t=this.categories.length,this.categories[t]=e,n.set(e,t)):t=NaN),t},r.prototype._getOrCreateMap=function(){return this._map||(this._map=Z(this.categories))},r}();function SN(r){return tt(r)&&r.value!=null?r.value:r+""}function gd(r){return r.type==="interval"||r.type==="log"}function xN(r,e,t,a){var n={},i=r[1]-r[0],o=n.interval=xg(i/e,!0);t!=null&&oa&&(o=n.interval=a);var s=n.intervalPrecision=kC(o),l=n.niceTickExtent=[Ht(Math.ceil(r[0]/o)*o,s),Ht(Math.floor(r[1]/o)*o,s)];return bN(l,r),n}function ec(r){var e=Math.pow(10,_h(r)),t=r/e;return t?t===2?t=3:t===3?t=5:t*=2:t=1,Ht(t*e)}function kC(r){return Sr(r)+2}function X_(r,e,t){r[e]=Math.max(Math.min(r[e],t[1]),t[0])}function bN(r,e){!isFinite(r[0])&&(r[0]=e[0]),!isFinite(r[1])&&(r[1]=e[1]),X_(r,0,e),X_(r,1,e),r[0]>r[1]&&(r[0]=r[1])}function zh(r,e){return r>=e[0]&&r<=e[1]}function Gh(r,e){return e[1]===e[0]?.5:(r-e[0])/(e[1]-e[0])}function Fh(r,e){return r*(e[1]-e[0])+e[0]}var Hh=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;a.type="ordinal";var n=a.getSetting("ordinalMeta");return n||(n=new dd({})),z(n)&&(n=new dd({categories:G(n,function(i){return tt(i)?i.value:i})})),a._ordinalMeta=n,a._extent=a.getSetting("extent")||[0,n.categories.length-1],a}return e.prototype.parse=function(t){return t==null?NaN:U(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return t=this.parse(t),zh(t,this._extent)&&this._ordinalMeta.categories[t]!=null},e.prototype.normalize=function(t){return t=this._getTickNumber(this.parse(t)),Gh(t,this._extent)},e.prototype.scale=function(t){return t=Math.round(Fh(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],a=this._extent,n=a[0];n<=a[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(t==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var a=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,a.length);o=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(ta);ta.registerClass(Hh);var Cn=Ht,_a=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="interval",t._interval=0,t._intervalPrecision=2,t}return e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return zh(t,this._extent)},e.prototype.normalize=function(t){return Gh(t,this._extent)},e.prototype.scale=function(t){return Fh(t,this._extent)},e.prototype.setExtent=function(t,a){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(a)||(n[1]=parseFloat(a))},e.prototype.unionExtent=function(t){var a=this._extent;t[0]a[1]&&(a[1]=t[1]),this.setExtent(a[0],a[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=kC(t)},e.prototype.getTicks=function(t){var a=this._interval,n=this._extent,i=this._niceExtent,o=this._intervalPrecision,s=[];if(!a)return s;var l=1e4;n[0]l)return[];var f=s.length?s[s.length-1].value:i[1];return n[1]>f&&(t?s.push({value:Cn(f+a,o)}):s.push({value:n[1]})),s},e.prototype.getMinorTicks=function(t){for(var a=this.getTicks(!0),n=[],i=this.getExtent(),o=1;oi[0]&&c0&&(i=i===null?s:Math.min(i,s))}t[a]=i}}return t}function BC(r){var e=AN(r),t=[];return C(r,function(a){var n=a.coordinateSystem,i=n.getBaseAxis(),o=i.getExtent(),s;if(i.type==="category")s=i.getBandWidth();else if(i.type==="value"||i.type==="time"){var l=i.dim+"_"+i.index,u=e[l],f=Math.abs(o[1]-o[0]),h=i.scale.getExtent(),v=Math.abs(h[1]-h[0]);s=u?f/v*u:f}else{var c=a.getData();s=Math.abs(o[1]-o[0])/c.count()}var p=W(a.get("barWidth"),s),d=W(a.get("barMaxWidth"),s),g=W(a.get("barMinWidth")||(HC(a)?.5:1),s),y=a.get("barGap"),m=a.get("barCategoryGap");t.push({bandWidth:s,barWidth:p,barMaxWidth:d,barMinWidth:g,barGap:y,barCategoryGap:m,axisKey:cy(i),stackId:vy(a)})}),VC(t)}function VC(r){var e={};C(r,function(a,n){var i=a.axisKey,o=a.bandWidth,s=e[i]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;e[i]=s;var u=a.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=a.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var h=a.barMaxWidth;h&&(l[u].maxWidth=h);var v=a.barMinWidth;v&&(l[u].minWidth=v);var c=a.barGap;c!=null&&(s.gap=c);var p=a.barCategoryGap;p!=null&&(s.categoryGap=p)});var t={};return C(e,function(a,n){t[n]={};var i=a.stacks,o=a.bandWidth,s=a.categoryGap;if(s==null){var l=St(i).length;s=Math.max(35-l*4,15)+"%"}var u=W(s,o),f=W(a.gap,1),h=a.remainedWidth,v=a.autoWidthCount,c=(h-u)/(v+(v-1)*f);c=Math.max(c,0),C(i,function(y){var m=y.maxWidth,_=y.minWidth;if(y.width){var S=y.width;m&&(S=Math.min(S,m)),_&&(S=Math.max(S,_)),y.width=S,h-=S+f*S,v--}else{var S=c;m&&mS&&(S=_),S!==c&&(y.width=S,h-=S+f*S,v--)}}),c=(h-u)/(v+(v-1)*f),c=Math.max(c,0);var p=0,d;C(i,function(y,m){y.width||(y.width=c),d=y,p+=y.width*(1+f)}),d&&(p-=d.width*f);var g=-p/2;C(i,function(y,m){t[n][m]=t[n][m]||{bandWidth:o,offset:g,width:y.width},g+=y.width*(1+f)})}),t}function CN(r,e,t){if(r&&e){var a=r[cy(e)];return a!=null&&t!=null?a[vy(t)]:a}}function zC(r,e){var t=NC(r,e),a=BC(t);C(t,function(n){var i=n.getData(),o=n.coordinateSystem,s=o.getBaseAxis(),l=vy(n),u=a[cy(s)][l],f=u.offset,h=u.width;i.setLayout({bandWidth:u.bandWidth,offset:f,size:h})})}function GC(r){return{seriesType:r,plan:Lo(),reset:function(e){if(FC(e)){var t=e.getData(),a=e.coordinateSystem,n=a.getBaseAxis(),i=a.getOtherAxis(n),o=t.getDimensionIndex(t.mapDimension(i.dim)),s=t.getDimensionIndex(t.mapDimension(n.dim)),l=e.get("showBackground",!0),u=t.mapDimension(i.dim),f=t.getCalculationInfo("stackResultDimension"),h=ma(t,u)&&!!t.getCalculationInfo("stackedOnSeries"),v=i.isHorizontal(),c=DN(n,i),p=HC(e),d=e.get("barMinHeight")||0,g=f&&t.getDimensionIndex(f),y=t.getLayout("size"),m=t.getLayout("offset");return{progress:function(_,S){for(var b=_.count,x=p&&Hr(b*3),w=p&&l&&Hr(b*3),T=p&&Hr(b),A=a.master.getRect(),D=v?A.width:A.height,M,I=S.getStore(),L=0;(M=_.next())!=null;){var P=I.get(h?g:o,M),R=I.get(s,M),E=c,N=void 0;h&&(N=+P-I.get(o,M));var O=void 0,B=void 0,F=void 0,H=void 0;if(v){var Y=a.dataToPoint([P,R]);if(h){var j=a.dataToPoint([N,R]);E=j[0]}O=E,B=Y[1]+m,F=Y[0]-E,H=y,Math.abs(F)0?t:1:t))}var MN=function(r,e,t,a){for(;t>>1;r[n][1]n&&(this._approxInterval=n);var s=yu.length,l=Math.min(MN(yu,this._approxInterval,0,s),s-1);this._interval=yu[l][1],this._minLevelUnit=yu[Math.max(l-1,0)][0]},e.prototype.parse=function(t){return Ct(t)?t:+$e(t)},e.prototype.contain=function(t){return zh(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Gh(this.parse(t),this._extent)},e.prototype.scale=function(t){return Fh(t,this._extent)},e.type="time",e}(_a),yu=[["second",Hg],["minute",Wg],["hour",Os],["quarter-day",Os*6],["half-day",Os*12],["day",ir*1.2],["half-week",ir*3.5],["week",ir*7],["month",ir*31],["quarter",ir*95],["half-year",N0/2],["year",N0]];function IN(r,e,t,a){var n=$e(e),i=$e(t),o=function(p){return V0(n,p,a)===V0(i,p,a)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},h=function(){return f()&&o("minute")},v=function(){return h()&&o("second")},c=function(){return v()&&o("millisecond")};switch(r){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return h();case"second":return v();case"millisecond":return c()}}function LN(r,e){return r/=ir,r>16?16:r>7.5?7:r>3.5?4:r>1.5?2:1}function PN(r){var e=30*ir;return r/=e,r>6?6:r>3?3:r>2?2:1}function RN(r){return r/=Os,r>12?12:r>6?6:r>3.5?4:r>2?2:1}function $_(r,e){return r/=e?Wg:Hg,r>30?30:r>20?20:r>15?15:r>10?10:r>5?5:r>2?2:1}function EN(r){return xg(r,!0)}function kN(r,e,t){var a=new Date(r);switch(eo(e)){case"year":case"month":a[lA(t)](0);case"day":a[uA(t)](1);case"hour":a[fA(t)](0);case"minute":a[hA(t)](0);case"second":a[vA(t)](0),a[cA(t)](0)}return a.getTime()}function ON(r,e,t,a){var n=1e4,i=oA,o=0;function s(D,M,I,L,P,R,E){for(var N=new Date(M),O=M,B=N[L]();O1&&R===0&&I.unshift({value:I[0].value-O})}}for(var R=0;R=a[0]&&m<=a[1]&&h++)}var _=(a[1]-a[0])/e;if(h>_*1.5&&v>_/1.5||(u.push(g),h>_||r===i[c]))break}f=[]}}}for(var S=Pt(G(u,function(D){return Pt(D,function(M){return M.value>=a[0]&&M.value<=a[1]&&!M.notAdd})}),function(D){return D.length>0}),b=[],x=S.length-1,c=0;c0;)i*=10;var s=[Ht(VN(a[0]/i)*i),Ht(BN(a[1]/i)*i)];this._interval=i,this._niceExtent=s}},e.prototype.calcNiceExtent=function(t){Vs.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return t=dr(t)/dr(this.base),zh(t,this._extent)},e.prototype.normalize=function(t){return t=dr(t)/dr(this.base),Gh(t,this._extent)},e.prototype.scale=function(t){return t=Fh(t,this._extent),mu(this.base,t)},e.type="log",e}(ta),WC=dy.prototype;WC.getMinorTicks=Vs.getMinorTicks;WC.getLabel=Vs.getLabel;function _u(r,e){return NN(r,Sr(e))}ta.registerClass(dy);var zN=function(){function r(e,t,a){this._prepareParams(e,t,a)}return r.prototype._prepareParams=function(e,t,a){a[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var v=this._determinedMin,c=this._determinedMax;return v!=null&&(s=v,u=!0),c!=null&&(l=c,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:h}},r.prototype.modifyDataMinMax=function(e,t){this[FN[e]]=t},r.prototype.setDeterminedMinMax=function(e,t){var a=GN[e];this[a]=t},r.prototype.freeze=function(){this.frozen=!0},r}(),GN={min:"_determinedMin",max:"_determinedMax"},FN={min:"_dataMin",max:"_dataMax"};function UC(r,e,t){var a=r.rawExtentInfo;return a||(a=new zN(r,e,t),r.rawExtentInfo=a,a)}function Su(r,e){return e==null?null:no(e)?NaN:r.parse(e)}function YC(r,e){var t=r.type,a=UC(r,e,r.getExtent()).calculate();r.setBlank(a.isBlank);var n=a.min,i=a.max,o=e.ecModel;if(o&&t==="time"){var s=NC("bar",o),l=!1;if(C(s,function(h){l=l||h.getBaseAxis()===e.axis}),l){var u=BC(s),f=HN(n,i,e,u);n=f.min,i=f.max}}return{extent:[n,i],fixMin:a.minFixed,fixMax:a.maxFixed}}function HN(r,e,t,a){var n=t.axis.getExtent(),i=n[1]-n[0],o=CN(a,t.axis);if(o===void 0)return{min:r,max:e};var s=1/0;C(o,function(c){s=Math.min(c.offset,s)});var l=-1/0;C(o,function(c){l=Math.max(c.offset+c.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=e-r,h=1-(s+l)/i,v=f/h-f;return e+=v*(l/u),r-=v*(s/u),{min:r,max:e}}function li(r,e){var t=e,a=YC(r,t),n=a.extent,i=t.get("splitNumber");r instanceof dy&&(r.base=t.get("logBase"));var o=r.type,s=t.get("interval"),l=o==="interval"||o==="time";r.setExtent(n[0],n[1]),r.calcNiceExtent({splitNumber:i,fixMin:a.fixMin,fixMax:a.fixMax,minInterval:l?t.get("minInterval"):null,maxInterval:l?t.get("maxInterval"):null}),s!=null&&r.setInterval&&r.setInterval(s)}function Pl(r,e){if(e=e||r.get("type"),e)switch(e){case"category":return new Hh({ordinalMeta:r.getOrdinalMeta?r.getOrdinalMeta():r.getCategories(),extent:[1/0,-1/0]});case"time":return new py({locale:r.ecModel.getLocaleModel(),useUTC:r.ecModel.get("useUTC")});default:return new(ta.getClass(e)||_a)}}function WN(r){var e=r.scale.getExtent(),t=e[0],a=e[1];return!(t>0&&a>0||t<0&&a<0)}function ko(r){var e=r.getLabelModel().get("formatter"),t=r.type==="category"?r.scale.getExtent()[0]:null;return r.scale.type==="time"?function(a){return function(n,i){return r.scale.getFormattedLabel(n,i,a)}}(e):U(e)?function(a){return function(n){var i=r.scale.getLabel(n),o=a.replace("{value}",i??"");return o}}(e):K(e)?function(a){return function(n,i){return t!=null&&(i=n.value-t),a(gy(r,n),i,n.level!=null?{level:n.level}:null)}}(e):function(a){return r.scale.getLabel(a)}}function gy(r,e){return r.type==="category"?r.scale.getLabel(e):e.value}function UN(r){var e=r.model,t=r.scale;if(!(!e.get(["axisLabel","show"])||t.isBlank())){var a,n,i=t.getExtent();t instanceof Hh?n=t.count():(a=t.getTicks(),n=a.length);var o=r.getLabelModel(),s=ko(r),l,u=1;n>40&&(u=Math.ceil(n/40));for(var f=0;fr[1]&&(r[1]=n[1])})}var Oo=function(){function r(){}return r.prototype.getNeedCrossZero=function(){var e=this.option;return!e.scale},r.prototype.getCoordSysModel=function(){},r}();function $N(r){return Jr(null,r)}var ZN={isDimensionStacked:ma,enableDataStack:EC,getStackedDimension:hy};function qN(r,e){var t=e;e instanceof Mt||(t=new Mt(e));var a=Pl(t);return a.setExtent(r[0],r[1]),li(a,t),a}function KN(r){Xt(r,Oo)}function jN(r,e){return e=e||{},Nt(r,null,null,e.state!=="normal")}const y7=Object.freeze(Object.defineProperty({__proto__:null,createDimensions:sN,createList:$N,createScale:qN,createSymbol:Zt,createTextStyle:jN,dataStack:ZN,enableHoverEmphasis:Ya,getECData:nt,getLayoutRect:jt,mixinAxisModelCommonMethods:KN},Symbol.toStringTag,{value:"Module"}));var QN=1e-8;function q_(r,e){return Math.abs(r-e)n&&(a=o,n=l)}if(a)return tB(a.exterior);var u=this.getBoundingRect();return[u.x+u.width/2,u.y+u.height/2]},e.prototype.getBoundingRect=function(t){var a=this._rect;if(a&&!t)return a;var n=[1/0,1/0],i=[-1/0,-1/0],o=this.geometries;return C(o,function(s){s.type==="polygon"?K_(s.exterior,n,i,t):C(s.points,function(l){K_(l,n,i,t)})}),isFinite(n[0])&&isFinite(n[1])&&isFinite(i[0])&&isFinite(i[1])||(n[0]=n[1]=i[0]=i[1]=0),a=new ht(n[0],n[1],i[0]-n[0],i[1]-n[1]),t||(this._rect=a),a},e.prototype.contain=function(t){var a=this.getBoundingRect(),n=this.geometries;if(!a.contain(t[0],t[1]))return!1;t:for(var i=0,o=n.length;i>1^-(s&1),l=l>>1^-(l&1),s+=n,l+=i,n=s,i=l,a.push([s/t,l/t])}return a}function aB(r,e){return r=rB(r),G(Pt(r.features,function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0}),function(t){var a=t.properties,n=t.geometry,i=[];switch(n.type){case"Polygon":var o=n.coordinates;i.push(new j_(o[0],o.slice(1)));break;case"MultiPolygon":C(n.coordinates,function(l){l[0]&&i.push(new j_(l[0],l.slice(1)))});break;case"LineString":i.push(new Q_([n.coordinates]));break;case"MultiLineString":i.push(new Q_(n.coordinates))}var s=new ZC(a[e||"name"],i,a.cp);return s.properties=a,s})}const m7=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:Gp,asc:Ue,getPercentWithPrecision:U2,getPixelPrecision:_g,getPrecision:Sr,getPrecisionSafe:oT,isNumeric:bg,isRadianAroundZero:io,linearMap:Lt,nice:xg,numericToNumber:Zr,parseDate:$e,quantile:Ku,quantity:lT,quantityExponent:_h,reformIntervals:Fp,remRadian:Sg,round:Ht},Symbol.toStringTag,{value:"Module"})),_7=Object.freeze(Object.defineProperty({__proto__:null,format:Il,parse:$e},Symbol.toStringTag,{value:"Module"})),S7=Object.freeze(Object.defineProperty({__proto__:null,Arc:Cl,BezierCurve:So,BoundingRect:ht,Circle:Kr,CompoundPath:Ch,Ellipse:Al,Group:at,Image:oe,IncrementalDisplayable:XT,Line:Jt,LinearGradient:xo,Polygon:Se,Polyline:be,RadialGradient:kg,Rect:wt,Ring:_o,Sector:_e,Text:bt,clipPointsByRect:Vg,clipRectByRect:jT,createIcon:wo,extendPath:qT,extendShape:ZT,getShapeClass:Dh,getTransform:Xa,initProps:Vt,makeImage:Ng,makePath:Dl,mergePath:We,registerShape:hr,resizePath:Bg,updateProps:Dt},Symbol.toStringTag,{value:"Module"})),x7=Object.freeze(Object.defineProperty({__proto__:null,addCommas:Yg,capitalFirst:pE,encodeHTML:Me,formatTime:cE,formatTpl:$g,getTextRect:hE,getTooltipMarker:pA,normalizeCssArray:pi,toCamelCase:Xg,truncateText:_T},Symbol.toStringTag,{value:"Module"})),b7=Object.freeze(Object.defineProperty({__proto__:null,bind:X,clone:et,curry:it,defaults:Q,each:C,extend:V,filter:Pt,indexOf:vt,inherits:hg,isArray:z,isFunction:K,isObject:tt,isString:U,map:G,merge:st,reduce:lr},Symbol.toStringTag,{value:"Module"}));var il=Tt();function KC(r,e){var t=G(e,function(a){return r.scale.parse(a)});return r.type==="time"&&t.length>0&&(t.sort(),t.unshift(t[0]),t.push(t[t.length-1])),t}function nB(r){var e=r.getLabelModel().get("customValues");if(e){var t=ko(r);return{labels:KC(r,e).map(function(a){var n={value:a};return{formattedLabel:t(n),rawLabel:r.scale.getLabel(n),tickValue:a}})}}return r.type==="category"?oB(r):lB(r)}function iB(r,e){var t=r.getTickModel().get("customValues");return t?{ticks:KC(r,t)}:r.type==="category"?sB(r,e):{ticks:G(r.scale.getTicks(),function(a){return a.value})}}function oB(r){var e=r.getLabelModel(),t=jC(r,e);return!e.get("show")||r.scale.isBlank()?{labels:[],labelCategoryInterval:t.labelCategoryInterval}:t}function jC(r,e){var t=QC(r,"labels"),a=yy(e),n=JC(t,a);if(n)return n;var i,o;return K(a)?i=rD(r,a):(o=a==="auto"?uB(r):a,i=eD(r,o)),tD(t,a,{labels:i,labelCategoryInterval:o})}function sB(r,e){var t=QC(r,"ticks"),a=yy(e),n=JC(t,a);if(n)return n;var i,o;if((!e.get("show")||r.scale.isBlank())&&(i=[]),K(a))i=rD(r,a,!0);else if(a==="auto"){var s=jC(r,r.getLabelModel());o=s.labelCategoryInterval,i=G(s.labels,function(l){return l.tickValue})}else o=a,i=eD(r,o,!0);return tD(t,a,{ticks:i,tickCategoryInterval:o})}function lB(r){var e=r.scale.getTicks(),t=ko(r);return{labels:G(e,function(a,n){return{level:a.level,formattedLabel:t(a,n),rawLabel:r.scale.getLabel(a),tickValue:a.value}})}}function QC(r,e){return il(r)[e]||(il(r)[e]=[])}function JC(r,e){for(var t=0;t40&&(s=Math.max(1,Math.floor(o/40)));for(var l=i[0],u=r.dataToCoord(l+1)-r.dataToCoord(l),f=Math.abs(u*Math.cos(a)),h=Math.abs(u*Math.sin(a)),v=0,c=0;l<=i[1];l+=s){var p=0,d=0,g=bl(t({value:l}),e.font,"center","top");p=g.width*1.3,d=g.height*1.3,v=Math.max(v,p,7),c=Math.max(c,d,7)}var y=v/f,m=c/h;isNaN(y)&&(y=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(y,m))),S=il(r.model),b=r.getExtent(),x=S.lastAutoInterval,w=S.lastTickCount;return x!=null&&w!=null&&Math.abs(x-_)<=1&&Math.abs(w-o)<=1&&x>_&&S.axisExtent0===b[0]&&S.axisExtent1===b[1]?_=x:(S.lastTickCount=o,S.lastAutoInterval=_,S.axisExtent0=b[0],S.axisExtent1=b[1]),_}function hB(r){var e=r.getLabelModel();return{axisRotate:r.getRotate?r.getRotate():r.isHorizontal&&!r.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function eD(r,e,t){var a=ko(r),n=r.scale,i=n.getExtent(),o=r.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=i[0],f=n.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var h=XC(r),v=o.get("showMinLabel")||h,c=o.get("showMaxLabel")||h;v&&u!==i[0]&&d(i[0]);for(var p=u;p<=i[1];p+=l)d(p);c&&p-l!==i[1]&&d(i[1]);function d(g){var y={value:g};s.push(t?g:{formattedLabel:a(y),rawLabel:n.getLabel(y),tickValue:g})}return s}function rD(r,e,t){var a=r.scale,n=ko(r),i=[];return C(a.getTicks(),function(o){var s=a.getLabel(o),l=o.value;e(o.value,s)&&i.push(t?l:{formattedLabel:n(o),rawLabel:s,tickValue:l})}),i}var J_=[0,1],Lr=function(){function r(e,t,a){this.onBand=!1,this.inverse=!1,this.dim=e,this.scale=t,this._extent=a||[0,0]}return r.prototype.contain=function(e){var t=this._extent,a=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]);return e>=a&&e<=n},r.prototype.containData=function(e){return this.scale.contain(e)},r.prototype.getExtent=function(){return this._extent.slice()},r.prototype.getPixelPrecision=function(e){return _g(e||this.scale.getExtent(),this._extent)},r.prototype.setExtent=function(e,t){var a=this._extent;a[0]=e,a[1]=t},r.prototype.dataToCoord=function(e,t){var a=this._extent,n=this.scale;return e=n.normalize(e),this.onBand&&n.type==="ordinal"&&(a=a.slice(),t1(a,n.count())),Lt(e,J_,a,t)},r.prototype.coordToData=function(e,t){var a=this._extent,n=this.scale;this.onBand&&n.type==="ordinal"&&(a=a.slice(),t1(a,n.count()));var i=Lt(e,a,J_,t);return this.scale.scale(i)},r.prototype.pointToData=function(e,t){},r.prototype.getTicksCoords=function(e){e=e||{};var t=e.tickModel||this.getTickModel(),a=iB(this,t),n=a.ticks,i=G(n,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=t.get("alignWithLabel");return vB(this,i,o,e.clamp),i},r.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var e=this.model.getModel("minorTick"),t=e.get("splitNumber");t>0&&t<100||(t=5);var a=this.scale.getMinorTicks(t),n=G(a,function(i){return G(i,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return n},r.prototype.getViewLabels=function(){return nB(this).labels},r.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},r.prototype.getTickModel=function(){return this.model.getModel("axisTick")},r.prototype.getBandWidth=function(){var e=this._extent,t=this.scale.getExtent(),a=t[1]-t[0]+(this.onBand?1:0);a===0&&(a=1);var n=Math.abs(e[1]-e[0]);return Math.abs(n)/a},r.prototype.calculateCategoryInterval=function(){return fB(this)},r}();function t1(r,e){var t=r[1]-r[0],a=e,n=t/a/2;r[0]+=n,r[1]-=n}function vB(r,e,t,a){var n=e.length;if(!r.onBand||t||!n)return;var i=r.getExtent(),o,s;if(n===1)e[0].coord=i[0],o=e[1]={coord:i[1]};else{var l=e[n-1].tickValue-e[0].tickValue,u=(e[n-1].coord-e[0].coord)/l;C(e,function(c){c.coord-=u/2});var f=r.scale.getExtent();s=1+f[1]-e[n-1].tickValue,o={coord:e[n-1].coord+u*s},e.push(o)}var h=i[0]>i[1];v(e[0].coord,i[0])&&(a?e[0].coord=i[0]:e.shift()),a&&v(i[0],e[0].coord)&&e.unshift({coord:i[0]}),v(i[1],o.coord)&&(a?o.coord=i[1]:e.pop()),a&&v(o.coord,i[1])&&e.push({coord:i[1]});function v(c,p){return c=Ht(c),p=Ht(p),h?c>p:cn&&(n+=es);var c=Math.atan2(s,o);if(c<0&&(c+=es),c>=a&&c<=n||c+es>=a&&c+es<=n)return l[0]=f,l[1]=h,u-t;var p=t*Math.cos(a)+r,d=t*Math.sin(a)+e,g=t*Math.cos(n)+r,y=t*Math.sin(n)+e,m=(p-o)*(p-o)+(d-s)*(d-s),_=(g-o)*(g-o)+(y-s)*(y-s);return m<_?(l[0]=p,l[1]=d,Math.sqrt(m)):(l[0]=g,l[1]=y,Math.sqrt(_))}function Ff(r,e,t,a,n,i,o,s){var l=n-r,u=i-e,f=t-r,h=a-e,v=Math.sqrt(f*f+h*h);f/=v,h/=v;var c=l*f+u*h,p=c/v;s&&(p=Math.min(Math.max(p,0),1)),p*=v;var d=o[0]=r+p*f,g=o[1]=e+p*h;return Math.sqrt((d-n)*(d-n)+(g-i)*(g-i))}function aD(r,e,t,a,n,i,o){t<0&&(r=r+t,t=-t),a<0&&(e=e+a,a=-a);var s=r+t,l=e+a,u=o[0]=Math.min(Math.max(n,r),s),f=o[1]=Math.min(Math.max(i,e),l);return Math.sqrt((u-n)*(u-n)+(f-i)*(f-i))}var _r=[];function gB(r,e,t){var a=aD(e.x,e.y,e.width,e.height,r.x,r.y,_r);return t.set(_r[0],_r[1]),a}function yB(r,e,t){for(var a=0,n=0,i=0,o=0,s,l,u=1/0,f=e.data,h=r.x,v=r.y,c=0;c0){e=e/180*Math.PI,xr.fromArray(r[0]),Bt.fromArray(r[1]),$t.fromArray(r[2]),ft.sub(Wr,xr,Bt),ft.sub(Gr,$t,Bt);var t=Wr.len(),a=Gr.len();if(!(t<.001||a<.001)){Wr.scale(1/t),Gr.scale(1/a);var n=Wr.dot(Gr),i=Math.cos(e);if(i1&&ft.copy(De,$t),De.toArray(r[1])}}}}function mB(r,e,t){if(t<=180&&t>0){t=t/180*Math.PI,xr.fromArray(r[0]),Bt.fromArray(r[1]),$t.fromArray(r[2]),ft.sub(Wr,Bt,xr),ft.sub(Gr,$t,Bt);var a=Wr.len(),n=Gr.len();if(!(a<.001||n<.001)){Wr.scale(1/a),Gr.scale(1/n);var i=Wr.dot(e),o=Math.cos(t);if(i=l)ft.copy(De,$t);else{De.scaleAndAdd(Gr,s/Math.tan(Math.PI/2-f));var h=$t.x!==Bt.x?(De.x-Bt.x)/($t.x-Bt.x):(De.y-Bt.y)/($t.y-Bt.y);if(isNaN(h))return;h<0?ft.copy(De,Bt):h>1&&ft.copy(De,$t)}De.toArray(r[1])}}}}function nc(r,e,t,a){var n=t==="normal",i=n?r:r.ensureState(t);i.ignore=e;var o=a.get("smooth");o&&o===!0&&(o=.3),i.shape=i.shape||{},o>0&&(i.shape.smooth=o);var s=a.getModel("lineStyle").getLineStyle();n?r.useStyle(s):i.style=s}function _B(r,e){var t=e.smooth,a=e.points;if(a)if(r.moveTo(a[0][0],a[0][1]),t>0&&a.length>=3){var n=sa(a[0],a[1]),i=sa(a[1],a[2]);if(!n||!i){r.lineTo(a[1][0],a[1][1]),r.lineTo(a[2][0],a[2][1]);return}var o=Math.min(n,i)*t,s=Cs([],a[1],a[0],o/n),l=Cs([],a[1],a[2],o/i),u=Cs([],s,l,.5);r.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),r.bezierCurveTo(l[0],l[1],l[0],l[1],a[2][0],a[2][1])}else for(var f=1;f0&&i&&b(-f/o,0,o);var d=r[0],g=r[o-1],y,m;_(),y<0&&x(-y,.8),m<0&&x(m,.8),_(),S(y,m,1),S(m,y,-1),_(),y<0&&w(-y),m<0&&w(m);function _(){y=d.rect[e]-a,m=n-g.rect[e]-g.rect[t]}function S(T,A,D){if(T<0){var M=Math.min(A,-T);if(M>0){b(M*D,0,o);var I=M+T;I<0&&x(-I*D,1)}else x(-T*D,1)}}function b(T,A,D){T!==0&&(u=!0);for(var M=A;M0)for(var I=0;I0;I--){var E=D[I-1]*R;b(-E,I,o)}}}function w(T){var A=T<0?-1:1;T=Math.abs(T);for(var D=Math.ceil(T/(o-1)),M=0;M0?b(D,0,M+1):b(-D,o-M-1,o),T-=D,T<=0)return}return u}function SB(r,e,t,a){return oD(r,"x","width",e,t,a)}function sD(r,e,t,a){return oD(r,"y","height",e,t,a)}function lD(r){var e=[];r.sort(function(d,g){return g.priority-d.priority});var t=new ht(0,0,0,0);function a(d){if(!d.ignore){var g=d.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}d.ignore=!0}for(var n=0;n=0&&a.attr(i.oldLayoutSelect),vt(v,"emphasis")>=0&&a.attr(i.oldLayoutEmphasis)),Dt(a,u,t,l)}else if(a.attr(u),!Ao(a).valueAnimation){var h=ot(a.style.opacity,1);a.style.opacity=0,Vt(a,{style:{opacity:h}},t,l)}if(i.oldLayout=u,a.states.select){var c=i.oldLayoutSelect={};xu(c,u,bu),xu(c,a.states.select,bu)}if(a.states.emphasis){var p=i.oldLayoutEmphasis={};xu(p,u,bu),xu(p,a.states.emphasis,bu)}eA(a,l,f,t,t)}if(n&&!n.ignore&&!n.invisible){var i=wB(n),o=i.oldLayout,d={points:n.shape.points};o?(n.attr({shape:o}),Dt(n,{shape:d},t)):(n.setShape(d),n.style.strokePercent=0,Vt(n,{style:{strokePercent:1}},t)),i.oldLayout=d}},r}(),oc=Tt();function AB(r){r.registerUpdateLifecycle("series:beforeupdate",function(e,t,a){var n=oc(t).labelManager;n||(n=oc(t).labelManager=new TB),n.clearLabels()}),r.registerUpdateLifecycle("series:layoutlabels",function(e,t,a){var n=oc(t).labelManager;a.updatedSeries.forEach(function(i){n.addLabelsOfSeries(t.getViewOfSeriesModel(i))}),n.updateLayoutConfig(t),n.layout(t),n.processLabelsOverall()})}var sc=Math.sin,lc=Math.cos,uD=Math.PI,Mn=Math.PI*2,CB=180/uD,fD=function(){function r(){}return r.prototype.reset=function(e){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,e||4)},r.prototype.moveTo=function(e,t){this._add("M",e,t)},r.prototype.lineTo=function(e,t){this._add("L",e,t)},r.prototype.bezierCurveTo=function(e,t,a,n,i,o){this._add("C",e,t,a,n,i,o)},r.prototype.quadraticCurveTo=function(e,t,a,n){this._add("Q",e,t,a,n)},r.prototype.arc=function(e,t,a,n,i,o){this.ellipse(e,t,a,a,0,n,i,o)},r.prototype.ellipse=function(e,t,a,n,i,o,s,l){var u=s-o,f=!l,h=Math.abs(u),v=za(h-Mn)||(f?u>=Mn:-u>=Mn),c=u>0?u%Mn:u%Mn+Mn,p=!1;v?p=!0:za(h)?p=!1:p=c>=uD==!!f;var d=e+a*lc(o),g=t+n*sc(o);this._start&&this._add("M",d,g);var y=Math.round(i*CB);if(v){var m=1/this._p,_=(f?1:-1)*(Mn-m);this._add("A",a,n,y,1,+f,e+a*lc(o+_),t+n*sc(o+_)),m>.01&&this._add("A",a,n,y,0,+f,d,g)}else{var S=e+a*lc(s),b=t+n*sc(s);this._add("A",a,n,y,+p,+f,S,b)}},r.prototype.rect=function(e,t,a,n){this._add("M",e,t),this._add("l",a,0),this._add("l",0,n),this._add("l",-a,0),this._add("Z")},r.prototype.closePath=function(){this._d.length>0&&this._add("Z")},r.prototype._add=function(e,t,a,n,i,o,s,l,u){for(var f=[],h=this._p,v=1;v"}function OB(r){return""}function xy(r,e){e=e||{};var t=e.newline?` +`:"";function a(n){var i=n.children,o=n.tag,s=n.attrs,l=n.text;return kB(o,s)+(o!=="style"?Me(l):l||"")+(i?""+t+G(i,function(u){return a(u)}).join(t)+t:"")+OB(o)}return a(r)}function NB(r,e,t){t=t||{};var a=t.newline?` +`:"",n=" {"+a,i=a+"}",o=G(St(r),function(l){return l+n+G(St(r[l]),function(u){return u+":"+r[l][u]+";"}).join(a)+i}).join(a),s=G(St(e),function(l){return"@keyframes "+l+n+G(St(e[l]),function(u){return u+n+G(St(e[l][u]),function(f){var h=e[l][u][f];return f==="d"&&(h='path("'+h+'")'),f+":"+h+";"}).join(a)+i}).join(a)+i}).join(a);return!o&&!s?"":[""].join(a)}function _d(r){return{zrId:r,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function n1(r,e,t,a){return re("svg","root",{width:r,height:e,xmlns:hD,"xmlns:xlink":vD,version:"1.1",baseProfile:"full",viewBox:a?"0 0 "+r+" "+e:!1},t)}var BB=0;function pD(){return BB++}var i1={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},Pn="transform-origin";function VB(r,e,t){var a=V({},r.shape);V(a,e),r.buildPath(t,a);var n=new fD;return n.reset(qw(r)),t.rebuildPath(n,1),n.generateStr(),n.getStr()}function zB(r,e){var t=e.originX,a=e.originY;(t||a)&&(r[Pn]=t+"px "+a+"px")}var GB={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function dD(r,e){var t=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[t]=r,t}function FB(r,e,t){var a=r.shape.paths,n={},i,o;if(C(a,function(l){var u=_d(t.zrId);u.animation=!0,Wh(l,{},u,!0);var f=u.cssAnims,h=u.cssNodes,v=St(f),c=v.length;if(c){o=v[c-1];var p=f[o];for(var d in p){var g=p[d];n[d]=n[d]||{d:""},n[d].d+=g.d||""}for(var y in h){var m=h[y].animation;m.indexOf(o)>=0&&(i=m)}}}),!!i){e.d=!1;var s=dD(n,t);return i.replace(o,s)}}function o1(r){return U(r)?i1[r]?"cubic-bezier("+i1[r]+")":dg(r)?r:"":""}function Wh(r,e,t,a){var n=r.animators,i=n.length,o=[];if(r instanceof Ch){var s=FB(r,e,t);if(s)o.push(s);else if(!i)return}else if(!i)return;for(var l={},u=0;u0}).length){var pt=dD(w,t);return pt+" "+m[0]+" both"}}for(var g in l){var s=d(l[g]);s&&o.push(s)}if(o.length){var y=t.zrId+"-cls-"+pD();t.cssNodes["."+y]={animation:o.join(",")},e.class=y}}function HB(r,e,t){if(!r.ignore)if(r.isSilent()){var a={"pointer-events":"none"};s1(a,e,t)}else{var n=r.states.emphasis&&r.states.emphasis.style?r.states.emphasis.style:{},i=n.fill;if(!i){var o=r.style&&r.style.fill,s=r.states.select&&r.states.select.style&&r.states.select.style.fill,l=r.currentStates.indexOf("select")>=0&&s||o;l&&(i=mf(l))}var u=n.lineWidth;if(u){var f=!n.strokeNoScale&&r.transform?r.transform[0]:1;u=u/f}var a={cursor:"pointer"};i&&(a.fill=i),n.stroke&&(a.stroke=n.stroke),u&&(a["stroke-width"]=u),s1(a,e,t)}}function s1(r,e,t,a){var n=JSON.stringify(r),i=t.cssStyleCache[n];i||(i=t.zrId+"-cls-"+pD(),t.cssStyleCache[n]=i,t.cssNodes["."+i+":hover"]=r),e.class=e.class?e.class+" "+i:i}var ol=Math.round;function gD(r){return r&&U(r.src)}function yD(r){return r&&K(r.toDataURL)}function by(r,e,t,a){PB(function(n,i){var o=n==="fill"||n==="stroke";o&&Zw(i)?_D(e,r,n,a):o&&yg(i)?SD(t,r,n,a):o&&i==="none"?r[n]="transparent":r[n]=i},e,t,!1),qB(t,r,a)}function wy(r,e){var t=aT(e);t&&(t.each(function(a,n){a!=null&&(r[(a1+n).toLowerCase()]=a+"")}),e.isSilent()&&(r[a1+"silent"]="true"))}function l1(r){return za(r[0]-1)&&za(r[1])&&za(r[2])&&za(r[3]-1)}function WB(r){return za(r[4])&&za(r[5])}function Ty(r,e,t){if(e&&!(WB(e)&&l1(e))){var a=1e4;r.transform=l1(e)?"translate("+ol(e[4]*a)/a+" "+ol(e[5]*a)/a+")":u2(e)}}function u1(r,e,t){for(var a=r.points,n=[],i=0;i"u"){var g="Image width/height must been given explictly in svg-ssr renderer.";me(v,g),me(c,g)}else if(v==null||c==null){var y=function(D,M){if(D){var I=D.elm,L=v||M.width,P=c||M.height;D.tag==="pattern"&&(u?(P=1,L/=i.width):f&&(L=1,P/=i.height)),D.attrs.width=L,D.attrs.height=P,I&&(I.setAttribute("width",L),I.setAttribute("height",P))}},m=Cg(p,null,r,function(D){l||y(x,D),y(h,D)});m&&m.width&&m.height&&(v=v||m.width,c=c||m.height)}h=re("image","img",{href:p,width:v,height:c}),o.width=v,o.height=c}else n.svgElement&&(h=et(n.svgElement),o.width=n.svgWidth,o.height=n.svgHeight);if(h){var _,S;l?_=S=1:u?(S=1,_=o.width/i.width):f?(_=1,S=o.height/i.height):o.patternUnits="userSpaceOnUse",_!=null&&!isNaN(_)&&(o.width=_),S!=null&&!isNaN(S)&&(o.height=S);var b=Kw(n);b&&(o.patternTransform=b);var x=re("pattern","",o,[h]),w=xy(x),T=a.patternCache,A=T[w];A||(A=a.zrId+"-p"+a.patternIdx++,T[w]=A,o.id=A,x=a.defs[A]=re("pattern",A,o,[h])),e[t]=gh(A)}}function KB(r,e,t){var a=t.clipPathCache,n=t.defs,i=a[r.id];if(!i){i=t.zrId+"-c"+t.clipPathIdx++;var o={id:i};a[r.id]=i,n[i]=re("clipPath",i,o,[mD(r,t)])}e["clip-path"]=gh(i)}function v1(r){return document.createTextNode(r)}function Vn(r,e,t){r.insertBefore(e,t)}function c1(r,e){r.removeChild(e)}function p1(r,e){r.appendChild(e)}function xD(r){return r.parentNode}function bD(r){return r.nextSibling}function uc(r,e){r.textContent=e}var d1=58,jB=120,QB=re("","");function Sd(r){return r===void 0}function Vr(r){return r!==void 0}function JB(r,e,t){for(var a={},n=e;n<=t;++n){var i=r[n].key;i!==void 0&&(a[i]=n)}return a}function _s(r,e){var t=r.key===e.key,a=r.tag===e.tag;return a&&t}function sl(r){var e,t=r.children,a=r.tag;if(Vr(a)){var n=r.elm=cD(a);if(Ay(QB,r),z(t))for(e=0;ei?(p=t[l+1]==null?null:t[l+1].elm,wD(r,p,t,n,l)):Wf(r,e,a,i))}function Wi(r,e){var t=e.elm=r.elm,a=r.children,n=e.children;r!==e&&(Ay(r,e),Sd(e.text)?Vr(a)&&Vr(n)?a!==n&&tV(t,a,n):Vr(n)?(Vr(r.text)&&uc(t,""),wD(t,null,n,0,n.length-1)):Vr(a)?Wf(t,a,0,a.length-1):Vr(r.text)&&uc(t,""):r.text!==e.text&&(Vr(a)&&Wf(t,a,0,a.length-1),uc(t,e.text)))}function eV(r,e){if(_s(r,e))Wi(r,e);else{var t=r.elm,a=xD(t);sl(e),a!==null&&(Vn(a,e.elm,bD(t)),Wf(a,[r],0,0))}return e}var rV=0,aV=function(){function r(e,t,a){if(this.type="svg",this.refreshHover=g1(),this.configLayer=g1(),this.storage=t,this._opts=a=V({},a),this.root=e,this._id="zr"+rV++,this._oldVNode=n1(a.width,a.height),e&&!a.ssr){var n=this._viewport=document.createElement("div");n.style.cssText="position:relative;overflow:hidden";var i=this._svgDom=this._oldVNode.elm=cD("svg");Ay(null,this._oldVNode),n.appendChild(i),e.appendChild(n)}this.resize(a.width,a.height)}return r.prototype.getType=function(){return this.type},r.prototype.getViewportRoot=function(){return this._viewport},r.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},r.prototype.getSvgDom=function(){return this._svgDom},r.prototype.refresh=function(){if(this.root){var e=this.renderToVNode({willUpdate:!0});e.attrs.style="position:absolute;left:0;top:0;user-select:none",eV(this._oldVNode,e),this._oldVNode=e}},r.prototype.renderOneToVNode=function(e){return h1(e,_d(this._id))},r.prototype.renderToVNode=function(e){e=e||{};var t=this.storage.getDisplayList(!0),a=this._width,n=this._height,i=_d(this._id);i.animation=e.animation,i.willUpdate=e.willUpdate,i.compress=e.compress,i.emphasis=e.emphasis;var o=[],s=this._bgVNode=nV(a,n,this._backgroundColor,i);s&&o.push(s);var l=e.compress?null:this._mainVNode=re("g","main",{},[]);this._paintList(t,i,l?l.children:o),l&&o.push(l);var u=G(St(i.defs),function(v){return i.defs[v]});if(u.length&&o.push(re("defs","defs",{},u)),e.animation){var f=NB(i.cssNodes,i.cssAnims,{newline:!0});if(f){var h=re("style","stl",{},[],f);o.push(h)}}return n1(a,n,o,e.useViewBox)},r.prototype.renderToString=function(e){return e=e||{},xy(this.renderToVNode({animation:ot(e.cssAnimation,!0),emphasis:ot(e.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:ot(e.useViewBox,!0)}),{newline:!0})},r.prototype.setBackgroundColor=function(e){this._backgroundColor=e},r.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},r.prototype._paintList=function(e,t,a){for(var n=e.length,i=[],o=0,s,l,u=0,f=0;f=0&&!(v&&l&&v[d]===l[d]);d--);for(var g=p-1;g>d;g--)o--,s=i[o-1];for(var y=d+1;y=s)}}for(var h=this.__startIndex;h15)break}}P.prevElClipPaths&&y.restore()};if(m)if(m.length===0)T=g.__endIndex;else for(var D=c.dpr,M=0;M0&&e>n[0]){for(l=0;le);l++);s=a[n[l]]}if(n.splice(l+1,0,e),a[e]=t,!t.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(t.dom,u.nextSibling):o.appendChild(t.dom)}else o.firstChild?o.insertBefore(t.dom,o.firstChild):o.appendChild(t.dom);t.painter||(t.painter=this)}},r.prototype.eachLayer=function(e,t){for(var a=this._zlevelList,n=0;n0?wu:0),this._needsManuallyCompositing),f.__builtin__||fh("ZLevel "+u+" has been used by unkown layer "+f.id),f!==i&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,t(l),i=f),n.__dirty&He&&!n.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}t(l),this.eachBuiltinLayer(function(h,v){!h.__used&&h.getElementCount()>0&&(h.__dirty=!0,h.__startIndex=h.__endIndex=h.__drawIndex=0),h.__dirty&&h.__drawIndex<0&&(h.__drawIndex=h.__startIndex)})},r.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},r.prototype._clearLayer=function(e){e.clear()},r.prototype.setBackgroundColor=function(e){this._backgroundColor=e,C(this._layers,function(t){t.setUnpainted()})},r.prototype.configLayer=function(e,t){if(t){var a=this._layerConfig;a[e]?st(a[e],t,!0):a[e]=t;for(var n=0;n-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),a},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},e}(kt);function fo(r,e){var t=r.mapDimensionsAll("defaultedLabel"),a=t.length;if(a===1){var n=lo(r,e,t[0]);return n!=null?n+"":null}else if(a){for(var i=[],o=0;o=0&&a.push(e[i])}return a.join(" ")}var Rl=function(r){k(e,r);function e(t,a,n,i){var o=r.call(this)||this;return o.updateData(t,a,n,i),o}return e.prototype._createSymbol=function(t,a,n,i,o){this.removeAll();var s=Zt(t,-1,-1,2,2,null,o);s.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),s.drift=vV,this._symbolType=t,this.add(s)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){da(this.childAt(0))},e.prototype.downplay=function(){ga(this.childAt(0))},e.prototype.setZ=function(t,a){var n=this.childAt(0);n.zlevel=t,n.z=a},e.prototype.setDraggable=function(t,a){var n=this.childAt(0);n.draggable=t,n.cursor=!a&&t?"move":n.cursor},e.prototype.updateData=function(t,a,n,i){this.silent=!1;var o=t.getItemVisual(a,"symbol")||"circle",s=t.hostModel,l=e.getSymbolSize(t,a),u=o!==this._symbolType,f=i&&i.disableAnimation;if(u){var h=t.getItemVisual(a,"symbolKeepAspect");this._createSymbol(o,t,a,l,h)}else{var v=this.childAt(0);v.silent=!1;var c={scaleX:l[0]/2,scaleY:l[1]/2};f?v.attr(c):Dt(v,c,s,a),Ir(v)}if(this._updateCommon(t,a,l,n,i),u){var v=this.childAt(0);if(!f){var c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:v.style.opacity}};v.scaleX=v.scaleY=0,v.style.opacity=0,Vt(v,c,s,a)}}f&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,a,n,i,o){var s=this.childAt(0),l=t.hostModel,u,f,h,v,c,p,d,g,y;if(i&&(u=i.emphasisItemStyle,f=i.blurItemStyle,h=i.selectItemStyle,v=i.focus,c=i.blurScope,d=i.labelStatesModels,g=i.hoverScale,y=i.cursorStyle,p=i.emphasisDisabled),!i||t.hasItemOption){var m=i&&i.itemModel?i.itemModel:t.getItemModel(a),_=m.getModel("emphasis");u=_.getModel("itemStyle").getItemStyle(),h=m.getModel(["select","itemStyle"]).getItemStyle(),f=m.getModel(["blur","itemStyle"]).getItemStyle(),v=_.get("focus"),c=_.get("blurScope"),p=_.get("disabled"),d=ne(m),g=_.getShallow("scale"),y=m.getShallow("cursor")}var S=t.getItemVisual(a,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var b=di(t.getItemVisual(a,"symbolOffset"),n);b&&(s.x=b[0],s.y=b[1]),y&&s.attr("cursor",y);var x=t.getItemVisual(a,"style"),w=x.fill;if(s instanceof oe){var T=s.style;s.useStyle(V({image:T.image,x:T.x,y:T.y,width:T.width,height:T.height},x))}else s.__isEmptyBrush?s.useStyle(V({},x)):s.useStyle(x),s.style.decal=null,s.setColor(w,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var A=t.getItemVisual(a,"liftZ"),D=this._z2;A!=null?D==null&&(this._z2=s.z2,s.z2+=A):D!=null&&(s.z2=D,this._z2=null);var M=o&&o.useNameLabel;ve(s,d,{labelFetcher:l,labelDataIndex:a,defaultText:I,inheritColor:w,defaultOpacity:x.opacity});function I(R){return M?t.getName(R):fo(t,R)}this._sizeX=n[0]/2,this._sizeY=n[1]/2;var L=s.ensureState("emphasis");L.style=u,s.ensureState("select").style=h,s.ensureState("blur").style=f;var P=g==null||g===!0?Math.max(1.1,3/this._sizeY):isFinite(g)&&g>0?+g:1;L.scaleX=this._sizeX*P,L.scaleY=this._sizeY*P,this.setSymbolScale(1),Wt(this,v,c,p)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,a,n){var i=this.childAt(0),o=nt(this).dataIndex,s=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var l=i.getTextContent();l&&Qa(l,{style:{opacity:0}},a,{dataIndex:o,removeOpt:s,cb:function(){i.removeTextContent()}})}else i.removeTextContent();Qa(i,{style:{opacity:0},scaleX:0,scaleY:0},a,{dataIndex:o,cb:t,removeOpt:s})},e.getSymbolSize=function(t,a){return Ro(t.getItemVisual(a,"symbolSize"))},e}(at);function vV(r,e){this.parent.drift(r,e)}function hc(r,e,t,a){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(a.isIgnore&&a.isIgnore(t))&&!(a.clipShape&&!a.clipShape.contain(e[0],e[1]))&&r.getItemVisual(t,"symbol")!=="none"}function _1(r){return r!=null&&!tt(r)&&(r={isIgnore:r}),r||{}}function S1(r){var e=r.hostModel,t=e.getModel("emphasis");return{emphasisItemStyle:t.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:t.get("focus"),blurScope:t.get("blurScope"),emphasisDisabled:t.get("disabled"),hoverScale:t.get("scale"),labelStatesModels:ne(e),cursorStyle:e.get("cursor")}}var El=function(){function r(e){this.group=new at,this._SymbolCtor=e||Rl}return r.prototype.updateData=function(e,t){this._progressiveEls=null,t=_1(t);var a=this.group,n=e.hostModel,i=this._data,o=this._SymbolCtor,s=t.disableAnimation,l=S1(e),u={disableAnimation:s},f=t.getSymbolPoint||function(h){return e.getItemLayout(h)};i||a.removeAll(),e.diff(i).add(function(h){var v=f(h);if(hc(e,v,h,t)){var c=new o(e,h,l,u);c.setPosition(v),e.setItemGraphicEl(h,c),a.add(c)}}).update(function(h,v){var c=i.getItemGraphicEl(v),p=f(h);if(!hc(e,p,h,t)){a.remove(c);return}var d=e.getItemVisual(h,"symbol")||"circle",g=c&&c.getSymbolType&&c.getSymbolType();if(!c||g&&g!==d)a.remove(c),c=new o(e,h,l,u),c.setPosition(p);else{c.updateData(e,h,l,u);var y={x:p[0],y:p[1]};s?c.attr(y):Dt(c,y,n)}a.add(c),e.setItemGraphicEl(h,c)}).remove(function(h){var v=i.getItemGraphicEl(h);v&&v.fadeOut(function(){a.remove(v)},n)}).execute(),this._getSymbolPoint=f,this._data=e},r.prototype.updateLayout=function(){var e=this,t=this._data;t&&t.eachItemGraphicEl(function(a,n){var i=e._getSymbolPoint(n);a.setPosition(i),a.markRedraw()})},r.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=S1(e),this._data=null,this.group.removeAll()},r.prototype.incrementalUpdate=function(e,t,a){this._progressiveEls=[],a=_1(a);function n(l){l.isGroup||(l.incremental=!0,l.ensureState("emphasis").hoverLayer=!0)}for(var i=e.start;i0?t=a[0]:a[1]<0&&(t=a[1]),t}function CD(r,e,t,a){var n=NaN;r.stacked&&(n=t.get(t.getCalculationInfo("stackedOverDimension"),a)),isNaN(n)&&(n=r.valueStart);var i=r.baseDataOffset,o=[];return o[i]=t.get(r.baseDim,a),o[1-i]=n,e.dataToPoint(o)}function pV(r,e){var t=[];return e.diff(r).add(function(a){t.push({cmd:"+",idx:a})}).update(function(a,n){t.push({cmd:"=",idx:n,idx1:a})}).remove(function(a){t.push({cmd:"-",idx:a})}).execute(),t}function dV(r,e,t,a,n,i,o,s){for(var l=pV(r,e),u=[],f=[],h=[],v=[],c=[],p=[],d=[],g=AD(n,e,o),y=r.getLayout("points")||[],m=e.getLayout("points")||[],_=0;_=n||d<0)break;if(ti(y,m)){if(l){d+=i;continue}break}if(d===t)r[i>0?"moveTo":"lineTo"](y,m),h=y,v=m;else{var _=y-u,S=m-f;if(_*_+S*S<.5){d+=i;continue}if(o>0){for(var b=d+i,x=e[b*2],w=e[b*2+1];x===y&&w===m&&g=a||ti(x,w))c=y,p=m;else{D=x-u,M=w-f;var P=y-u,R=x-y,E=m-f,N=w-m,O=void 0,B=void 0;if(s==="x"){O=Math.abs(P),B=Math.abs(R);var F=D>0?1:-1;c=y-F*O*o,p=m,I=y+F*B*o,L=m}else if(s==="y"){O=Math.abs(E),B=Math.abs(N);var H=M>0?1:-1;c=y,p=m-H*O*o,I=y,L=m+H*B*o}else O=Math.sqrt(P*P+E*E),B=Math.sqrt(R*R+N*N),A=B/(B+O),c=y-D*o*(1-A),p=m-M*o*(1-A),I=y+D*o*A,L=m+M*o*A,I=Ia(I,La(x,y)),L=Ia(L,La(w,m)),I=La(I,Ia(x,y)),L=La(L,Ia(w,m)),D=I-y,M=L-m,c=y-D*O/B,p=m-M*O/B,c=Ia(c,La(u,y)),p=Ia(p,La(f,m)),c=La(c,Ia(u,y)),p=La(p,Ia(f,m)),D=y-c,M=m-p,I=y+D*B/O,L=m+M*B/O}r.bezierCurveTo(h,v,c,p,y,m),h=I,v=L}else r.lineTo(y,m)}u=y,f=m,d+=i}return g}var DD=function(){function r(){this.smooth=0,this.smoothConstraint=!0}return r}(),gV=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="ec-polyline",a}return e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new DD},e.prototype.buildPath=function(t,a){var n=a.points,i=0,o=n.length/2;if(a.connectNulls){for(;o>0&&ti(n[o*2-2],n[o*2-1]);o--);for(;i=0){var S=u?(p-l)*_+l:(c-s)*_+s;return u?[t,S]:[S,t]}s=c,l=p;break;case o.C:c=i[h++],p=i[h++],d=i[h++],g=i[h++],y=i[h++],m=i[h++];var b=u?gf(s,c,d,y,t,f):gf(l,p,g,m,t,f);if(b>0)for(var x=0;x=0){var S=u?te(l,p,g,m,w):te(s,c,d,y,w);return u?[t,S]:[S,t]}}s=y,l=m;break}}},e}(yt),yV=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e}(DD),MD=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="ec-polygon",a}return e.prototype.getDefaultShape=function(){return new yV},e.prototype.buildPath=function(t,a){var n=a.points,i=a.stackedOnPoints,o=0,s=n.length/2,l=a.smoothMonotone;if(a.connectNulls){for(;s>0&&ti(n[s*2-2],n[s*2-1]);s--);for(;oe){i?t.push(o(i,l,e)):n&&t.push(o(n,l,0),o(n,l,e));break}else n&&(t.push(o(n,l,0)),n=null),t.push(l),i=l}return t}function SV(r,e,t){var a=r.getVisual("visualMeta");if(!(!a||!a.length||!r.count())&&e.type==="cartesian2d"){for(var n,i,o=a.length-1;o>=0;o--){var s=r.getDimensionInfo(a[o].dimension);if(n=s&&s.coordDim,n==="x"||n==="y"){i=a[o];break}}if(i){var l=e.getAxis(n),u=G(i.stops,function(_){return{coord:l.toGlobalCoord(l.dataToCoord(_.value)),color:_.color}}),f=u.length,h=i.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),h.reverse());var v=_V(u,n==="x"?t.getWidth():t.getHeight()),c=v.length;if(!c&&f)return u[0].coord<0?h[1]?h[1]:u[f-1].color:h[0]?h[0]:u[0].color;var p=10,d=v[0].coord-p,g=v[c-1].coord+p,y=g-d;if(y<.001)return"transparent";C(v,function(_){_.offset=(_.coord-d)/y}),v.push({offset:c?v[c-1].offset:.5,color:h[1]||"transparent"}),v.unshift({offset:c?v[0].offset:.5,color:h[0]||"transparent"});var m=new xo(0,0,0,0,v,!0);return m[n]=d,m[n+"2"]=g,m}}}function xV(r,e,t){var a=r.get("showAllSymbol"),n=a==="auto";if(!(a&&!n)){var i=t.getAxesByScale("ordinal")[0];if(i&&!(n&&bV(i,e))){var o=e.mapDimension(i.dim),s={};return C(i.getViewLabels(),function(l){var u=i.scale.getRawOrdinalNumber(l.tickValue);s[u]=1}),function(l){return!s.hasOwnProperty(e.get(o,l))}}}}function bV(r,e){var t=r.getExtent(),a=Math.abs(t[1]-t[0])/r.scale.count();isNaN(a)&&(a=0);for(var n=e.count(),i=Math.max(1,Math.round(n/5)),o=0;oa)return!1;return!0}function wV(r,e){return isNaN(r)||isNaN(e)}function TV(r){for(var e=r.length/2;e>0&&wV(r[e*2-2],r[e*2-1]);e--);return e-1}function A1(r,e){return[r[e*2],r[e*2+1]]}function AV(r,e,t){for(var a=r.length/2,n=t==="x"?0:1,i,o,s=0,l=-1,u=0;u=e||i>=e&&o<=e){l=u;break}s=u,i=o}return{range:[s,l],t:(e-i)/(o-i)}}function PD(r){if(r.get(["endLabel","show"]))return!0;for(var e=0;e0&&t.get(["emphasis","lineStyle","width"])==="bolder"){var F=d.getState("emphasis").style;F.lineWidth=+d.style.lineWidth+1}nt(d).seriesIndex=t.seriesIndex,Wt(d,N,O,B);var H=T1(t.get("smooth")),Y=t.get("smoothMonotone");if(d.setShape({smooth:H,smoothMonotone:Y,connectNulls:T}),g){var j=l.getCalculationInfo("stackedOnSeries"),J=0;g.useStyle(Q(f.getAreaStyle(),{fill:L,opacity:.7,lineJoin:"bevel",decal:l.getVisual("style").decal})),j&&(J=T1(j.get("smooth"))),g.setShape({smooth:H,stackedOnSmooth:J,smoothMonotone:Y,connectNulls:T}),he(g,t,"areaStyle"),nt(g).seriesIndex=t.seriesIndex,Wt(g,N,O,B)}var ct=function(xt){i._changePolyState(xt)};l.eachItemGraphicEl(function(xt){xt&&(xt.onHoverStateChange=ct)}),this._polyline.onHoverStateChange=ct,this._data=l,this._coordSys=o,this._stackedOnPoints=x,this._points=h,this._step=M,this._valueOrigin=S,t.get("triggerLineEvent")&&(this.packEventData(t,d),g&&this.packEventData(t,g))},e.prototype.packEventData=function(t,a){nt(a).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,a,n,i){var o=t.getData(),s=ni(o,i);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=o.getLayout("points"),u=o.getItemGraphicEl(s);if(!u){var f=l[s*2],h=l[s*2+1];if(isNaN(f)||isNaN(h)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(f,h))return;var v=t.get("zlevel")||0,c=t.get("z")||0;u=new Rl(o,s),u.x=f,u.y=h,u.setZ(v,c);var p=u.getSymbolPath().getTextContent();p&&(p.zlevel=v,p.z=c,p.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else Rt.prototype.highlight.call(this,t,a,n,i)},e.prototype.downplay=function(t,a,n,i){var o=t.getData(),s=ni(o,i);if(this._changePolyState("normal"),s!=null&&s>=0){var l=o.getItemGraphicEl(s);l&&(l.__temp?(o.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else Rt.prototype.downplay.call(this,t,a,n,i)},e.prototype._changePolyState=function(t){var a=this._polygon;wf(this._polyline,t),a&&wf(a,t)},e.prototype._newPolyline=function(t){var a=this._polyline;return a&&this._lineGroup.remove(a),a=new gV({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(a),this._polyline=a,a},e.prototype._newPolygon=function(t,a){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new MD({shape:{points:t,stackedOnPoints:a},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,a,n){var i,o,s=a.getBaseAxis(),l=s.inverse;a.type==="cartesian2d"?(i=s.isHorizontal(),o=!1):a.type==="polar"&&(i=s.dim==="angle",o=!0);var u=t.hostModel,f=u.get("animationDuration");K(f)&&(f=f(null));var h=u.get("animationDelay")||0,v=K(h)?h(null):h;t.eachItemGraphicEl(function(c,p){var d=c;if(d){var g=[c.x,c.y],y=void 0,m=void 0,_=void 0;if(n)if(o){var S=n,b=a.pointToCoord(g);i?(y=S.startAngle,m=S.endAngle,_=-b[1]/180*Math.PI):(y=S.r0,m=S.r,_=b[0])}else{var x=n;i?(y=x.x,m=x.x+x.width,_=c.x):(y=x.y+x.height,m=x.y,_=c.y)}var w=m===y?0:(_-y)/(m-y);l&&(w=1-w);var T=K(h)?h(p):f*w+v,A=d.getSymbolPath(),D=A.getTextContent();d.attr({scaleX:0,scaleY:0}),d.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:T}),D&&D.animateFrom({style:{opacity:0}},{duration:300,delay:T}),A.disableLabelAnimation=!0}})},e.prototype._initOrUpdateEndLabel=function(t,a,n){var i=t.getModel("endLabel");if(PD(t)){var o=t.getData(),s=this._polyline,l=o.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new bt({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var f=TV(l);f>=0&&(ve(s,ne(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:f,defaultText:function(h,v,c){return c!=null?TD(o,c):fo(o,h)},enableTextSetter:!0},CV(i,a)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,a,n,i,o,s,l){var u=this._endLabel,f=this._polyline;if(u){t<1&&i.originalX==null&&(i.originalX=u.x,i.originalY=u.y);var h=n.getLayout("points"),v=n.hostModel,c=v.get("connectNulls"),p=s.get("precision"),d=s.get("distance")||0,g=l.getBaseAxis(),y=g.isHorizontal(),m=g.inverse,_=a.shape,S=m?y?_.x:_.y+_.height:y?_.x+_.width:_.y,b=(y?d:0)*(m?-1:1),x=(y?0:-d)*(m?-1:1),w=y?"x":"y",T=AV(h,S,w),A=T.range,D=A[1]-A[0],M=void 0;if(D>=1){if(D>1&&!c){var I=A1(h,A[0]);u.attr({x:I[0]+b,y:I[1]+x}),o&&(M=v.getRawValue(A[0]))}else{var I=f.getPointOn(S,w);I&&u.attr({x:I[0]+b,y:I[1]+x});var L=v.getRawValue(A[0]),P=v.getRawValue(A[1]);o&&(M=gT(n,p,L,P,T.t))}i.lastFrameIndex=A[0]}else{var R=t===1||i.lastFrameIndex>0?A[0]:0,I=A1(h,R);o&&(M=v.getRawValue(R)),u.attr({x:I[0]+b,y:I[1]+x})}if(o){var E=Ao(u);typeof E.setLabelText=="function"&&E.setLabelText(M)}}},e.prototype._doUpdateAnimation=function(t,a,n,i,o,s,l){var u=this._polyline,f=this._polygon,h=t.hostModel,v=dV(this._data,t,this._stackedOnPoints,a,this._coordSys,n,this._valueOrigin),c=v.current,p=v.stackedOnCurrent,d=v.next,g=v.stackedOnNext;if(o&&(c=Pa(v.current,n,o,l),p=Pa(v.stackedOnCurrent,n,o,l),d=Pa(v.next,n,o,l),g=Pa(v.stackedOnNext,n,o,l)),w1(c,d)>3e3||f&&w1(p,g)>3e3){u.stopAnimation(),u.setShape({points:d}),f&&(f.stopAnimation(),f.setShape({points:d,stackedOnPoints:g}));return}u.shape.__points=v.current,u.shape.points=c;var y={shape:{points:d}};v.current!==c&&(y.shape.__points=v.next),u.stopAnimation(),Dt(u,y,h),f&&(f.setShape({points:c,stackedOnPoints:p}),f.stopAnimation(),Dt(f,{shape:{stackedOnPoints:g}},h),u.shape.points!==f.shape.points&&(f.shape.points=u.shape.points));for(var m=[],_=v.status,S=0;S<_.length;S++){var b=_[S].cmd;if(b==="="){var x=t.getItemGraphicEl(_[S].idx1);x&&m.push({el:x,ptIdx:S})}}u.animators&&u.animators.length&&u.animators[0].during(function(){f&&f.dirtyShape();for(var w=u.shape.__points,T=0;Te&&(e=r[t]);return isFinite(e)?e:NaN},min:function(r){for(var e=1/0,t=0;te&&(e=i,t=n)}return isFinite(t)?t:NaN},nearest:function(r){return r[0]}},IV=function(r){return Math.round(r.length/2)};function RD(r){return{seriesType:r,reset:function(e,t,a){var n=e.getData(),i=e.get("sampling"),o=e.coordinateSystem,s=n.count();if(s>10&&o.type==="cartesian2d"&&i){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),h=a.getDevicePixelRatio(),v=Math.abs(f[1]-f[0])*(h||1),c=Math.round(s/v);if(isFinite(c)&&c>1){i==="lttb"&&e.setData(n.lttbDownSample(n.mapDimension(u.dim),1/c));var p=void 0;U(i)?p=MV[i]:K(i)&&(p=i),p&&e.setData(n.downSample(n.mapDimension(u.dim),1/c,p,IV))}}}}}function LV(r){r.registerChartView(DV),r.registerSeriesModel(hV),r.registerLayout(Ol("line",!0)),r.registerVisual({seriesType:"line",reset:function(e){var t=e.getData(),a=e.getModel("lineStyle").getLineStyle();a&&!a.stroke&&(a.stroke=t.getVisual("style").fill),t.setVisual("legendLineStyle",a)}}),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,RD("line"))}var ll=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){return Jr(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t,a,n){var i=this.coordinateSystem;if(i&&i.clampData){var o=i.clampData(t),s=i.dataToPoint(o);if(n)C(i.getAxes(),function(v,c){if(v.type==="category"&&a!=null){var p=v.getTicksCoords(),d=v.getTickModel().get("alignWithLabel"),g=o[c],y=a[c]==="x1"||a[c]==="y1";if(y&&!d&&(g+=1),p.length<2)return;if(p.length===2){s[c]=v.toGlobalCoord(v.getExtent()[y?1:0]);return}for(var m=void 0,_=void 0,S=1,b=0;bg){_=(x+m)/2;break}b===1&&(S=w-p[0].tickValue)}_==null&&(m?m&&(_=p[p.length-1].coord):_=p[0].coord),s[c]=v.toGlobalCoord(_)}});else{var l=this.getData(),u=l.getLayout("offset"),f=l.getLayout("size"),h=i.getBaseAxis().isHorizontal()?0:1;s[h]+=u+f/2}return s}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(kt);kt.registerClass(ll);var PV=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(){return Jr(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),a=this.get("largeThreshold");return a>t&&(t=a),t},e.prototype.brushSelector=function(t,a,n){return n.rect(a.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=on(ll.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(ll),RV=function(){function r(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return r}(),Uf=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="sausage",a}return e.prototype.getDefaultShape=function(){return new RV},e.prototype.buildPath=function(t,a){var n=a.cx,i=a.cy,o=Math.max(a.r0||0,0),s=Math.max(a.r,0),l=(s-o)*.5,u=o+l,f=a.startAngle,h=a.endAngle,v=a.clockwise,c=Math.PI*2,p=v?h-fMath.PI/2&&fs)return!0;s=h}return!1},e.prototype._isOrderDifferentInView=function(t,a){for(var n=a.scale,i=n.getExtent(),o=Math.max(0,i[0]),s=Math.min(i[1],n.getOrdinalMeta().categories.length-1);o<=s;++o)if(t.ordinalNumbers[o]!==n.getRawOrdinalNumber(o))return!0},e.prototype._updateSortWithinSameData=function(t,a,n,i){if(this._isOrderChangedWithinSameData(t,a,n)){var o=this._dataSort(t,n,a);this._isOrderDifferentInView(o,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:o}))}},e.prototype._dispatchInitSort=function(t,a,n){var i=a.baseAxis,o=this._dataSort(t,i,function(s){return t.get(t.mapDimension(a.otherAxis.dim),s)});n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:o})},e.prototype.remove=function(t,a){this._clear(this._model),this._removeOnRenderedListener(a)},e.prototype.dispose=function(t,a){this._removeOnRenderedListener(a)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var a=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(i){Qs(i,t,nt(i).dataIndex)})):a.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Rt),C1={cartesian2d:function(r,e){var t=e.width<0?-1:1,a=e.height<0?-1:1;t<0&&(e.x+=e.width,e.width=-e.width),a<0&&(e.y+=e.height,e.height=-e.height);var n=r.x+r.width,i=r.y+r.height,o=cc(e.x,r.x),s=pc(e.x+e.width,n),l=cc(e.y,r.y),u=pc(e.y+e.height,i),f=sn?s:o,e.y=h&&l>i?u:l,e.width=f?0:s-o,e.height=h?0:u-l,t<0&&(e.x+=e.width,e.width=-e.width),a<0&&(e.y+=e.height,e.height=-e.height),f||h},polar:function(r,e){var t=e.r0<=e.r?1:-1;if(t<0){var a=e.r;e.r=e.r0,e.r0=a}var n=pc(e.r,r.r),i=cc(e.r0,r.r0);e.r=n,e.r0=i;var o=n-i<0;if(t<0){var a=e.r;e.r=e.r0,e.r0=a}return o}},D1={cartesian2d:function(r,e,t,a,n,i,o,s,l){var u=new wt({shape:V({},a),z2:1});if(u.__dataIndex=t,u.name="item",i){var f=u.shape,h=n?"height":"width";f[h]=0}return u},polar:function(r,e,t,a,n,i,o,s,l){var u=!n&&l?Uf:_e,f=new u({shape:a,z2:1});f.name="item";var h=ED(n);if(f.calculateTextPosition=EV(h,{isRoundCap:u===Uf}),i){var v=f.shape,c=n?"r":"endAngle",p={};v[c]=n?a.r0:a.startAngle,p[c]=a[c],(s?Dt:Vt)(f,{shape:p},i)}return f}};function BV(r,e){var t=r.get("realtimeSort",!0),a=e.getBaseAxis();if(t&&a.type==="category"&&e.type==="cartesian2d")return{baseAxis:a,otherAxis:e.getOtherAxis(a)}}function M1(r,e,t,a,n,i,o,s){var l,u;i?(u={x:a.x,width:a.width},l={y:a.y,height:a.height}):(u={y:a.y,height:a.height},l={x:a.x,width:a.width}),s||(o?Dt:Vt)(t,{shape:l},e,n,null);var f=e?r.baseAxis.model:null;(o?Dt:Vt)(t,{shape:u},f,n)}function I1(r,e){for(var t=0;t0?1:-1,o=a.height>0?1:-1;return{x:a.x+i*n/2,y:a.y+o*n/2,width:a.width-i*n,height:a.height-o*n}},polar:function(r,e,t){var a=r.getItemLayout(e);return{cx:a.cx,cy:a.cy,r0:a.r0,r:a.r,startAngle:a.startAngle,endAngle:a.endAngle,clockwise:a.clockwise}}};function GV(r){return r.startAngle!=null&&r.endAngle!=null&&r.startAngle===r.endAngle}function ED(r){return function(e){var t=e?"Arc":"Angle";return function(a){switch(a){case"start":case"insideStart":case"end":case"insideEnd":return a+t;default:return a}}}(r)}function P1(r,e,t,a,n,i,o,s){var l=e.getItemVisual(t,"style");if(s){if(!i.get("roundCap")){var f=r.shape,h=Zn(a.getModel("itemStyle"),f,!0);V(f,h),r.setShape(f)}}else{var u=a.get(["itemStyle","borderRadius"])||0;r.setShape("r",u)}r.useStyle(l);var v=a.getShallow("cursor");v&&r.attr("cursor",v);var c=s?o?n.r>=n.r0?"endArc":"startArc":n.endAngle>=n.startAngle?"endAngle":"startAngle":o?n.height>=0?"bottom":"top":n.width>=0?"right":"left",p=ne(a);ve(r,p,{labelFetcher:i,labelDataIndex:t,defaultText:fo(i.getData(),t),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=r.getTextContent();if(s&&d){var g=a.get(["label","position"]);r.textConfig.inside=g==="middle"?!0:null,kV(r,g==="outside"?c:g,ED(o),a.get(["label","rotate"]))}tA(d,p,i.getRawValue(t),function(m){return TD(e,m)});var y=a.getModel(["emphasis"]);Wt(r,y.get("focus"),y.get("blurScope"),y.get("disabled")),he(r,a),GV(n)&&(r.style.fill="none",r.style.stroke="none",C(r.states,function(m){m.style&&(m.style.fill=m.style.stroke="none")}))}function FV(r,e){var t=r.get(["itemStyle","borderColor"]);if(!t||t==="none")return 0;var a=r.get(["itemStyle","borderWidth"])||0,n=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),i=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(a,n,i)}var HV=function(){function r(){}return r}(),R1=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="largeBar",a}return e.prototype.getDefaultShape=function(){return new HV},e.prototype.buildPath=function(t,a){for(var n=a.points,i=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?t:null},30,!1);function WV(r,e,t){for(var a=r.baseDimIdx,n=1-a,i=r.shape.points,o=r.largeDataIndices,s=[],l=[],u=r.barWidth,f=0,h=i.length/3;f=s[0]&&e<=s[0]+l[0]&&t>=s[1]&&t<=s[1]+l[1])return o[f]}return-1}function kD(r,e,t){if(yi(t,"cartesian2d")){var a=e,n=t.getArea();return{x:r?a.x:n.x,y:r?n.y:a.y,width:r?a.width:n.width,height:r?n.height:a.height}}else{var n=t.getArea(),i=e;return{cx:n.cx,cy:n.cy,r0:r?n.r0:i.r0,r:r?n.r:i.r,startAngle:r?i.startAngle:0,endAngle:r?i.endAngle:Math.PI*2}}}function UV(r,e,t){var a=r.type==="polar"?_e:wt;return new a({shape:kD(e,t,r),silent:!0,z2:0})}function YV(r){r.registerChartView(NV),r.registerSeriesModel(PV),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,it(zC,"bar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,GC("bar")),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,RD("bar")),r.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(e,t){var a=e.componentType||"series";t.eachComponent({mainType:a,query:e},function(n){e.sortInfo&&n.axis.setCategorySortInfo(e.sortInfo)})})}var O1=Math.PI*2,Du=Math.PI/180;function OD(r,e){return jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function ND(r,e){var t=OD(r,e),a=r.get("center"),n=r.get("radius");z(n)||(n=[0,n]);var i=W(t.width,e.getWidth()),o=W(t.height,e.getHeight()),s=Math.min(i,o),l=W(n[0],s/2),u=W(n[1],s/2),f,h,v=r.coordinateSystem;if(v){var c=v.dataToPoint(a);f=c[0]||0,h=c[1]||0}else z(a)||(a=[a,a]),f=W(a[0],i)+t.x,h=W(a[1],o)+t.y;return{cx:f,cy:h,r0:l,r:u}}function XV(r,e,t){e.eachSeriesByType(r,function(a){var n=a.getData(),i=n.mapDimension("value"),o=OD(a,t),s=ND(a,t),l=s.cx,u=s.cy,f=s.r,h=s.r0,v=-a.get("startAngle")*Du,c=a.get("endAngle"),p=a.get("padAngle")*Du;c=c==="auto"?v-O1:-c*Du;var d=a.get("minAngle")*Du,g=d+p,y=0;n.each(i,function(N){!isNaN(N)&&y++});var m=n.getSum(i),_=Math.PI/(m||y)*2,S=a.get("clockwise"),b=a.get("roseType"),x=a.get("stillShowZeroSum"),w=n.getDataExtent(i);w[0]=0;var T=S?1:-1,A=[v,c],D=T*p/2;Dg(A,!S),v=A[0],c=A[1];var M=BD(a);M.startAngle=v,M.endAngle=c,M.clockwise=S;var I=Math.abs(c-v),L=I,P=0,R=v;if(n.setLayout({viewRect:o,r:f}),n.each(i,function(N,O){var B;if(isNaN(N)){n.setItemLayout(O,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:S,cx:l,cy:u,r0:h,r:b?NaN:f});return}b!=="area"?B=m===0&&x?_:N*_:B=I/y,BB?(H=R+T*B/2,Y=H):(H=R+D,Y=F-D),n.setItemLayout(O,{angle:B,startAngle:H,endAngle:Y,clockwise:S,cx:l,cy:u,r0:h,r:b?Lt(N,w,[h,f]):f}),R=F}),Lt?y:g,b=Math.abs(_.label.y-t);if(b>=S.maxY){var x=_.label.x-e-_.len2*n,w=a+_.len,T=Math.abs(x)r.unconstrainedWidth?null:c:null;a.setStyle("width",p)}var d=a.getBoundingRect();i.width=d.width;var g=(a.style.margin||0)+2.1;i.height=d.height+g,i.y-=(i.height-h)/2}}}function dc(r){return r.position==="center"}function qV(r){var e=r.getData(),t=[],a,n,i=!1,o=(r.get("minShowLabelAngle")||0)*$V,s=e.getLayout("viewRect"),l=e.getLayout("r"),u=s.width,f=s.x,h=s.y,v=s.height;function c(x){x.ignore=!0}function p(x){if(!x.ignore)return!0;for(var w in x.states)if(x.states[w].ignore===!1)return!0;return!1}e.each(function(x){var w=e.getItemGraphicEl(x),T=w.shape,A=w.getTextContent(),D=w.getTextGuideLine(),M=e.getItemModel(x),I=M.getModel("label"),L=I.get("position")||M.get(["emphasis","label","position"]),P=I.get("distanceToLabelLine"),R=I.get("alignTo"),E=W(I.get("edgeDistance"),u),N=I.get("bleedMargin"),O=M.getModel("labelLine"),B=O.get("length");B=W(B,u);var F=O.get("length2");if(F=W(F,u),Math.abs(T.endAngle-T.startAngle)0?"right":"left":Y>0?"left":"right"}var Ut=Math.PI,Ft=0,ce=I.get("rotate");if(Ct(ce))Ft=ce*(Ut/180);else if(L==="center")Ft=0;else if(ce==="radial"||ce===!0){var ea=Y<0?-H+Ut:-H;Ft=ea}else if(ce==="tangential"&&L!=="outside"&&L!=="outer"){var ke=Math.atan2(Y,j);ke<0&&(ke=Ut*2+ke);var Fl=j>0;Fl&&(ke=Ut+ke),Ft=ke-Ut}if(i=!!Ft,A.x=J,A.y=ct,A.rotation=Ft,A.setStyle({verticalAlign:"middle"}),rt){A.setStyle({align:pt});var jh=A.states.select;jh&&(jh.x+=A.x,jh.y+=A.y)}else{var wa=A.getBoundingRect().clone();wa.applyTransform(A.getComputedTransform());var bm=(A.style.margin||0)+2.1;wa.y-=bm/2,wa.height+=bm,t.push({label:A,labelLine:D,position:L,len:B,len2:F,minTurnAngle:O.get("minTurnAngle"),maxSurfaceAngle:O.get("maxSurfaceAngle"),surfaceNormal:new ft(Y,j),linePoints:xt,textAlign:pt,labelDistance:P,labelAlignTo:R,edgeDistance:E,bleedMargin:N,rect:wa,unconstrainedWidth:wa.width,labelStyleWidth:A.style.width})}w.setTextConfig({inside:rt})}}),!i&&r.get("avoidLabelOverlap")&&ZV(t,a,n,l,u,v,f,h);for(var d=0;d0){for(var f=o.getItemLayout(0),h=1;isNaN(f&&f.startAngle)&&h=i.r0}},e.type="pie",e}(Rt);function No(r,e,t){e=z(e)&&{coordDimensions:e}||V({encodeDefine:r.getEncode()},e);var a=r.getSource(),n=Eo(a,e).dimensions,i=new Le(n,r);return i.initData(a,t),i}var Bl=function(){function r(e,t){this._getDataWithEncodedVisual=e,this._getRawData=t}return r.prototype.getAllNames=function(){var e=this._getRawData();return e.mapArray(e.getName)},r.prototype.containName=function(e){var t=this._getRawData();return t.indexOfName(e)>=0},r.prototype.indexOfName=function(e){var t=this._getDataWithEncodedVisual();return t.indexOfName(e)},r.prototype.getItemVisual=function(e,t){var a=this._getDataWithEncodedVisual();return a.getItemVisual(e,t)},r}(),QV=Tt(),JV=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new Bl(X(this.getData,this),X(this.getRawData,this)),this._defaultLabelLine(t)},e.prototype.mergeOption=function(){r.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return No(this,{coordDimensions:["value"],encodeDefaulter:it(qg,this)})},e.prototype.getDataParams=function(t){var a=this.getData(),n=QV(a),i=n.seats;if(!i){var o=[];a.each(a.mapDimension("value"),function(l){o.push(l)}),i=n.seats=sT(o,a.hostModel.get("percentPrecision"))}var s=r.prototype.getDataParams.call(this,t);return s.percent=i[t]||0,s.$vars.push("percent"),s},e.prototype._defaultLabelLine=function(t){ai(t,"labelLine",["show"]);var a=t.labelLine,n=t.emphasis.labelLine;a.show=a.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,endAngle:"auto",padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(kt);function tz(r){return{seriesType:r,reset:function(e,t){var a=e.getData();a.filterSelf(function(n){var i=a.mapDimension("value"),o=a.get(i,n);return!(Ct(o)&&!isNaN(o)&&o<0)})}}}function ez(r){r.registerChartView(jV),r.registerSeriesModel(JV),nC("pie",r.registerAction),r.registerLayout(it(XV,"pie")),r.registerProcessor(Nl("pie")),r.registerProcessor(tz("pie"))}var rz=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t}return e.prototype.getInitialData=function(t,a){return Jr(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return t??(this.option.large?5e3:this.get("progressive"))},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return t??(this.option.large?1e4:this.get("progressiveThreshold"))},e.prototype.brushSelector=function(t,a,n){return n.point(a.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(kt),zD=4,az=function(){function r(){}return r}(),nz=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a._off=0,a.hoverDataIdx=-1,a}return e.prototype.getDefaultShape=function(){return new az},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,a){var n=a.points,i=a.size,o=this.symbolProxy,s=o.shape,l=t.getContext?t.getContext():t,u=l&&i[0]=0;u--){var f=u*2,h=i[f]-s/2,v=i[f+1]-l/2;if(t>=h&&a>=v&&t<=h+s&&a<=v+l)return u}return-1},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect();if(t=n[0],a=n[1],i.contain(t,a)){var o=this.hoverDataIdx=this.findDataIndex(t,a);return o>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var a=this.shape,n=a.points,i=a.size,o=i[0],s=i[1],l=1/0,u=1/0,f=-1/0,h=-1/0,v=0;v=0&&(u.dataIndex=h+(e.startIndex||0))})},r.prototype.remove=function(){this._clear()},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}(),oz=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this._updateSymbolDraw(i,t);o.updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,a,n){var i=t.getData(),o=this._updateSymbolDraw(i,t);o.incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,a,n){this._symbolDraw.incrementalUpdate(t,a.getData(),{clipShape:this._getClipShape(a)}),this._finished=t.end===a.getData().count()},e.prototype.updateTransform=function(t,a,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var o=Ol("").reset(t,a,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){if(t.get("clip",!0)){var a=t.coordinateSystem;return a&&a.getArea&&a.getArea(.1)}},e.prototype._updateSymbolDraw=function(t,a){var n=this._symbolDraw,i=a.pipelineContext,o=i.large;return(!n||o!==this._isLargeDraw)&&(n&&n.remove(),n=this._symbolDraw=o?new iz:new El,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,a){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Rt),sz=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(mt),bd=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Kt).models[0]},e.type="cartesian2dAxis",e}(mt);Xt(bd,Oo);var GD={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},lz=st({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},GD),Cy=st({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},GD),uz=st({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},Cy),fz=Q({logBase:10},Cy);const FD={category:lz,value:Cy,time:uz,log:fz};var hz={value:1,category:1,time:1,log:1};function ho(r,e,t,a){C(hz,function(n,i){var o=st(st({},FD[i],!0),a,!0),s=function(l){k(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=e+"Axis."+i,f}return u.prototype.mergeDefaultAndTheme=function(f,h){var v=tl(this),c=v?Do(f):{},p=h.getTheme();st(f,p.get(i+"Axis")),st(f,this.getDefaultOption()),f.type=B1(f),v&&Ja(f,c,v)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=dd.createByAxisModel(this))},u.prototype.getCategories=function(f){var h=this.option;if(h.type==="category")return f?h.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=e+"Axis."+i,u.defaultOption=o,u}(t);r.registerComponentModel(s)}),r.registerSubTypeDefaulter(e+"Axis",B1)}function B1(r){return r.type||(r.data?"category":"value")}var vz=function(){function r(e){this.type="cartesian",this._dimList=[],this._axes={},this.name=e||""}return r.prototype.getAxis=function(e){return this._axes[e]},r.prototype.getAxes=function(){return G(this._dimList,function(e){return this._axes[e]},this)},r.prototype.getAxesByScale=function(e){return e=e.toLowerCase(),Pt(this.getAxes(),function(t){return t.scale.type===e})},r.prototype.addAxis=function(e){var t=e.dim;this._axes[t]=e,this._dimList.push(t)},r}(),wd=["x","y"];function V1(r){return r.type==="interval"||r.type==="time"}var cz=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="cartesian2d",t.dimensions=wd,t}return e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,a=this.getAxis("y").scale;if(!(!V1(t)||!V1(a))){var n=t.getExtent(),i=a.getExtent(),o=this.dataToPoint([n[0],i[0]]),s=this.dataToPoint([n[1],i[1]]),l=n[1]-n[0],u=i[1]-i[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,h=(s[1]-o[1])/u,v=o[0]-n[0]*f,c=o[1]-i[0]*h,p=this._transform=[f,0,0,h,v,c];this._invTransform=vi([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var a=this.getAxis("x"),n=this.getAxis("y");return a.contain(a.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,a){var n=this.dataToPoint(t),i=this.dataToPoint(a),o=this.getArea(),s=new ht(n[0],n[1],i[0]-n[0],i[1]-n[1]);return o.intersect(s)},e.prototype.dataToPoint=function(t,a,n){n=n||[];var i=t[0],o=t[1];if(this._transform&&i!=null&&isFinite(i)&&o!=null&&isFinite(o))return le(n,t,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return n[0]=s.toGlobalCoord(s.dataToCoord(i,a)),n[1]=l.toGlobalCoord(l.dataToCoord(o,a)),n},e.prototype.clampData=function(t,a){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,o=n.getExtent(),s=i.getExtent(),l=n.parse(t[0]),u=i.parse(t[1]);return a=a||[],a[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),a[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),a},e.prototype.pointToData=function(t,a){var n=[];if(this._invTransform)return le(n,t,this._invTransform);var i=this.getAxis("x"),o=this.getAxis("y");return n[0]=i.coordToData(i.toLocalCoord(t[0]),a),n[1]=o.coordToData(o.toLocalCoord(t[1]),a),n},e.prototype.getOtherAxis=function(t){return this.getAxis(t.dim==="x"?"y":"x")},e.prototype.getArea=function(t){t=t||0;var a=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(a[0],a[1])-t,o=Math.min(n[0],n[1])-t,s=Math.max(a[0],a[1])-i+t,l=Math.max(n[0],n[1])-o+t;return new ht(i,o,s,l)},e}(vz),pz=function(r){k(e,r);function e(t,a,n,i,o){var s=r.call(this,t,a,n)||this;return s.index=0,s.type=i||"value",s.position=o||"bottom",s}return e.prototype.isHorizontal=function(){var t=this.position;return t==="top"||t==="bottom"},e.prototype.getGlobalExtent=function(t){var a=this.getExtent();return a[0]=this.toGlobalCoord(a[0]),a[1]=this.toGlobalCoord(a[1]),t&&a[0]>a[1]&&a.reverse(),a},e.prototype.pointToData=function(t,a){return this.coordToData(this.toLocalCoord(t[this.dim==="x"?0:1]),a)},e.prototype.setCategorySortInfo=function(t){if(this.type!=="category")return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(Lr);function Td(r,e,t){t=t||{};var a=r.coordinateSystem,n=e.axis,i={},o=n.getAxesOnZeroOf()[0],s=n.position,l=o?"onZero":s,u=n.dim,f=a.getRect(),h=[f.x,f.x+f.width,f.y,f.y+f.height],v={left:0,right:1,top:0,bottom:1,onZero:2},c=e.get("offset")||0,p=u==="x"?[h[2]-c,h[3]+c]:[h[0]-c,h[1]+c];if(o){var d=o.toGlobalCoord(o.dataToCoord(0));p[v.onZero]=Math.max(Math.min(d,p[1]),p[0])}i.position=[u==="y"?p[v[l]]:h[0],u==="x"?p[v[l]]:h[3]],i.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};i.labelDirection=i.tickDirection=i.nameDirection=g[s],i.labelOffset=o?p[v[s]]-p[v.onZero]:0,e.get(["axisTick","inside"])&&(i.tickDirection=-i.tickDirection),ee(t.labelInside,e.get(["axisLabel","inside"]))&&(i.labelDirection=-i.labelDirection);var y=e.get(["axisLabel","rotate"]);return i.labelRotate=l==="top"?-y:y,i.z2=1,i}function z1(r){return r.get("coordinateSystem")==="cartesian2d"}function G1(r){var e={xAxisModel:null,yAxisModel:null};return C(e,function(t,a){var n=a.replace(/Model$/,""),i=r.getReferringComponents(n,Kt).models[0];e[a]=i}),e}var gc=Math.log;function HD(r,e,t){var a=_a.prototype,n=a.getTicks.call(t),i=a.getTicks.call(t,!0),o=n.length-1,s=a.getInterval.call(t),l=YC(r,e),u=l.extent,f=l.fixMin,h=l.fixMax;if(r.type==="log"){var v=gc(r.base);u=[gc(u[0])/v,gc(u[1])/v]}r.setExtent(u[0],u[1]),r.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:h});var c=a.getExtent.call(r);f&&(u[0]=c[0]),h&&(u[1]=c[1]);var p=a.getInterval.call(r),d=u[0],g=u[1];if(f&&h)p=(g-d)/o;else if(f)for(g=u[0]+p*o;gu[0]&&isFinite(d)&&isFinite(u[0]);)p=ec(p),d=u[1]-p*o;else{var y=r.getTicks().length-1;y>o&&(p=ec(p));var m=p*o;g=Math.ceil(u[1]/p)*p,d=Ht(g-m),d<0&&u[0]>=0?(d=0,g=Ht(m)):g>0&&u[1]<=0&&(g=0,d=-Ht(m))}var _=(n[0].value-i[0].value)/s,S=(n[o].value-i[o].value)/s;a.setExtent.call(r,d+p*_,g+p*S),a.setInterval.call(r,p),(_||S)&&a.setNiceExtent.call(r,d+p,g-p)}var dz=function(){function r(e,t,a){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=wd,this._initCartesian(e,t,a),this.model=e}return r.prototype.getRect=function(){return this._rect},r.prototype.update=function(e,t){var a=this._axesMap;this._updateScale(e,this.model);function n(o){var s,l=St(o),u=l.length;if(u){for(var f=[],h=u-1;h>=0;h--){var v=+l[h],c=o[v],p=c.model,d=c.scale;gd(d)&&p.get("alignTicks")&&p.get("interval")==null?f.push(c):(li(d,p),gd(d)&&(s=c))}f.length&&(s||(s=f.pop(),li(s.scale,s.model)),C(f,function(g){HD(g.scale,g.model,s.scale)}))}}n(a.x),n(a.y);var i={};C(a.x,function(o){F1(a,"y",o,i)}),C(a.y,function(o){F1(a,"x",o,i)}),this.resize(this.model,t)},r.prototype.resize=function(e,t,a){var n=e.getBoxLayoutParams(),i=!a&&e.get("containLabel"),o=jt(n,{width:t.getWidth(),height:t.getHeight()});this._rect=o;var s=this._axesList;l(),i&&(C(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=UN(u);if(f){var h=u.isHorizontal()?"height":"width",v=u.model.get(["axisLabel","margin"]);o[h]-=f[h]+v,u.position==="top"?o.y+=f.height+v:u.position==="left"&&(o.x+=f.width+v)}}}),l()),C(this._coordsList,function(u){u.calcAffineTransform()});function l(){C(s,function(u){var f=u.isHorizontal(),h=f?[0,o.width]:[0,o.height],v=u.inverse?1:0;u.setExtent(h[v],h[1-v]),gz(u,f?o.x:o.y)})}},r.prototype.getAxis=function(e,t){var a=this._axesMap[e];if(a!=null)return a[t||0]},r.prototype.getAxes=function(){return this._axesList.slice()},r.prototype.getCartesian=function(e,t){if(e!=null&&t!=null){var a="x"+e+"y"+t;return this._coordsMap[a]}tt(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var n=0,i=this._coordsList;n0?"top":"bottom",i="center"):io(n-Ga)?(o=a>0?"bottom":"top",i="center"):(o="middle",n>0&&n0?"right":"left":i=a>0?"left":"right"),{rotation:n,textAlign:i,textVerticalAlign:o}},r.makeAxisEventDataBase=function(e){var t={componentType:e.mainType,componentIndex:e.componentIndex};return t[e.mainType+"Index"]=e.componentIndex,t},r.isLabelSilent=function(e){var t=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||t&&t.show)},r}(),W1={axisLine:function(r,e,t,a){var n=e.get(["axisLine","show"]);if(n==="auto"&&r.handleAutoShown&&(n=r.handleAutoShown("axisLine")),!!n){var i=e.axis.getExtent(),o=a.transform,s=[i[0],0],l=[i[1],0],u=s[0]>l[0];o&&(le(s,s,o),le(l,l,o));var f=V({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Jt({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:r.strokeContainThreshold||5,silent:!0,z2:1});so(h.shape,h.style.lineWidth),h.anid="line",t.add(h);var v=e.get(["axisLine","symbol"]);if(v!=null){var c=e.get(["axisLine","symbolSize"]);U(v)&&(v=[v,v]),(U(c)||Ct(c))&&(c=[c,c]);var p=di(e.get(["axisLine","symbolOffset"])||0,c),d=c[0],g=c[1];C([{rotate:r.rotation+Math.PI/2,offset:p[0],r:0},{rotate:r.rotation-Math.PI/2,offset:p[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(y,m){if(v[m]!=="none"&&v[m]!=null){var _=Zt(v[m],-d/2,-g/2,d,g,f.stroke,!0),S=y.r+y.offset,b=u?l:s;_.attr({rotation:y.rotate,x:b[0]+S*Math.cos(r.rotation),y:b[1]-S*Math.sin(r.rotation),silent:!0,z2:11}),t.add(_)}})}}},axisTickLabel:function(r,e,t,a){var n=_z(t,a,e,r),i=xz(t,a,e,r);if(mz(e,i,n),Sz(t,a,e,r.tickDirection),e.get(["axisLabel","hideOverlap"])){var o=iD(G(i,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));lD(o)}},axisName:function(r,e,t,a){var n=ee(r.axisName,e.get("name"));if(n){var i=e.get("nameLocation"),o=r.nameDirection,s=e.getModel("nameTextStyle"),l=e.get("nameGap")||0,u=e.axis.getExtent(),f=u[0]>u[1]?-1:1,h=[i==="start"?u[0]-f*l:i==="end"?u[1]+f*l:(u[0]+u[1])/2,Y1(i)?r.labelOffset+o*l:0],v,c=e.get("nameRotate");c!=null&&(c=c*Ga/180);var p;Y1(i)?v=Pe.innerTextLayout(r.rotation,c??r.rotation,o):(v=yz(r.rotation,i,c||0,u),p=r.axisNameAvailableWidth,p!=null&&(p=Math.abs(p/Math.sin(v.rotation)),!isFinite(p)&&(p=null)));var d=s.getFont(),g=e.get("nameTruncate",!0)||{},y=g.ellipsis,m=ee(r.nameTruncateMaxWidth,g.maxWidth,p),_=new bt({x:h[0],y:h[1],rotation:v.rotation,silent:Pe.isLabelSilent(e),style:Nt(s,{text:n,font:d,overflow:"truncate",width:m,ellipsis:y,fill:s.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:s.get("align")||v.textAlign,verticalAlign:s.get("verticalAlign")||v.textVerticalAlign}),z2:1});if(To({el:_,componentModel:e,itemName:n}),_.__fullText=n,_.anid="name",e.get("triggerEvent")){var S=Pe.makeAxisEventDataBase(e);S.targetType="axisName",S.name=n,nt(_).eventData=S}a.add(_),_.updateTransform(),t.add(_),_.decomposeTransform()}}};function yz(r,e,t,a){var n=Sg(t-r),i,o,s=a[0]>a[1],l=e==="start"&&!s||e!=="start"&&s;return io(n-Ga/2)?(o=l?"bottom":"top",i="center"):io(n-Ga*1.5)?(o=l?"top":"bottom",i="center"):(o="middle",nGa/2?i=l?"left":"right":i=l?"right":"left"),{rotation:n,textAlign:i,textVerticalAlign:o}}function mz(r,e,t){if(!XC(r.axis)){var a=r.get(["axisLabel","showMinLabel"]),n=r.get(["axisLabel","showMaxLabel"]);e=e||[],t=t||[];var i=e[0],o=e[1],s=e[e.length-1],l=e[e.length-2],u=t[0],f=t[1],h=t[t.length-1],v=t[t.length-2];a===!1?(qe(i),qe(u)):U1(i,o)&&(a?(qe(o),qe(f)):(qe(i),qe(u))),n===!1?(qe(s),qe(h)):U1(l,s)&&(n?(qe(l),qe(v)):(qe(s),qe(h)))}}function qe(r){r&&(r.ignore=!0)}function U1(r,e){var t=r&&r.getBoundingRect().clone(),a=e&&e.getBoundingRect().clone();if(!(!t||!a)){var n=Sl([]);return an(n,n,-r.rotation),t.applyTransform(Yr([],n,r.getLocalTransform())),a.applyTransform(Yr([],n,e.getLocalTransform())),t.intersect(a)}}function Y1(r){return r==="middle"||r==="center"}function WD(r,e,t,a,n){for(var i=[],o=[],s=[],l=0;l=0||r===e}function Dz(r){var e=Dy(r);if(e){var t=e.axisPointerModel,a=e.axis.scale,n=t.option,i=t.get("status"),o=t.get("value");o!=null&&(o=a.parse(o));var s=Ad(t);i==null&&(n.status=s?"show":"hide");var l=a.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o0&&!p.min?p.min=0:p.min!=null&&p.min<0&&!p.max&&(p.max=0);var d=l;p.color!=null&&(d=Q({color:p.color},l));var g=st(et(p),{boundaryGap:t,splitNumber:a,scale:n,axisLine:i,axisTick:o,axisLabel:s,name:p.text,showName:u,nameLocation:"end",nameGap:h,nameTextStyle:d,triggerEvent:v},!1);if(U(f)){var y=g.name;g.name=f.replace("{value}",y??"")}else K(f)&&(g.name=f(g.name,g));var m=new Mt(g,null,this.ecModel);return Xt(m,Oo.prototype),m.mainType="radar",m.componentIndex=this.componentIndex,m},this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:st({lineStyle:{color:"#bbb"}},rs.axisLine),axisLabel:Mu(rs.axisLabel,!1),axisTick:Mu(rs.axisTick,!1),splitLine:Mu(rs.splitLine,!0),splitArea:Mu(rs.splitArea,!0),indicator:[]},e}(mt),Gz=["axisLine","axisTickLabel","axisName"],Fz=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group;i.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var a=t.coordinateSystem,n=a.getIndicatorAxes(),i=G(n,function(o){var s=o.model.get("showName")?o.name:"",l=new Pe(o.model,{axisName:s,position:[a.cx,a.cy],rotation:o.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return l});C(i,function(o){C(Gz,o.add,o),this.group.add(o.getGroup())},this)},e.prototype._buildSplitLineAndArea=function(t){var a=t.coordinateSystem,n=a.getIndicatorAxes();if(!n.length)return;var i=t.get("shape"),o=t.getModel("splitLine"),s=t.getModel("splitArea"),l=o.getModel("lineStyle"),u=s.getModel("areaStyle"),f=o.get("show"),h=s.get("show"),v=l.get("color"),c=u.get("color"),p=z(v)?v:[v],d=z(c)?c:[c],g=[],y=[];function m(R,E,N){var O=N%E.length;return R[O]=R[O]||[],O}if(i==="circle")for(var _=n[0].getTicksCoords(),S=a.cx,b=a.cy,x=0;x<_.length;x++){if(f){var w=m(g,p,x);g[w].push(new Kr({shape:{cx:S,cy:b,r:_[x].coord}}))}if(h&&x<_.length-1){var w=m(y,d,x);y[w].push(new _o({shape:{cx:S,cy:b,r0:_[x].coord,r:_[x+1].coord}}))}}else for(var T,A=G(n,function(R,E){var N=R.getTicksCoords();return T=T==null?N.length-1:Math.min(N.length-1,T),G(N,function(O){return a.coordToPoint(O.coord,E)})}),D=[],x=0;x<=T;x++){for(var M=[],I=0;I3?1.4:o>1?1.2:1.1,f=i>0?u:1/u;_c(this,"zoom","zoomOnMouseWheel",t,{scale:f,originX:s,originY:l,isAvailableBehavior:null})}if(n){var h=Math.abs(i),v=(i>0?1:-1)*(h>3?.4:h>1?.15:.05);_c(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:v,originX:s,originY:l,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){if(!j1(this._zr,"globalPan")){var a=t.pinchScale>1?1.1:1/1.1;_c(this,"zoom",null,t,{scale:a,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})}},e}(fr);function _c(r,e,t,a,n){r.pointerChecker&&r.pointerChecker(a,n.originX,n.originY)&&(pa(a.event),qD(r,e,t,a,n))}function qD(r,e,t,a,n){n.isAvailableBehavior=X(nf,null,t,a),r.trigger(e,n)}function nf(r,e,t){var a=t[r];return!r||a&&(!U(a)||e.event[a+"Key"])}function Iy(r,e,t){var a=r.target;a.x+=e,a.y+=t,a.dirty()}function Ly(r,e,t,a){var n=r.target,i=r.zoomLimit,o=r.zoom=r.zoom||1;if(o*=e,i){var s=i.min||0,l=i.max||1/0;o=Math.max(Math.min(l,o),s)}var u=o/r.zoom;r.zoom=o,n.x-=(t-n.x)*(u-1),n.y-=(a-n.y)*(u-1),n.scaleX*=u,n.scaleY*=u,n.dirty()}var Zz={axisPointer:1,tooltip:1,brush:1};function Uh(r,e,t){var a=e.getComponentByElement(r.topTarget),n=a&&a.coordinateSystem;return a&&a!==t&&!Zz.hasOwnProperty(a.mainType)&&n&&n.model!==t}function KD(r){if(U(r)){var e=new DOMParser;r=e.parseFromString(r,"text/xml")}var t=r;for(t.nodeType===9&&(t=t.firstChild);t.nodeName.toLowerCase()!=="svg"||t.nodeType!==1;)t=t.nextSibling;return t}var Sc,Yf={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},Q1=St(Yf),Xf={"alignment-baseline":"textBaseline","stop-color":"stopColor"},J1=St(Xf),qz=function(){function r(){this._defs={},this._root=null}return r.prototype.parse=function(e,t){t=t||{};var a=KD(e);this._defsUsePending=[];var n=new at;this._root=n;var i=[],o=a.getAttribute("viewBox")||"",s=parseFloat(a.getAttribute("width")||t.width),l=parseFloat(a.getAttribute("height")||t.height);isNaN(s)&&(s=null),isNaN(l)&&(l=null),Fe(a,n,null,!0,!1);for(var u=a.firstChild;u;)this._parseNode(u,n,i,null,!1,!1),u=u.nextSibling;Qz(this._defs,this._defsUsePending),this._defsUsePending=[];var f,h;if(o){var v=Yh(o);v.length>=4&&(f={x:parseFloat(v[0]||0),y:parseFloat(v[1]||0),width:parseFloat(v[2]),height:parseFloat(v[3])})}if(f&&s!=null&&l!=null&&(h=QD(f,{x:0,y:0,width:s,height:l}),!t.ignoreViewBox)){var c=n;n=new at,n.add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return!t.ignoreRootClip&&s!=null&&l!=null&&n.setClipPath(new wt({shape:{x:0,y:0,width:s,height:l}})),{root:n,width:s,height:l,viewBoxRect:f,viewBoxTransform:h,named:i}},r.prototype._parseNode=function(e,t,a,n,i,o){var s=e.nodeName.toLowerCase(),l,u=n;if(s==="defs"&&(i=!0),s==="text"&&(o=!0),s==="defs"||s==="switch")l=t;else{if(!i){var f=Sc[s];if(f&&$(Sc,s)){l=f.call(this,e,t);var h=e.getAttribute("name");if(h){var v={name:h,namedFrom:null,svgNodeTagLower:s,el:l};a.push(v),s==="g"&&(u=v)}else n&&a.push({name:n.name,namedFrom:n,svgNodeTagLower:s,el:l});t.add(l)}}var c=tS[s];if(c&&$(tS,s)){var p=c.call(this,e),d=e.getAttribute("id");d&&(this._defs[d]=p)}}if(l&&l.isGroup)for(var g=e.firstChild;g;)g.nodeType===1?this._parseNode(g,l,a,u,i,o):g.nodeType===3&&o&&this._parseText(g,l),g=g.nextSibling},r.prototype._parseText=function(e,t){var a=new oo({style:{text:e.textContent},silent:!0,x:this._textX||0,y:this._textY||0});Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),Kz(a,t);var n=a.style,i=n.fontSize;i&&i<9&&(n.fontSize=9,a.scaleX*=i/9,a.scaleY*=i/9);var o=(n.fontSize||n.fontFamily)&&[n.fontStyle,n.fontWeight,(n.fontSize||12)+"px",n.fontFamily||"sans-serif"].join(" ");n.font=o;var s=a.getBoundingRect();return this._textX+=s.width,t.add(a),a},r.internalField=function(){Sc={g:function(e,t){var a=new at;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a},rect:function(e,t){var a=new wt;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a.setShape({x:parseFloat(e.getAttribute("x")||"0"),y:parseFloat(e.getAttribute("y")||"0"),width:parseFloat(e.getAttribute("width")||"0"),height:parseFloat(e.getAttribute("height")||"0")}),a.silent=!0,a},circle:function(e,t){var a=new Kr;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a.setShape({cx:parseFloat(e.getAttribute("cx")||"0"),cy:parseFloat(e.getAttribute("cy")||"0"),r:parseFloat(e.getAttribute("r")||"0")}),a.silent=!0,a},line:function(e,t){var a=new Jt;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a.setShape({x1:parseFloat(e.getAttribute("x1")||"0"),y1:parseFloat(e.getAttribute("y1")||"0"),x2:parseFloat(e.getAttribute("x2")||"0"),y2:parseFloat(e.getAttribute("y2")||"0")}),a.silent=!0,a},ellipse:function(e,t){var a=new Al;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a.setShape({cx:parseFloat(e.getAttribute("cx")||"0"),cy:parseFloat(e.getAttribute("cy")||"0"),rx:parseFloat(e.getAttribute("rx")||"0"),ry:parseFloat(e.getAttribute("ry")||"0")}),a.silent=!0,a},polygon:function(e,t){var a=e.getAttribute("points"),n;a&&(n=aS(a));var i=new Se({shape:{points:n||[]},silent:!0});return Ke(t,i),Fe(e,i,this._defsUsePending,!1,!1),i},polyline:function(e,t){var a=e.getAttribute("points"),n;a&&(n=aS(a));var i=new be({shape:{points:n||[]},silent:!0});return Ke(t,i),Fe(e,i,this._defsUsePending,!1,!1),i},image:function(e,t){var a=new oe;return Ke(t,a),Fe(e,a,this._defsUsePending,!1,!1),a.setStyle({image:e.getAttribute("xlink:href")||e.getAttribute("href"),x:+e.getAttribute("x"),y:+e.getAttribute("y"),width:+e.getAttribute("width"),height:+e.getAttribute("height")}),a.silent=!0,a},text:function(e,t){var a=e.getAttribute("x")||"0",n=e.getAttribute("y")||"0",i=e.getAttribute("dx")||"0",o=e.getAttribute("dy")||"0";this._textX=parseFloat(a)+parseFloat(i),this._textY=parseFloat(n)+parseFloat(o);var s=new at;return Ke(t,s),Fe(e,s,this._defsUsePending,!1,!0),s},tspan:function(e,t){var a=e.getAttribute("x"),n=e.getAttribute("y");a!=null&&(this._textX=parseFloat(a)),n!=null&&(this._textY=parseFloat(n));var i=e.getAttribute("dx")||"0",o=e.getAttribute("dy")||"0",s=new at;return Ke(t,s),Fe(e,s,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(o),s},path:function(e,t){var a=e.getAttribute("d")||"",n=HT(a);return Ke(t,n),Fe(e,n,this._defsUsePending,!1,!1),n.silent=!0,n}}}(),r}(),tS={lineargradient:function(r){var e=parseInt(r.getAttribute("x1")||"0",10),t=parseInt(r.getAttribute("y1")||"0",10),a=parseInt(r.getAttribute("x2")||"10",10),n=parseInt(r.getAttribute("y2")||"0",10),i=new xo(e,t,a,n);return eS(r,i),rS(r,i),i},radialgradient:function(r){var e=parseInt(r.getAttribute("cx")||"0",10),t=parseInt(r.getAttribute("cy")||"0",10),a=parseInt(r.getAttribute("r")||"0",10),n=new kg(e,t,a);return eS(r,n),rS(r,n),n}};function eS(r,e){var t=r.getAttribute("gradientUnits");t==="userSpaceOnUse"&&(e.global=!0)}function rS(r,e){for(var t=r.firstChild;t;){if(t.nodeType===1&&t.nodeName.toLocaleLowerCase()==="stop"){var a=t.getAttribute("offset"),n=void 0;a&&a.indexOf("%")>0?n=parseInt(a,10)/100:a?n=parseFloat(a):n=0;var i={};jD(t,i,i);var o=i.stopColor||t.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:n,color:o})}t=t.nextSibling}}function Ke(r,e){r&&r.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),Q(e.__inheritedStyle,r.__inheritedStyle))}function aS(r){for(var e=Yh(r),t=[],a=0;a0;i-=2){var o=a[i],s=a[i-1],l=Yh(o);switch(n=n||Ge(),s){case"translate":Dr(n,n,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":dh(n,n,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":an(n,n,-parseFloat(l[0])*xc,[parseFloat(l[1]||"0"),parseFloat(l[2]||"0")]);break;case"skewX":var u=Math.tan(parseFloat(l[0])*xc);Yr(n,[1,0,u,1,0,0],n);break;case"skewY":var f=Math.tan(parseFloat(l[0])*xc);Yr(n,[1,f,0,1,0,0],n);break;case"matrix":n[0]=parseFloat(l[0]),n[1]=parseFloat(l[1]),n[2]=parseFloat(l[2]),n[3]=parseFloat(l[3]),n[4]=parseFloat(l[4]),n[5]=parseFloat(l[5]);break}}e.setLocalTransform(n)}}var iS=/([^\s:;]+)\s*:\s*([^:;]+)/g;function jD(r,e,t){var a=r.getAttribute("style");if(a){iS.lastIndex=0;for(var n;(n=iS.exec(a))!=null;){var i=n[1],o=$(Yf,i)?Yf[i]:null;o&&(e[o]=n[2]);var s=$(Xf,i)?Xf[i]:null;s&&(t[s]=n[2])}}}function r5(r,e,t){for(var a=0;a0,g={api:a,geo:l,mapOrGeoModel:e,data:s,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:v};l.resourceType==="geoJSON"?this._buildGeoJSON(g):l.resourceType==="geoSVG"&&this._buildSVG(g),this._updateController(e,t,a),this._updateMapSelectHandler(e,u,a,n)},r.prototype._buildGeoJSON=function(e){var t=this._regionsGroupByName=Z(),a=Z(),n=this._regionsGroup,i=e.transformInfoRaw,o=e.mapOrGeoModel,s=e.data,l=e.geo.projection,u=l&&l.stream;function f(c,p){return p&&(c=p(c)),c&&[c[0]*i.scaleX+i.x,c[1]*i.scaleY+i.y]}function h(c){for(var p=[],d=!u&&l&&l.project,g=0;g=0)&&(v=n);var c=o?{normal:{align:"center",verticalAlign:"middle"}}:null;ve(e,ne(a),{labelFetcher:v,labelDataIndex:h,defaultText:t},c);var p=e.getTextContent();if(p&&(JD(p).ignore=p.ignore,e.textConfig&&o)){var d=e.getBoundingRect().clone();e.textConfig.layoutRect=d,e.textConfig.position=[(o[0]-d.x)/d.width*100+"%",(o[1]-d.y)/d.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function fS(r,e,t,a,n,i){r.data?r.data.setItemGraphicEl(i,e):nt(e).eventData={componentType:"geo",componentIndex:n.componentIndex,geoIndex:n.componentIndex,name:t,region:a&&a.option||{}}}function hS(r,e,t,a,n){r.data||To({el:e,componentModel:n,itemName:t,itemTooltipOption:a.get("tooltip")})}function vS(r,e,t,a,n){e.highDownSilentOnTouch=!!n.get("selectedMode");var i=a.getModel("emphasis"),o=i.get("focus");return Wt(e,o,i.get("blurScope"),i.get("disabled")),r.isGeo&&dR(e,n,t),o}function cS(r,e,t){var a=[],n;function i(){n=[]}function o(){n.length&&(a.push(n),n=[])}var s=e({polygonStart:i,polygonEnd:o,lineStart:i,lineEnd:o,point:function(l,u){isFinite(l)&&isFinite(u)&&n.push([l,u])},sphere:function(){}});return!t&&s.polygonStart(),C(r,function(l){s.lineStart();for(var u=0;u-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(kt);function b5(r,e){var t={};return C(r,function(a){a.each(a.mapDimension("value"),function(n,i){var o="ec-"+a.getName(i);t[o]=t[o]||[],isNaN(n)||t[o].push(n)})}),r[0].map(r[0].mapDimension("value"),function(a,n){for(var i="ec-"+r[0].getName(n),o=0,s=1/0,l=-1/0,u=t[i].length,f=0;f1?(S.width=_,S.height=_/g):(S.height=_,S.width=_*g),S.y=m[1]-S.height/2,S.x=m[0]-S.width/2;else{var b=r.getBoxLayoutParams();b.aspect=g,S=jt(b,{width:p,height:d})}this.setViewRect(S.x,S.y,S.width,S.height),this.setCenter(r.get("center"),e),this.setZoom(r.get("zoom"))}function C5(r,e){C(e.get("geoCoord"),function(t,a){r.addGeoCoord(a,t)})}var D5=function(){function r(){this.dimensions=eM}return r.prototype.create=function(e,t){var a=[];function n(o){return{nameProperty:o.get("nameProperty"),aspectScale:o.get("aspectScale"),projection:o.get("projection")}}e.eachComponent("geo",function(o,s){var l=o.get("map"),u=new Md(l+s,l,V({nameMap:o.get("nameMap")},n(o)));u.zoomLimit=o.get("scaleLimit"),a.push(u),o.coordinateSystem=u,u.model=o,u.resize=yS,u.resize(o,t)}),e.eachSeries(function(o){var s=o.get("coordinateSystem");if(s==="geo"){var l=o.get("geoIndex")||0;o.coordinateSystem=a[l]}});var i={};return e.eachSeriesByType("map",function(o){if(!o.getHostGeoModel()){var s=o.getMapType();i[s]=i[s]||[],i[s].push(o)}}),C(i,function(o,s){var l=G(o,function(f){return f.get("nameMap")}),u=new Md(s,s,V({nameMap:hh(l)},n(o[0])));u.zoomLimit=ee.apply(null,G(o,function(f){return f.get("scaleLimit")})),a.push(u),u.resize=yS,u.resize(o[0],t),C(o,function(f){f.coordinateSystem=u,C5(u,f)})}),a},r.prototype.getFilledRegions=function(e,t,a,n){for(var i=(e||[]).slice(),o=Z(),s=0;s=0;o--){var s=n[o];s.hierNode={defaultAncestor:null,ancestor:s,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},t.push(s)}}function E5(r,e){var t=r.isExpand?r.children:[],a=r.parentNode.children,n=r.hierNode.i?a[r.hierNode.i-1]:null;if(t.length){N5(r);var i=(t[0].hierNode.prelim+t[t.length-1].hierNode.prelim)/2;n?(r.hierNode.prelim=n.hierNode.prelim+e(r,n),r.hierNode.modifier=r.hierNode.prelim-i):r.hierNode.prelim=i}else n&&(r.hierNode.prelim=n.hierNode.prelim+e(r,n));r.parentNode.hierNode.defaultAncestor=B5(r,n,r.parentNode.hierNode.defaultAncestor||a[0],e)}function k5(r){var e=r.hierNode.prelim+r.parentNode.hierNode.modifier;r.setLayout({x:e},!0),r.hierNode.modifier+=r.parentNode.hierNode.modifier}function _S(r){return arguments.length?r:G5}function Ss(r,e){return r-=Math.PI/2,{x:e*Math.cos(r),y:e*Math.sin(r)}}function O5(r,e){return jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function N5(r){for(var e=r.children,t=e.length,a=0,n=0;--t>=0;){var i=e[t];i.hierNode.prelim+=a,i.hierNode.modifier+=a,n+=i.hierNode.change,a+=i.hierNode.shift+n}}function B5(r,e,t,a){if(e){for(var n=r,i=r,o=i.parentNode.children[0],s=e,l=n.hierNode.modifier,u=i.hierNode.modifier,f=o.hierNode.modifier,h=s.hierNode.modifier;s=bc(s),i=wc(i),s&&i;){n=bc(n),o=wc(o),n.hierNode.ancestor=r;var v=s.hierNode.prelim+h-i.hierNode.prelim-u+a(s,i);v>0&&(z5(V5(s,r,t),r,v),u+=v,l+=v),h+=s.hierNode.modifier,u+=i.hierNode.modifier,l+=n.hierNode.modifier,f+=o.hierNode.modifier}s&&!bc(n)&&(n.hierNode.thread=s,n.hierNode.modifier+=h-l),i&&!wc(o)&&(o.hierNode.thread=i,o.hierNode.modifier+=u-f,t=r)}return t}function bc(r){var e=r.children;return e.length&&r.isExpand?e[e.length-1]:r.hierNode.thread}function wc(r){var e=r.children;return e.length&&r.isExpand?e[0]:r.hierNode.thread}function V5(r,e,t){return r.hierNode.ancestor.parentNode===e.parentNode?r.hierNode.ancestor:t}function z5(r,e,t){var a=t/(e.hierNode.i-r.hierNode.i);e.hierNode.change-=a,e.hierNode.shift+=t,e.hierNode.modifier+=t,e.hierNode.prelim+=t,r.hierNode.change+=a}function G5(r,e){return r.parentNode===e.parentNode?1:2}var F5=function(){function r(){this.parentPoint=[],this.childPoints=[]}return r}(),H5=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new F5},e.prototype.buildPath=function(t,a){var n=a.childPoints,i=n.length,o=a.parentPoint,s=n[0],l=n[i-1];if(i===1){t.moveTo(o[0],o[1]),t.lineTo(s[0],s[1]);return}var u=a.orient,f=u==="TB"||u==="BT"?0:1,h=1-f,v=W(a.forkPosition,1),c=[];c[f]=o[f],c[h]=o[h]+(l[h]-o[h])*v,t.moveTo(o[0],o[1]),t.lineTo(c[0],c[1]),t.moveTo(s[0],s[1]),c[f]=s[f],t.lineTo(c[0],c[1]),c[f]=l[f],t.lineTo(c[0],c[1]),t.lineTo(l[0],l[1]);for(var p=1;pm.x,b||(S=S-Math.PI));var w=b?"left":"right",T=s.getModel("label"),A=T.get("rotate"),D=A*(Math.PI/180),M=g.getTextContent();M&&(g.setTextConfig({position:T.get("position")||w,rotation:A==null?-S:D,origin:"center"}),M.setStyle("verticalAlign","middle"))}var I=s.get(["emphasis","focus"]),L=I==="relative"?Hs(o.getAncestorsIndices(),o.getDescendantIndices()):I==="ancestor"?o.getAncestorsIndices():I==="descendant"?o.getDescendantIndices():null;L&&(nt(t).focus=L),U5(n,o,f,t,p,c,d,a),t.__edge&&(t.onHoverStateChange=function(P){if(P!=="blur"){var R=o.parentNode&&r.getItemGraphicEl(o.parentNode.dataIndex);R&&R.hoverState===Tl||wf(t.__edge,P)}})}function U5(r,e,t,a,n,i,o,s){var l=e.getModel(),u=r.get("edgeShape"),f=r.get("layout"),h=r.getOrient(),v=r.get(["lineStyle","curveness"]),c=r.get("edgeForkPosition"),p=l.getModel("lineStyle").getLineStyle(),d=a.__edge;if(u==="curve")e.parentNode&&e.parentNode!==t&&(d||(d=a.__edge=new So({shape:Id(f,h,v,n,n)})),Dt(d,{shape:Id(f,h,v,i,o)},r));else if(u==="polyline"&&f==="orthogonal"&&e!==t&&e.children&&e.children.length!==0&&e.isExpand===!0){for(var g=e.children,y=[],m=0;mt&&(t=n.height)}this.height=t+1},r.prototype.getNodeById=function(e){if(this.getId()===e)return this;for(var t=0,a=this.children,n=a.length;t=0&&this.hostTree.data.setItemLayout(this.dataIndex,e,t)},r.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},r.prototype.getModel=function(e){if(!(this.dataIndex<0)){var t=this.hostTree,a=t.data.getItemModel(this.dataIndex);return a.getModel(e)}},r.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},r.prototype.setVisual=function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,e,t)},r.prototype.getVisual=function(e){return this.hostTree.data.getItemVisual(this.dataIndex,e)},r.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},r.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},r.prototype.getChildIndex=function(){if(this.parentNode){for(var e=this.parentNode.children,t=0;t=0){var a=t.getData().tree.root,n=r.targetNode;if(U(n)&&(n=a.getNodeById(n)),n&&a.contains(n))return{node:n};var i=r.targetNodeId;if(i!=null&&(n=a.getNodeById(i)))return{node:n}}}function sM(r){for(var e=[];r;)r=r.parentNode,r&&e.push(r);return e.reverse()}function Oy(r,e){var t=sM(r);return vt(t,e)>=0}function Xh(r,e){for(var t=[];r;){var a=r.dataIndex;t.push({name:r.name,dataIndex:a,value:e.getRawValue(a)}),r=r.parentNode}return t.reverse(),t}var J5=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.hasSymbolVisual=!0,t.ignoreStyleOnData=!0,t}return e.prototype.getInitialData=function(t){var a={name:t.name,children:t.data},n=t.leaves||{},i=new Mt(n,this,this.ecModel),o=ky.createTree(a,this,s);function s(h){h.wrapMethod("getItemModel",function(v,c){var p=o.getNodeByDataIndex(c);return p&&p.children.length&&p.isExpand||(v.parentModel=i),v})}var l=0;o.eachNode("preorder",function(h){h.depth>l&&(l=h.depth)});var u=t.expandAndCollapse,f=u&&t.initialTreeDepth>=0?t.initialTreeDepth:l;return o.root.eachNode("preorder",function(h){var v=h.hostTree.data.getRawDataItem(h.dataIndex);h.isExpand=v&&v.collapsed!=null?!v.collapsed:h.depth<=f}),o.data},e.prototype.getOrient=function(){var t=this.get("orient");return t==="horizontal"?t="LR":t==="vertical"&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,a,n){for(var i=this.getData().tree,o=i.root.children[0],s=i.getNodeByDataIndex(t),l=s.getValue(),u=s.name;s&&s!==o;)u=s.parentNode.name+"."+u,s=s.parentNode;return ie("nameValue",{name:u,value:l,noValue:isNaN(l)||l==null})},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treeAncestors=Xh(n,this),a.collapsed=!n.isExpand,a},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(kt);function tG(r,e,t){for(var a=[r],n=[],i;i=a.pop();)if(n.push(i),i.isExpand){var o=i.children;if(o.length)for(var s=0;s=0;i--)t.push(n[i])}}function eG(r,e){r.eachSeriesByType("tree",function(t){rG(t,e)})}function rG(r,e){var t=O5(r,e);r.layoutInfo=t;var a=r.get("layout"),n=0,i=0,o=null;a==="radial"?(n=2*Math.PI,i=Math.min(t.height,t.width)/2,o=_S(function(_,S){return(_.parentNode===S.parentNode?1:2)/_.depth})):(n=t.width,i=t.height,o=_S());var s=r.getData().tree.root,l=s.children[0];if(l){R5(s),tG(l,E5,o),s.hierNode.modifier=-l.hierNode.prelim,ns(l,k5);var u=l,f=l,h=l;ns(l,function(_){var S=_.getLayout().x;Sf.getLayout().x&&(f=_),_.depth>h.depth&&(h=_)});var v=u===f?1:o(u,f)/2,c=v-u.getLayout().x,p=0,d=0,g=0,y=0;if(a==="radial")p=n/(f.getLayout().x+v+c),d=i/(h.depth-1||1),ns(l,function(_){g=(_.getLayout().x+c)*p,y=(_.depth-1)*d;var S=Ss(g,y);_.setLayout({x:S.x,y:S.y,rawX:g,rawY:y},!0)});else{var m=r.getOrient();m==="RL"||m==="LR"?(d=i/(f.getLayout().x+v+c),p=n/(h.depth-1||1),ns(l,function(_){y=(_.getLayout().x+c)*d,g=m==="LR"?(_.depth-1)*p:n-(_.depth-1)*p,_.setLayout({x:g,y},!0)})):(m==="TB"||m==="BT")&&(p=n/(f.getLayout().x+v+c),d=i/(h.depth-1||1),ns(l,function(_){g=(_.getLayout().x+c)*p,y=m==="TB"?(_.depth-1)*d:i-(_.depth-1)*d,_.setLayout({x:g,y},!0)}))}}}function aG(r){r.eachSeriesByType("tree",function(e){var t=e.getData(),a=t.tree;a.eachNode(function(n){var i=n.getModel(),o=i.getModel("itemStyle").getItemStyle(),s=t.ensureUniqueItemVisual(n.dataIndex,"style");V(s,o)})})}function nG(r){r.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"tree",query:e},function(a){var n=e.dataIndex,i=a.getData().tree,o=i.getNodeByDataIndex(n);o.isExpand=!o.isExpand})}),r.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},function(e,t,a){t.eachComponent({mainType:"series",subType:"tree",query:e},function(n){var i=n.coordinateSystem,o=Ry(i,e,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}function iG(r){r.registerChartView(W5),r.registerSeriesModel(J5),r.registerLayout(eG),r.registerVisual(aG),nG(r)}var TS=["treemapZoomToNode","treemapRender","treemapMove"];function oG(r){for(var e=0;e1;)i=i.parentNode;var o=ad(r.ecModel,i.name||i.dataIndex+"",a);n.setVisual("decal",o)})}var sG=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.preventUsingHoverLayer=!0,t}return e.prototype.getInitialData=function(t,a){var n={name:t.name,children:t.data};uM(n);var i=t.levels||[],o=this.designatedVisualItemStyle={},s=new Mt({itemStyle:o},this,a);i=t.levels=lG(i,a);var l=G(i||[],function(h){return new Mt(h,s,a)},this),u=ky.createTree(n,this,f);function f(h){h.wrapMethod("getItemModel",function(v,c){var p=u.getNodeByDataIndex(c),d=p?l[p.depth]:null;return v.parentModel=d||s,v})}return u.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,a,n){var i=this.getData(),o=this.getRawValue(t),s=i.getName(t);return ie("nameValue",{name:s,value:o})},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treeAncestors=Xh(n,this),a.treePathInfo=a.treeAncestors,a},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},V(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var a=this._idIndexMap;a||(a=this._idIndexMap=Z(),this._idIndexMapCount=0);var n=a.get(t);return n==null&&a.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var a=this.getRawData().tree.root;(!t||t!==a&&!a.contains(t))&&(this._viewRoot=a)},e.prototype.enableAriaDecal=function(){lM(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.32*.32,scaleLimit:null,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(kt);function uM(r){var e=0;C(r.children,function(a){uM(a);var n=a.value;z(n)&&(n=n[0]),e+=n});var t=r.value;z(t)&&(t=t[0]),(t==null||isNaN(t))&&(t=e),t<0&&(t=0),z(r.value)?r.value[0]=t:r.value=t}function lG(r,e){var t=Et(e.get("color")),a=Et(e.get(["aria","decal","decals"]));if(t){r=r||[];var n,i;C(r,function(s){var l=new Mt(s),u=l.get("color"),f=l.get("decal");(l.get(["itemStyle","color"])||u&&u!=="none")&&(n=!0),(l.get(["itemStyle","decal"])||f&&f!=="none")&&(i=!0)});var o=r[0]||(r[0]={});return n||(o.color=t.slice()),!i&&a&&(o.decal=a.slice()),r}}var uG=8,AS=8,Tc=5,fG=function(){function r(e){this.group=new at,e.add(this.group)}return r.prototype.render=function(e,t,a,n){var i=e.getModel("breadcrumb"),o=this.group;if(o.removeAll(),!(!i.get("show")||!a)){var s=i.getModel("itemStyle"),l=i.getModel("emphasis"),u=s.getModel("textStyle"),f=l.getModel(["itemStyle","textStyle"]),h={pos:{left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},box:{width:t.getWidth(),height:t.getHeight()},emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(a,h,u),this._renderContent(e,h,s,l,u,f,n),kh(o,h.pos,h.box)}},r.prototype._prepare=function(e,t,a){for(var n=e;n;n=n.parentNode){var i=Qt(n.getModel().get("name"),""),o=a.getTextRect(i),s=Math.max(o.width+uG*2,t.emptyItemWidth);t.totalWidth+=s+AS,t.renderList.push({node:n,text:i,width:s})}},r.prototype._renderContent=function(e,t,a,n,i,o,s){for(var l=0,u=t.emptyItemWidth,f=e.get(["breadcrumb","height"]),h=dE(t.pos,t.box),v=t.totalWidth,c=t.renderList,p=n.getModel("itemStyle").getItemStyle(),d=c.length-1;d>=0;d--){var g=c[d],y=g.node,m=g.width,_=g.text;v>h.width&&(v-=m-u,m=u,_=null);var S=new Se({shape:{points:hG(l,0,m,f,d===c.length-1,d===0)},style:Q(a.getItemStyle(),{lineJoin:"bevel"}),textContent:new bt({style:Nt(i,{text:_})}),textConfig:{position:"inside"},z2:mo*1e4,onclick:it(s,y)});S.disableLabelAnimation=!0,S.getTextContent().ensureState("emphasis").style=Nt(o,{text:_}),S.ensureState("emphasis").style=p,Wt(S,n.get("focus"),n.get("blurScope"),n.get("disabled")),this.group.add(S),vG(S,e,y),l+=m+AS}},r.prototype.remove=function(){this.group.removeAll()},r}();function hG(r,e,t,a,n,i){var o=[[n?r:r-Tc,e],[r+t,e],[r+t,e+a],[n?r:r-Tc,e+a]];return!i&&o.splice(2,0,[r+t+Tc,e+a/2]),!n&&o.push([r,e+a/2]),o}function vG(r,e,t){nt(r).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:t&&t.dataIndex,name:t&&t.name},treePathInfo:t&&Xh(t,e)}}var cG=function(){function r(){this._storage=[],this._elExistsMap={}}return r.prototype.add=function(e,t,a,n,i){return this._elExistsMap[e.id]?!1:(this._elExistsMap[e.id]=!0,this._storage.push({el:e,target:t,duration:a,delay:n,easing:i}),!0)},r.prototype.finished=function(e){return this._finishedCallback=e,this},r.prototype.start=function(){for(var e=this,t=this._storage.length,a=function(){t--,t<=0&&(e._storage.length=0,e._elExistsMap={},e._finishedCallback&&e._finishedCallback())},n=0,i=this._storage.length;nDS||Math.abs(t.dy)>DS)){var a=this.seriesModel.getData().tree.root;if(!a)return;var n=a.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var a=t.originX,n=t.originY,i=t.scale;if(this._state!=="animating"){var o=this.seriesModel.getData().tree.root;if(!o)return;var s=o.getLayout();if(!s)return;var l=new ht(s.x,s.y,s.width,s.height),u=null,f=this._controllerHost;u=f.zoomLimit;var h=f.zoom=f.zoom||1;if(h*=i,u){var v=u.min||0,c=u.max||1/0;h=Math.max(Math.min(c,h),v)}var p=h/f.zoom;f.zoom=h;var d=this.seriesModel.layoutInfo;a-=d.x,n-=d.y;var g=Ge();Dr(g,g,[-a,-n]),dh(g,g,[p,p]),Dr(g,g,[a,n]),l.applyTransform(g),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:l.x,y:l.y,width:l.width,height:l.height}})}},e.prototype._initEvents=function(t){var a=this;t.on("click",function(n){if(a._state==="ready"){var i=a.seriesModel.get("nodeClick",!0);if(i){var o=a.findTarget(n.offsetX,n.offsetY);if(o){var s=o.node;if(s.getLayout().isLeafRoot)a._rootToNode(o);else if(i==="zoomToNode")a._zoomToNode(o);else if(i==="link"){var l=s.hostTree.data.getItemModel(s.dataIndex),u=l.get("link",!0),f=l.get("target",!0)||"blank";u&&If(u,f)}}}}},this)},e.prototype._renderBreadcrumb=function(t,a,n){var i=this;n||(n=t.get("leafDepth",!0)!=null?{node:t.getViewRoot()}:this.findTarget(a.getWidth()/2,a.getHeight()/2),n||(n={node:t.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new fG(this.group))).render(t,a,n.node,function(o){i._state!=="animating"&&(Oy(t.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=is(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,a){var n,i=this.seriesModel.getViewRoot();return i.eachNode({attr:"viewChildren",order:"preorder"},function(o){var s=this._storage.background[o.getRawIndex()];if(s){var l=s.transformCoordToLocal(t,a),u=s.shape;if(u.x<=l[0]&&l[0]<=u.x+u.width&&u.y<=l[1]&&l[1]<=u.y+u.height)n={node:o,offsetX:l[0],offsetY:l[1]};else return!1}},this),n},e.type="treemap",e}(Rt);function is(){return{nodeGroup:[],background:[],content:[]}}function _G(r,e,t,a,n,i,o,s,l,u){if(!o)return;var f=o.getLayout(),h=r.getData(),v=o.getModel();if(h.setItemGraphicEl(o.dataIndex,null),!f||!f.isInView)return;var c=f.width,p=f.height,d=f.borderWidth,g=f.invisible,y=o.getRawIndex(),m=s&&s.getRawIndex(),_=o.viewChildren,S=f.upperHeight,b=_&&_.length,x=v.getModel("itemStyle"),w=v.getModel(["emphasis","itemStyle"]),T=v.getModel(["blur","itemStyle"]),A=v.getModel(["select","itemStyle"]),D=x.get("borderRadius")||0,M=J("nodeGroup",Ld);if(!M)return;if(l.add(M),M.x=f.x||0,M.y=f.y||0,M.markRedraw(),$f(M).nodeWidth=c,$f(M).nodeHeight=p,f.isAboveViewRoot)return M;var I=J("background",CS,u,gG);I&&B(M,I,b&&f.upperLabelHeight);var L=v.getModel("emphasis"),P=L.get("focus"),R=L.get("blurScope"),E=L.get("disabled"),N=P==="ancestor"?o.getAncestorsIndices():P==="descendant"?o.getDescendantIndices():P;if(b)js(M)&&Wn(M,!1),I&&(Wn(I,!E),h.setItemGraphicEl(o.dataIndex,I),qp(I,N,R));else{var O=J("content",CS,u,yG);O&&F(M,O),I.disableMorphing=!0,I&&js(I)&&Wn(I,!1),Wn(M,!E),h.setItemGraphicEl(o.dataIndex,M),qp(M,N,R)}return M;function B(pt,rt,dt){var lt=nt(rt);if(lt.dataIndex=o.dataIndex,lt.seriesIndex=r.seriesIndex,rt.setShape({x:0,y:0,width:c,height:p,r:D}),g)H(rt);else{rt.invisible=!1;var q=o.getVisual("style"),ut=q.stroke,Gt=LS(x);Gt.fill=ut;var At=En(w);At.fill=w.get("borderColor");var Ut=En(T);Ut.fill=T.get("borderColor");var Ft=En(A);if(Ft.fill=A.get("borderColor"),dt){var ce=c-2*d;Y(rt,ut,q.opacity,{x:d,y:0,width:ce,height:S})}else rt.removeTextContent();rt.setStyle(Gt),rt.ensureState("emphasis").style=At,rt.ensureState("blur").style=Ut,rt.ensureState("select").style=Ft,oi(rt)}pt.add(rt)}function F(pt,rt){var dt=nt(rt);dt.dataIndex=o.dataIndex,dt.seriesIndex=r.seriesIndex;var lt=Math.max(c-2*d,0),q=Math.max(p-2*d,0);if(rt.culling=!0,rt.setShape({x:d,y:d,width:lt,height:q,r:D}),g)H(rt);else{rt.invisible=!1;var ut=o.getVisual("style"),Gt=ut.fill,At=LS(x);At.fill=Gt,At.decal=ut.decal;var Ut=En(w),Ft=En(T),ce=En(A);Y(rt,Gt,ut.opacity,null),rt.setStyle(At),rt.ensureState("emphasis").style=Ut,rt.ensureState("blur").style=Ft,rt.ensureState("select").style=ce,oi(rt)}pt.add(rt)}function H(pt){!pt.invisible&&i.push(pt)}function Y(pt,rt,dt,lt){var q=v.getModel(lt?IS:MS),ut=Qt(v.get("name"),null),Gt=q.getShallow("show");ve(pt,ne(v,lt?IS:MS),{defaultText:Gt?ut:null,inheritColor:rt,defaultOpacity:dt,labelFetcher:r,labelDataIndex:o.dataIndex});var At=pt.getTextContent();if(At){var Ut=At.style,Ft=ch(Ut.padding||0);lt&&(pt.setTextConfig({layoutRect:lt}),At.disableLabelLayout=!0),At.beforeUpdate=function(){var ea=Math.max((lt?lt.width:pt.shape.width)-Ft[1]-Ft[3],0),ke=Math.max((lt?lt.height:pt.shape.height)-Ft[0]-Ft[2],0);(Ut.width!==ea||Ut.height!==ke)&&At.setStyle({width:ea,height:ke})},Ut.truncateMinChar=2,Ut.lineOverflow="truncate",j(Ut,lt,f);var ce=At.getState("emphasis");j(ce?ce.style:null,lt,f)}}function j(pt,rt,dt){var lt=pt?pt.text:null;if(!rt&&dt.isLeafRoot&<!=null){var q=r.get("drillDownIcon",!0);pt.text=q?q+" "+lt:lt}}function J(pt,rt,dt,lt){var q=m!=null&&t[pt][m],ut=n[pt];return q?(t[pt][m]=null,ct(ut,q)):g||(q=new rt,q instanceof ur&&(q.z2=SG(dt,lt)),xt(ut,q)),e[pt][y]=q}function ct(pt,rt){var dt=pt[y]={};rt instanceof Ld?(dt.oldX=rt.x,dt.oldY=rt.y):dt.oldShape=V({},rt.shape)}function xt(pt,rt){var dt=pt[y]={},lt=o.parentNode,q=rt instanceof at;if(lt&&(!a||a.direction==="drillDown")){var ut=0,Gt=0,At=n.background[lt.getRawIndex()];!a&&At&&At.oldShape&&(ut=At.oldShape.width,Gt=At.oldShape.height),q?(dt.oldX=0,dt.oldY=Gt):dt.oldShape={x:ut,y:Gt,width:0,height:0}}dt.fadein=!q}}function SG(r,e){return r*dG+e}var hl=C,xG=tt,Zf=-1,ae=function(){function r(e){var t=e.mappingMethod,a=e.type,n=this.option=et(e);this.type=a,this.mappingMethod=t,this._normalizeData=TG[t];var i=r.visualHandlers[a];this.applyVisual=i.applyVisual,this.getColorMapper=i.getColorMapper,this._normalizedToVisual=i._normalizedToVisual[t],t==="piecewise"?(Ac(n),bG(n)):t==="category"?n.categories?wG(n):Ac(n,!0):(me(t!=="linear"||n.dataExtent),Ac(n))}return r.prototype.mapValueToVisual=function(e){var t=this._normalizeData(e);return this._normalizedToVisual(t,e)},r.prototype.getNormalizer=function(){return X(this._normalizeData,this)},r.listVisualTypes=function(){return St(r.visualHandlers)},r.isValidType=function(e){return r.visualHandlers.hasOwnProperty(e)},r.eachVisual=function(e,t,a){tt(e)?C(e,t,a):t.call(a,e)},r.mapVisual=function(e,t,a){var n,i=z(e)?[]:tt(e)?{}:(n=!0,null);return r.eachVisual(e,function(o,s){var l=t.call(a,o,s);n?i=l:i[s]=l}),i},r.retrieveVisuals=function(e){var t={},a;return e&&hl(r.visualHandlers,function(n,i){e.hasOwnProperty(i)&&(t[i]=e[i],a=!0)}),a?t:null},r.prepareVisualTypes=function(e){if(z(e))e=e.slice();else if(xG(e)){var t=[];hl(e,function(a,n){t.push(n)}),e=t}else return[];return e.sort(function(a,n){return n==="color"&&a!=="color"&&a.indexOf("color")===0?1:-1}),e},r.dependsOn=function(e,t){return t==="color"?!!(e&&e.indexOf(t)===0):e===t},r.findPieceIndex=function(e,t,a){for(var n,i=1/0,o=0,s=t.length;o=0;i--)a[i]==null&&(delete t[e[i]],e.pop())}function Ac(r,e){var t=r.visual,a=[];tt(t)?hl(t,function(i){a.push(i)}):t!=null&&a.push(t);var n={color:1,symbol:1};!e&&a.length===1&&!n.hasOwnProperty(r.type)&&(a[1]=a[0]),fM(r,a)}function Lu(r){return{applyVisual:function(e,t,a){var n=this.mapValueToVisual(e);a("color",r(t("color"),n))},_normalizedToVisual:Pd([0,1])}}function PS(r){var e=this.option.visual;return e[Math.round(Lt(r,[0,1],[0,e.length-1],!0))]||{}}function os(r){return function(e,t,a){a(r,this.mapValueToVisual(e))}}function xs(r){var e=this.option.visual;return e[this.option.loop&&r!==Zf?r%e.length:r]}function kn(){return this.option.visual[0]}function Pd(r){return{linear:function(e){return Lt(e,r,this.option.visual,!0)},category:xs,piecewise:function(e,t){var a=Rd.call(this,t);return a==null&&(a=Lt(e,r,this.option.visual,!0)),a},fixed:kn}}function Rd(r){var e=this.option,t=e.pieceList;if(e.hasSpecialVisual){var a=ae.findPieceIndex(r,t),n=t[a];if(n&&n.visual)return n.visual[this.type]}}function fM(r,e){return r.visual=e,r.type==="color"&&(r.parsedVisual=G(e,function(t){var a=Ie(t);return a||[0,0,0,1]})),e}var TG={linear:function(r){return Lt(r,this.option.dataExtent,[0,1],!0)},piecewise:function(r){var e=this.option.pieceList,t=ae.findPieceIndex(r,e,!0);if(t!=null)return Lt(t,[0,e.length-1],[0,1],!0)},category:function(r){var e=this.option.categories?this.option.categoryMap[r]:r;return e??Zf},fixed:Yt};function Pu(r,e,t){return r?e<=t:e=t.length||d===t[d.depth]){var y=LG(n,l,d,g,p,a);vM(d,y,t,a)}})}}}function DG(r,e,t){var a=V({},e),n=t.designatedVisualItemStyle;return C(["color","colorAlpha","colorSaturation"],function(i){n[i]=e[i];var o=r.get(i);n[i]=null,o!=null&&(a[i]=o)}),a}function RS(r){var e=Cc(r,"color");if(e){var t=Cc(r,"colorAlpha"),a=Cc(r,"colorSaturation");return a&&(e=Qi(e,null,null,a)),t&&(e=Xs(e,t)),e}}function MG(r,e){return e!=null?Qi(e,null,null,r):null}function Cc(r,e){var t=r[e];if(t!=null&&t!=="none")return t}function IG(r,e,t,a,n,i){if(!(!i||!i.length)){var o=Dc(e,"color")||n.color!=null&&n.color!=="none"&&(Dc(e,"colorAlpha")||Dc(e,"colorSaturation"));if(o){var s=e.get("visualMin"),l=e.get("visualMax"),u=t.dataExtent.slice();s!=null&&su[1]&&(u[1]=l);var f=e.get("colorMappingBy"),h={type:o.name,dataExtent:u,visual:o.range};h.type==="color"&&(f==="index"||f==="id")?(h.mappingMethod="category",h.loop=!0):h.mappingMethod="linear";var v=new ae(h);return hM(v).drColorMappingBy=f,v}}}function Dc(r,e){var t=r.get(e);return z(t)&&t.length?{name:e,range:t}:null}function LG(r,e,t,a,n,i){var o=V({},e);if(n){var s=n.type,l=s==="color"&&hM(n).drColorMappingBy,u=l==="index"?a:l==="id"?i.mapIdToIndex(t.getId()):t.getValue(r.get("visualDimension"));o[s]=n.mapValueToVisual(u)}return o}var vl=Math.max,qf=Math.min,ES=ee,Ny=C,cM=["itemStyle","borderWidth"],PG=["itemStyle","gapWidth"],RG=["upperLabel","show"],EG=["upperLabel","height"];const kG={seriesType:"treemap",reset:function(r,e,t,a){var n=t.getWidth(),i=t.getHeight(),o=r.option,s=jt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),l=o.size||[],u=W(ES(s.width,l[0]),n),f=W(ES(s.height,l[1]),i),h=a&&a.type,v=["treemapZoomToNode","treemapRootToNode"],c=fl(a,v,r),p=h==="treemapRender"||h==="treemapMove"?a.rootRect:null,d=r.getViewRoot(),g=sM(d);if(h!=="treemapMove"){var y=h==="treemapZoomToNode"?GG(r,c,d,u,f):p?[p.width,p.height]:[u,f],m=o.sort;m&&m!=="asc"&&m!=="desc"&&(m="desc");var _={squareRatio:o.squareRatio,sort:m,leafDepth:o.leafDepth};d.hostTree.clearLayouts();var S={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};d.setLayout(S),pM(d,_,!1,0),S=d.getLayout(),Ny(g,function(x,w){var T=(g[w+1]||d).getValue();x.setLayout(V({dataExtent:[T,T],borderWidth:0,upperHeight:0},S))})}var b=r.getData().tree.root;b.setLayout(FG(s,p,c),!0),r.setLayoutInfo(s),dM(b,new ht(-s.x,-s.y,n,i),g,d,0)}};function pM(r,e,t,a){var n,i;if(!r.isRemoved()){var o=r.getLayout();n=o.width,i=o.height;var s=r.getModel(),l=s.get(cM),u=s.get(PG)/2,f=gM(s),h=Math.max(l,f),v=l-u,c=h-u;r.setLayout({borderWidth:l,upperHeight:h,upperLabelHeight:f},!0),n=vl(n-2*v,0),i=vl(i-v-c,0);var p=n*i,d=OG(r,s,p,e,t,a);if(d.length){var g={x:v,y:c,width:n,height:i},y=qf(n,i),m=1/0,_=[];_.area=0;for(var S=0,b=d.length;S=0;l--){var u=n[a==="asc"?o-l-1:l].getValue();u/t*es[1]&&(s[1]=u)})),{sum:a,dataExtent:s}}function zG(r,e,t){for(var a=0,n=1/0,i=0,o=void 0,s=r.length;ia&&(a=o));var l=r.area*r.area,u=e*e*t;return l?vl(u*a/l,l/(u*n)):1/0}function kS(r,e,t,a,n){var i=e===t.width?0:1,o=1-i,s=["x","y"],l=["width","height"],u=t[s[i]],f=e?r.area/e:0;(n||f>t[l[o]])&&(f=t[l[o]]);for(var h=0,v=r.length;hGp&&(u=Gp),i=s}ua&&(a=e);var i=a%2?a+2:a+3;n=[];for(var o=0;o0&&(b[0]=-b[0],b[1]=-b[1]);var w=S[0]<0?-1:1;if(i.__position!=="start"&&i.__position!=="end"){var T=-Math.atan2(S[1],S[0]);h[0].8?"left":v[0]<-.8?"right":"center",d=v[1]>.8?"top":v[1]<-.8?"bottom":"middle";break;case"start":i.x=-v[0]*y+f[0],i.y=-v[1]*m+f[1],p=v[0]>.8?"right":v[0]<-.8?"left":"center",d=v[1]>.8?"bottom":v[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=y*w+f[0],i.y=f[1]+A,p=S[0]<0?"right":"left",i.originX=-y*w,i.originY=-A;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=x[0],i.y=x[1]+A,p="center",i.originY=-A;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-y*w+h[0],i.y=h[1]+A,p=S[0]>=0?"right":"left",i.originX=y*w,i.originY=-A;break}i.scaleX=i.scaleY=o,i.setStyle({verticalAlign:i.__verticalAlign||d,align:i.__align||p})}},e}(at),Fy=function(){function r(e){this.group=new at,this._LineCtor=e||Gy}return r.prototype.updateData=function(e){var t=this;this._progressiveEls=null;var a=this,n=a.group,i=a._lineData;a._lineData=e,i||n.removeAll();var o=GS(e);e.diff(i).add(function(s){t._doAdd(e,s,o)}).update(function(s,l){t._doUpdate(i,e,l,s,o)}).remove(function(s){n.remove(i.getItemGraphicEl(s))}).execute()},r.prototype.updateLayout=function(){var e=this._lineData;e&&e.eachItemGraphicEl(function(t,a){t.updateLayout(e,a)},this)},r.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=GS(e),this._lineData=null,this.group.removeAll()},r.prototype.incrementalUpdate=function(e,t){this._progressiveEls=[];function a(s){!s.isGroup&&!iF(s)&&(s.incremental=!0,s.ensureState("emphasis").hoverLayer=!0)}for(var n=e.start;n0}function GS(r){var e=r.hostModel,t=e.getModel("emphasis");return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:t.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:t.get("disabled"),blurScope:t.get("blurScope"),focus:t.get("focus"),labelStatesModels:ne(e)}}function FS(r){return isNaN(r[0])||isNaN(r[1])}function Rc(r){return r&&!FS(r[0])&&!FS(r[1])}var Ec=[],kc=[],Oc=[],ki=se,Nc=Wa,HS=Math.abs;function WS(r,e,t){for(var a=r[0],n=r[1],i=r[2],o=1/0,s,l=t*t,u=.1,f=.1;f<=.9;f+=.1){Ec[0]=ki(a[0],n[0],i[0],f),Ec[1]=ki(a[1],n[1],i[1],f);var h=HS(Nc(Ec,e)-l);h=0?s=s+u:s=s-u:p>=0?s=s-u:s=s+u}return s}function Bc(r,e){var t=[],a=Us,n=[[],[],[]],i=[[],[]],o=[];e/=2,r.eachEdge(function(s,l){var u=s.getLayout(),f=s.getVisual("fromSymbol"),h=s.getVisual("toSymbol");u.__original||(u.__original=[Ur(u[0]),Ur(u[1])],u[2]&&u.__original.push(Ur(u[2])));var v=u.__original;if(u[2]!=null){if(ge(n[0],v[0]),ge(n[1],v[2]),ge(n[2],v[1]),f&&f!=="none"){var c=ws(s.node1),p=WS(n,v[0],c*e);a(n[0][0],n[1][0],n[2][0],p,t),n[0][0]=t[3],n[1][0]=t[4],a(n[0][1],n[1][1],n[2][1],p,t),n[0][1]=t[3],n[1][1]=t[4]}if(h&&h!=="none"){var c=ws(s.node2),p=WS(n,v[1],c*e);a(n[0][0],n[1][0],n[2][0],p,t),n[1][0]=t[1],n[2][0]=t[2],a(n[0][1],n[1][1],n[2][1],p,t),n[1][1]=t[1],n[2][1]=t[2]}ge(u[0],n[0]),ge(u[1],n[2]),ge(u[2],n[1])}else{if(ge(i[0],v[0]),ge(i[1],v[1]),Na(o,i[1],i[0]),hi(o,o),f&&f!=="none"){var c=ws(s.node1);vf(i[0],i[0],o,c*e)}if(h&&h!=="none"){var c=ws(s.node2);vf(i[1],i[1],o,-c*e)}ge(u[0],i[0]),ge(u[1],i[1])}})}function US(r){return r.type==="view"}var oF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){var n=new El,i=new Fy,o=this.group;this._controller=new Vl(a.getZr()),this._controllerHost={target:o},o.add(n.group),o.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,a,n){var i=this,o=t.coordinateSystem;this._model=t;var s=this._symbolDraw,l=this._lineDraw,u=this.group;if(US(o)){var f={x:o.x,y:o.y,scaleX:o.scaleX,scaleY:o.scaleY};this._firstRender?u.attr(f):Dt(u,f,t)}Bc(t.getGraph(),bs(t));var h=t.getData();s.updateData(h);var v=t.getEdgeData();l.updateData(v),this._updateNodeAndLinkScale(),this._updateController(t,a,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p);var d=t.get("layout");h.graph.eachNode(function(_){var S=_.dataIndex,b=_.getGraphicEl(),x=_.getModel();if(b){b.off("drag").off("dragend");var w=x.get("draggable");w&&b.on("drag",function(A){switch(d){case"force":c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(S),h.setItemLayout(S,[b.x,b.y]);break;case"circular":h.setItemLayout(S,[b.x,b.y]),_.setLayout({fixed:!0},!0),zy(t,"symbolSize",_,[A.offsetX,A.offsetY]),i.updateLayout(t);break;case"none":default:h.setItemLayout(S,[b.x,b.y]),Vy(t.getGraph(),t),i.updateLayout(t);break}}).on("dragend",function(){c&&c.setUnfixed(S)}),b.setDraggable(w,!!x.get("cursor"));var T=x.get(["emphasis","focus"]);T==="adjacency"&&(nt(b).focus=_.getAdjacentDataIndices())}}),h.graph.eachEdge(function(_){var S=_.getGraphicEl(),b=_.getModel().get(["emphasis","focus"]);S&&b==="adjacency"&&(nt(S).focus={edge:[_.dataIndex],node:[_.node1.dataIndex,_.node2.dataIndex]})});var g=t.get("layout")==="circular"&&t.get(["circular","rotateLabel"]),y=h.getLayout("cx"),m=h.getLayout("cy");h.graph.eachNode(function(_){SM(_,g,y,m)}),this._firstRender=!1},e.prototype.dispose=function(){this.remove(),this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,a){var n=this;(function i(){t.step(function(o){n.updateLayout(n._model),(n._layouting=!o)&&(a?n._layoutTimeout=setTimeout(i,16):i())})})()},e.prototype._updateController=function(t,a,n){var i=this,o=this._controller,s=this._controllerHost,l=this.group;if(o.setPointerChecker(function(u,f,h){var v=l.getBoundingRect();return v.applyTransform(l.transform),v.contain(f,h)&&!Uh(u,n,t)}),!US(t.coordinateSystem)){o.disable();return}o.enable(t.get("roam")),s.zoomLimit=t.get("scaleLimit"),s.zoom=t.coordinateSystem.getZoom(),o.off("pan").off("zoom").on("pan",function(u){Iy(s,u.dx,u.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:u.dx,dy:u.dy})}).on("zoom",function(u){Ly(s,u.scale,u.originX,u.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:u.scale,originX:u.originX,originY:u.originY}),i._updateNodeAndLinkScale(),Bc(t.getGraph(),bs(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()})},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,a=t.getData(),n=bs(t);a.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(n)})},e.prototype.updateLayout=function(t){Bc(t.getGraph(),bs(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(){clearTimeout(this._layoutTimeout),this._layouting=!1,this._layoutTimeout=null,this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(Rt);function Oi(r){return"_EC_"+r}var sF=function(){function r(e){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=e||!1}return r.prototype.isDirected=function(){return this._directed},r.prototype.addNode=function(e,t){e=e==null?""+t:""+e;var a=this._nodesMap;if(!a[Oi(e)]){var n=new On(e,t);return n.hostGraph=this,this.nodes.push(n),a[Oi(e)]=n,n}},r.prototype.getNodeByIndex=function(e){var t=this.data.getRawIndex(e);return this.nodes[t]},r.prototype.getNodeById=function(e){return this._nodesMap[Oi(e)]},r.prototype.addEdge=function(e,t,a){var n=this._nodesMap,i=this._edgesMap;if(Ct(e)&&(e=this.nodes[e]),Ct(t)&&(t=this.nodes[t]),e instanceof On||(e=n[Oi(e)]),t instanceof On||(t=n[Oi(t)]),!(!e||!t)){var o=e.id+"-"+t.id,s=new bM(e,t,a);return s.hostGraph=this,this._directed&&(e.outEdges.push(s),t.inEdges.push(s)),e.edges.push(s),e!==t&&t.edges.push(s),this.edges.push(s),i[o]=s,s}},r.prototype.getEdgeByIndex=function(e){var t=this.edgeData.getRawIndex(e);return this.edges[t]},r.prototype.getEdge=function(e,t){e instanceof On&&(e=e.id),t instanceof On&&(t=t.id);var a=this._edgesMap;return this._directed?a[e+"-"+t]:a[e+"-"+t]||a[t+"-"+e]},r.prototype.eachNode=function(e,t){for(var a=this.nodes,n=a.length,i=0;i=0&&e.call(t,a[i],i)},r.prototype.eachEdge=function(e,t){for(var a=this.edges,n=a.length,i=0;i=0&&a[i].node1.dataIndex>=0&&a[i].node2.dataIndex>=0&&e.call(t,a[i],i)},r.prototype.breadthFirstTraverse=function(e,t,a,n){if(t instanceof On||(t=this._nodesMap[Oi(t)]),!!t){for(var i=a==="out"?"outEdges":a==="in"?"inEdges":"edges",o=0;o=0&&l.node2.dataIndex>=0});for(var i=0,o=n.length;i=0&&this[r][e].setItemVisual(this.dataIndex,t,a)},getVisual:function(t){return this[r][e].getItemVisual(this.dataIndex,t)},setLayout:function(t,a){this.dataIndex>=0&&this[r][e].setItemLayout(this.dataIndex,t,a)},getLayout:function(){return this[r][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[r][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[r][e].getRawIndex(this.dataIndex)}}}Xt(On,wM("hostGraph","data"));Xt(bM,wM("hostGraph","edgeData"));function TM(r,e,t,a,n){for(var i=new sF(a),o=0;o "+v)),u++)}var c=t.get("coordinateSystem"),p;if(c==="cartesian2d"||c==="polar")p=Jr(r,t);else{var d=Io.get(c),g=d?d.dimensions||[]:[];vt(g,"value")<0&&g.concat(["value"]);var y=Eo(r,{coordDimensions:g,encodeDefine:t.getEncode()}).dimensions;p=new Le(y,t),p.initData(r)}var m=new Le(["value"],t);return m.initData(l,s),n&&n(p,m),iM({mainData:p,struct:i,structAttr:"graph",datas:{node:p,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),i.update(),i}var lF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments);var a=this;function n(){return a._categoriesData}this.legendVisualProvider=new Bl(n,n),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(t){r.prototype.mergeDefaultAndTheme.apply(this,arguments),ai(t,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,a){var n=t.edges||t.links||[],i=t.data||t.nodes||[],o=this;if(i&&n){ZG(this);var s=TM(i,n,this,!0,l);return C(s.edges,function(u){qG(u.node1,u.node2,this,u.dataIndex)},this),s.data}function l(u,f){u.wrapMethod("getItemModel",function(p){var d=o._categoriesModels,g=p.getShallow("category"),y=d[g];return y&&(y.parentModel=p.parentModel,p.parentModel=y),p});var h=Mt.prototype.getModel;function v(p,d){var g=h.call(this,p,d);return g.resolveParentPath=c,g}f.wrapMethod("getItemModel",function(p){return p.resolveParentPath=c,p.getModel=v,p});function c(p){if(p&&(p[0]==="label"||p[1]==="label")){var d=p.slice();return p[0]==="label"?d[0]="edgeLabel":p[1]==="label"&&(d[1]="edgeLabel"),d}return p}}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,a,n){if(n==="edge"){var i=this.getData(),o=this.getDataParams(t,n),s=i.graph.getEdgeByIndex(t),l=i.getName(s.node1.dataIndex),u=i.getName(s.node2.dataIndex),f=[];return l!=null&&f.push(l),u!=null&&f.push(u),ie("nameValue",{name:f.join(" > "),value:o.value,noValue:o.value==null})}var h=ZA({series:this,dataIndex:t,multipleSeries:a});return h},e.prototype._updateCategoriesData=function(){var t=G(this.option.categories||[],function(n){return n.value!=null?n:V({value:0},n)}),a=new Le(["value"],this);a.initData(t),this._categoriesData=a,this._categoriesModels=a.mapArray(function(n){return a.getItemModel(n)})},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return r.prototype.isAnimationEnabled.call(this)&&!(this.get("layout")==="force"&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(kt),uF={type:"graphRoam",event:"graphRoam",update:"none"};function fF(r){r.registerChartView(oF),r.registerSeriesModel(lF),r.registerProcessor(WG),r.registerVisual(UG),r.registerVisual(YG),r.registerLayout(KG),r.registerLayout(r.PRIORITY.VISUAL.POST_CHART_LAYOUT,QG),r.registerLayout(tF),r.registerCoordinateSystem("graphView",{dimensions:zl.dimensions,create:rF}),r.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},Yt),r.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},Yt),r.registerAction(uF,function(e,t,a){t.eachComponent({mainType:"series",query:e},function(n){var i=n.coordinateSystem,o=Ry(i,e,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}var hF=function(){function r(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return r}(),vF=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="pointer",a}return e.prototype.getDefaultShape=function(){return new hF},e.prototype.buildPath=function(t,a){var n=Math.cos,i=Math.sin,o=a.r,s=a.width,l=a.angle,u=a.x-n(l)*s*(s>=o/3?1:2),f=a.y-i(l)*s*(s>=o/3?1:2);l=a.angle-Math.PI/2,t.moveTo(u,f),t.lineTo(a.x+n(l)*s,a.y+i(l)*s),t.lineTo(a.x+n(a.angle)*o,a.y+i(a.angle)*o),t.lineTo(a.x-n(l)*s,a.y-i(l)*s),t.lineTo(u,f)},e}(yt);function cF(r,e){var t=r.get("center"),a=e.getWidth(),n=e.getHeight(),i=Math.min(a,n),o=W(t[0],e.getWidth()),s=W(t[1],e.getHeight()),l=W(r.get("radius"),i/2);return{cx:o,cy:s,r:l}}function Eu(r,e){var t=r==null?"":r+"";return e&&(U(e)?t=e.replace("{value}",t):K(e)&&(t=e(r))),t}var pF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),o=cF(t,n);this._renderMain(t,a,n,i,o),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,a,n,i,o){var s=this.group,l=t.get("clockwise"),u=-t.get("startAngle")/180*Math.PI,f=-t.get("endAngle")/180*Math.PI,h=t.getModel("axisLine"),v=h.get("roundCap"),c=v?Uf:_e,p=h.get("show"),d=h.getModel("lineStyle"),g=d.get("width"),y=[u,f];Dg(y,!l),u=y[0],f=y[1];for(var m=f-u,_=u,S=[],b=0;p&&b=A&&(D===0?0:i[D-1][0])Math.PI/2&&(J+=Math.PI)):j==="tangential"?J=-T-Math.PI/2:Ct(j)&&(J=j*Math.PI/180),J===0?h.add(new bt({style:Nt(_,{text:B,x:H,y:Y,verticalAlign:R<-.8?"top":R>.8?"bottom":"middle",align:P<-.4?"left":P>.4?"right":"center"},{inheritColor:F}),silent:!0})):h.add(new bt({style:Nt(_,{text:B,x:H,y:Y,verticalAlign:"middle",align:"center"},{inheritColor:F}),silent:!0,originX:H,originY:Y,rotation:J}))}if(m.get("show")&&E!==S){var N=m.get("distance");N=N?N+f:f;for(var ct=0;ct<=b;ct++){P=Math.cos(T),R=Math.sin(T);var xt=new Jt({shape:{x1:P*(p-N)+v,y1:R*(p-N)+c,x2:P*(p-w-N)+v,y2:R*(p-w-N)+c},silent:!0,style:I});I.stroke==="auto"&&xt.setStyle({stroke:i((E+ct/b)/S)}),h.add(xt),T+=D}T-=D}else T+=A}},e.prototype._renderPointer=function(t,a,n,i,o,s,l,u,f){var h=this.group,v=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),g=t.getModel("progress"),y=g.get("show"),m=t.getData(),_=m.mapDimension("value"),S=+t.get("min"),b=+t.get("max"),x=[S,b],w=[s,l];function T(D,M){var I=m.getItemModel(D),L=I.getModel("pointer"),P=W(L.get("width"),o.r),R=W(L.get("length"),o.r),E=t.get(["pointer","icon"]),N=L.get("offsetCenter"),O=W(N[0],o.r),B=W(N[1],o.r),F=L.get("keepAspect"),H;return E?H=Zt(E,O-P/2,B-R,P,R,null,F):H=new vF({shape:{angle:-Math.PI/2,width:P,r:R,x:O,y:B}}),H.rotation=-(M+Math.PI/2),H.x=o.cx,H.y=o.cy,H}function A(D,M){var I=g.get("roundCap"),L=I?Uf:_e,P=g.get("overlap"),R=P?g.get("width"):f/m.count(),E=P?o.r-R:o.r-(D+1)*R,N=P?o.r:o.r-D*R,O=new L({shape:{startAngle:s,endAngle:M,cx:o.cx,cy:o.cy,clockwise:u,r0:E,r:N}});return P&&(O.z2=b-m.get(_,D)%b),O}(y||d)&&(m.diff(v).add(function(D){var M=m.get(_,D);if(d){var I=T(D,s);Vt(I,{rotation:-((isNaN(+M)?w[0]:Lt(M,x,w,!0))+Math.PI/2)},t),h.add(I),m.setItemGraphicEl(D,I)}if(y){var L=A(D,s),P=g.get("clip");Vt(L,{shape:{endAngle:Lt(M,x,w,P)}},t),h.add(L),Xp(t.seriesIndex,m.dataType,D,L),p[D]=L}}).update(function(D,M){var I=m.get(_,D);if(d){var L=v.getItemGraphicEl(M),P=L?L.rotation:s,R=T(D,P);R.rotation=P,Dt(R,{rotation:-((isNaN(+I)?w[0]:Lt(I,x,w,!0))+Math.PI/2)},t),h.add(R),m.setItemGraphicEl(D,R)}if(y){var E=c[M],N=E?E.shape.endAngle:s,O=A(D,N),B=g.get("clip");Dt(O,{shape:{endAngle:Lt(I,x,w,B)}},t),h.add(O),Xp(t.seriesIndex,m.dataType,D,O),p[D]=O}}).execute(),m.each(function(D){var M=m.getItemModel(D),I=M.getModel("emphasis"),L=I.get("focus"),P=I.get("blurScope"),R=I.get("disabled");if(d){var E=m.getItemGraphicEl(D),N=m.getItemVisual(D,"style"),O=N.fill;if(E instanceof oe){var B=E.style;E.useStyle(V({image:B.image,x:B.x,y:B.y,width:B.width,height:B.height},N))}else E.useStyle(N),E.type!=="pointer"&&E.setColor(O);E.setStyle(M.getModel(["pointer","itemStyle"]).getItemStyle()),E.style.fill==="auto"&&E.setStyle("fill",i(Lt(m.get(_,D),x,[0,1],!0))),E.z2EmphasisLift=0,he(E,M),Wt(E,L,P,R)}if(y){var F=p[D];F.useStyle(m.getItemVisual(D,"style")),F.setStyle(M.getModel(["progress","itemStyle"]).getItemStyle()),F.z2EmphasisLift=0,he(F,M),Wt(F,L,P,R)}}),this._progressEls=p)},e.prototype._renderAnchor=function(t,a){var n=t.getModel("anchor"),i=n.get("show");if(i){var o=n.get("size"),s=n.get("icon"),l=n.get("offsetCenter"),u=n.get("keepAspect"),f=Zt(s,a.cx-o/2+W(l[0],a.r),a.cy-o/2+W(l[1],a.r),o,o,null,u);f.z2=n.get("showAbove")?1:0,f.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(f)}},e.prototype._renderTitleAndDetail=function(t,a,n,i,o){var s=this,l=t.getData(),u=l.mapDimension("value"),f=+t.get("min"),h=+t.get("max"),v=new at,c=[],p=[],d=t.isAnimationEnabled(),g=t.get(["pointer","showAbove"]);l.diff(this._data).add(function(y){c[y]=new bt({silent:!0}),p[y]=new bt({silent:!0})}).update(function(y,m){c[y]=s._titleEls[m],p[y]=s._detailEls[m]}).execute(),l.each(function(y){var m=l.getItemModel(y),_=l.get(u,y),S=new at,b=i(Lt(_,[f,h],[0,1],!0)),x=m.getModel("title");if(x.get("show")){var w=x.get("offsetCenter"),T=o.cx+W(w[0],o.r),A=o.cy+W(w[1],o.r),D=c[y];D.attr({z2:g?0:2,style:Nt(x,{x:T,y:A,text:l.getName(y),align:"center",verticalAlign:"middle"},{inheritColor:b})}),S.add(D)}var M=m.getModel("detail");if(M.get("show")){var I=M.get("offsetCenter"),L=o.cx+W(I[0],o.r),P=o.cy+W(I[1],o.r),R=W(M.get("width"),o.r),E=W(M.get("height"),o.r),N=t.get(["progress","show"])?l.getItemVisual(y,"style").fill:b,D=p[y],O=M.get("formatter");D.attr({z2:g?0:2,style:Nt(M,{x:L,y:P,text:Eu(_,O),width:isNaN(R)?null:R,height:isNaN(E)?null:E,align:"center",verticalAlign:"middle"},{inheritColor:N})}),tA(D,{normal:M},_,function(F){return Eu(F,O)}),d&&eA(D,y,l,t,{getFormattedLabel:function(F,H,Y,j,J,ct){return Eu(ct?ct.interpolatedValue:_,O)}}),S.add(D)}v.add(S)}),this.group.add(v),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(Rt),dF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.visualStyleAccessPath="itemStyle",t}return e.prototype.getInitialData=function(t,a){return No(this,["value"])},e.type="series.gauge",e.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(kt);function gF(r){r.registerChartView(pF),r.registerSeriesModel(dF)}var yF=["itemStyle","opacity"],mF=function(r){k(e,r);function e(t,a){var n=r.call(this)||this,i=n,o=new be,s=new bt;return i.setTextContent(s),n.setTextGuideLine(o),n.updateData(t,a,!0),n}return e.prototype.updateData=function(t,a,n){var i=this,o=t.hostModel,s=t.getItemModel(a),l=t.getItemLayout(a),u=s.getModel("emphasis"),f=s.get(yF);f=f??1,n||Ir(i),i.useStyle(t.getItemVisual(a,"style")),i.style.lineJoin="round",n?(i.setShape({points:l.points}),i.style.opacity=0,Vt(i,{style:{opacity:f}},o,a)):Dt(i,{style:{opacity:f},shape:{points:l.points}},o,a),he(i,s),this._updateLabel(t,a),Wt(this,u.get("focus"),u.get("blurScope"),u.get("disabled"))},e.prototype._updateLabel=function(t,a){var n=this,i=this.getTextGuideLine(),o=n.getTextContent(),s=t.hostModel,l=t.getItemModel(a),u=t.getItemLayout(a),f=u.label,h=t.getItemVisual(a,"style"),v=h.fill;ve(o,ne(l),{labelFetcher:t.hostModel,labelDataIndex:a,defaultOpacity:h.opacity,defaultText:t.getName(a)},{normal:{align:f.textAlign,verticalAlign:f.verticalAlign}}),n.setTextConfig({local:!0,inside:!!f.inside,insideStroke:v,outsideFill:v});var c=f.linePoints;i.setShape({points:c}),n.textGuideLineConfig={anchor:c?new ft(c[0][0],c[0][1]):null},Dt(o,{style:{x:f.x,y:f.y}},s,a),o.attr({rotation:f.rotation,originX:f.x,originY:f.y,z2:10}),my(n,_y(l),{stroke:v})},e}(Se),_F=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.ignoreLabelLineUpdate=!0,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this._data,s=this.group;i.diff(o).add(function(l){var u=new mF(i,l);i.setItemGraphicEl(l,u),s.add(u)}).update(function(l,u){var f=o.getItemGraphicEl(u);f.updateData(i,l),s.add(f),i.setItemGraphicEl(l,f)}).remove(function(l){var u=o.getItemGraphicEl(l);Qs(u,t,l)}).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(Rt),SF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new Bl(X(this.getData,this),X(this.getRawData,this)),this._defaultLabelLine(t)},e.prototype.getInitialData=function(t,a){return No(this,{coordDimensions:["value"],encodeDefaulter:it(qg,this)})},e.prototype._defaultLabelLine=function(t){ai(t,"labelLine",["show"]);var a=t.labelLine,n=t.emphasis.labelLine;a.show=a.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(t){var a=this.getData(),n=r.prototype.getDataParams.call(this,t),i=a.mapDimension("value"),o=a.getSum(i);return n.percent=o?+(a.get(i,t)/o*100).toFixed(2):0,n.$vars.push("percent"),n},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(kt);function xF(r,e){return jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function bF(r,e){for(var t=r.mapDimension("value"),a=r.mapArray(t,function(l){return l}),n=[],i=e==="ascending",o=0,s=r.count();oVF)return;var n=this._model.coordinateSystem.getSlidedAxisExpandWindow([r.offsetX,r.offsetY]);n.behavior!=="none"&&this._dispatchExpand({axisExpandWindow:n.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(r){if(!(this._mouseDownPoint||!zc(this,"mousemove"))){var e=this._model,t=e.coordinateSystem.getSlidedAxisExpandWindow([r.offsetX,r.offsetY]),a=t.behavior;a==="jump"&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand(a==="none"?null:{axisExpandWindow:t.axisExpandWindow,animation:a==="jump"?null:{duration:0}})}}};function zc(r,e){var t=r._model;return t.get("axisExpandable")&&t.get("axisExpandTriggerOn")===e}var FF=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(){r.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var a=this.option;t&&st(a,t,!0),this._initDimensions()},e.prototype.contains=function(t,a){var n=t.get("parallelIndex");return n!=null&&a.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){C(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(a){t.hasOwnProperty(a)&&(this.option[a]=t[a])},this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],a=this.parallelAxisIndex=[],n=Pt(this.ecModel.queryComponents({mainType:"parallelAxis"}),function(i){return(i.get("parallelIndex")||0)===this.componentIndex},this);C(n,function(i){t.push("dim"+i.get("dim")),a.push(i.componentIndex)})},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(mt),HF=function(r){k(e,r);function e(t,a,n,i,o){var s=r.call(this,t,a,n)||this;return s.type=i||"value",s.axisIndex=o,s}return e.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get("layout")!=="horizontal"},e}(Lr);function _i(r,e,t,a,n,i){r=r||0;var o=t[1]-t[0];if(n!=null&&(n=Ni(n,[0,o])),i!=null&&(i=Math.max(i,n??0)),a==="all"){var s=Math.abs(e[1]-e[0]);s=Ni(s,[0,o]),n=i=Ni(s,[n,i]),a=0}e[0]=Ni(e[0],t),e[1]=Ni(e[1],t);var l=Gc(e,a);e[a]+=r;var u=n||0,f=t.slice();l.sign<0?f[0]+=u:f[1]-=u,e[a]=Ni(e[a],f);var h;return h=Gc(e,a),n!=null&&(h.sign!==l.sign||h.spani&&(e[1-a]=e[a]+h.sign*i),e}function Gc(r,e){var t=r[e]-r[1-e];return{span:Math.abs(t),sign:t>0?-1:t<0?1:e?-1:1}}function Ni(r,e){return Math.min(e[1]!=null?e[1]:1/0,Math.max(e[0]!=null?e[0]:-1/0,r))}var Fc=C,CM=Math.min,DM=Math.max,$S=Math.floor,WF=Math.ceil,ZS=Ht,UF=Math.PI,YF=function(){function r(e,t,a){this.type="parallel",this._axesMap=Z(),this._axesLayout={},this.dimensions=e.dimensions,this._model=e,this._init(e,t,a)}return r.prototype._init=function(e,t,a){var n=e.dimensions,i=e.parallelAxisIndex;Fc(n,function(o,s){var l=i[s],u=t.getComponent("parallelAxis",l),f=this._axesMap.set(o,new HF(o,Pl(u),[0,0],u.get("type"),l)),h=f.type==="category";f.onBand=h&&u.get("boundaryGap"),f.inverse=u.get("inverse"),u.axis=f,f.model=u,f.coordinateSystem=u.coordinateSystem=this},this)},r.prototype.update=function(e,t){this._updateAxesFromSeries(this._model,e)},r.prototype.containPoint=function(e){var t=this._makeLayoutInfo(),a=t.axisBase,n=t.layoutBase,i=t.pixelDimIndex,o=e[1-i],s=e[i];return o>=a&&o<=a+t.axisLength&&s>=n&&s<=n+t.layoutLength},r.prototype.getModel=function(){return this._model},r.prototype._updateAxesFromSeries=function(e,t){t.eachSeries(function(a){if(e.contains(a,t)){var n=a.getData();Fc(this.dimensions,function(i){var o=this._axesMap.get(i);o.scale.unionExtentFromData(n,n.mapDimension(i)),li(o.scale,o.model)},this)}},this)},r.prototype.resize=function(e,t){this._rect=jt(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),this._layoutAxes()},r.prototype.getRect=function(){return this._rect},r.prototype._makeLayoutInfo=function(){var e=this._model,t=this._rect,a=["x","y"],n=["width","height"],i=e.get("layout"),o=i==="horizontal"?0:1,s=t[n[o]],l=[0,s],u=this.dimensions.length,f=ku(e.get("axisExpandWidth"),l),h=ku(e.get("axisExpandCount")||0,[0,u]),v=e.get("axisExpandable")&&u>3&&u>h&&h>1&&f>0&&s>0,c=e.get("axisExpandWindow"),p;if(c)p=ku(c[1]-c[0],l),c[1]=c[0]+p;else{p=ku(f*(h-1),l);var d=e.get("axisExpandCenter")||$S(u/2);c=[f*d-p/2],c[1]=c[0]+p}var g=(s-p)/(u-h);g<3&&(g=0);var y=[$S(ZS(c[0]/f,1))+1,WF(ZS(c[1]/f,1))-1],m=g/f*c[0];return{layout:i,pixelDimIndex:o,layoutBase:t[a[o]],layoutLength:s,axisBase:t[a[1-o]],axisLength:t[n[1-o]],axisExpandable:v,axisExpandWidth:f,axisCollapseWidth:g,axisExpandWindow:c,axisCount:u,winInnerIndices:y,axisExpandWindow0Pos:m}},r.prototype._layoutAxes=function(){var e=this._rect,t=this._axesMap,a=this.dimensions,n=this._makeLayoutInfo(),i=n.layout;t.each(function(o){var s=[0,n.axisLength],l=o.inverse?1:0;o.setExtent(s[l],s[1-l])}),Fc(a,function(o,s){var l=(n.axisExpandable?$F:XF)(s,n),u={horizontal:{x:l.position,y:n.axisLength},vertical:{x:0,y:l.position}},f={horizontal:UF/2,vertical:0},h=[u[i].x+e.x,u[i].y+e.y],v=f[i],c=Ge();an(c,c,v),Dr(c,c,h),this._axesLayout[o]={position:h,rotation:v,transform:c,axisNameAvailableWidth:l.axisNameAvailableWidth,axisLabelShow:l.axisLabelShow,nameTruncateMaxWidth:l.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},r.prototype.getAxis=function(e){return this._axesMap.get(e)},r.prototype.dataToPoint=function(e,t){return this.axisCoordToPoint(this._axesMap.get(t).dataToCoord(e),t)},r.prototype.eachActiveState=function(e,t,a,n){a==null&&(a=0),n==null&&(n=e.count());var i=this._axesMap,o=this.dimensions,s=[],l=[];C(o,function(g){s.push(e.mapDimension(g)),l.push(i.get(g).model)});for(var u=this.hasAxisBrushed(),f=a;fi*(1-h[0])?(u="jump",l=s-i*(1-h[2])):(l=s-i*h[1])>=0&&(l=s-i*(1-h[1]))<=0&&(l=0),l*=t.axisExpandWidth/f,l?_i(l,n,o,"all"):u="none";else{var c=n[1]-n[0],p=o[1]*s/c;n=[DM(0,p-c/2)],n[1]=CM(o[1],n[0]+c),n[0]=n[1]-c}return{axisExpandWindow:n,behavior:u}},r}();function ku(r,e){return CM(DM(r,e[0]),e[1])}function XF(r,e){var t=e.layoutLength/(e.axisCount-1);return{position:t*r,axisNameAvailableWidth:t,axisLabelShow:!0}}function $F(r,e){var t=e.layoutLength,a=e.axisExpandWidth,n=e.axisCount,i=e.axisCollapseWidth,o=e.winInnerIndices,s,l=i,u=!1,f;return r=0;n--)Ue(a[n])},e.prototype.getActiveState=function(t){var a=this.activeIntervals;if(!a.length)return"normal";if(t==null||isNaN(+t))return"inactive";if(a.length===1){var n=a[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,o=a.length;iQF}function EM(r){var e=r.length-1;return e<0&&(e=0),[r[0],r[e]]}function kM(r,e,t,a){var n=new at;return n.add(new wt({name:"main",style:Xy(t),silent:!0,draggable:!0,cursor:"move",drift:it(jS,r,e,n,["n","s","w","e"]),ondragend:it(fi,e,{isEnd:!0})})),C(a,function(i){n.add(new wt({name:i.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:it(jS,r,e,n,i),ondragend:it(fi,e,{isEnd:!0})}))}),n}function OM(r,e,t,a){var n=a.brushStyle.lineWidth||0,i=vo(n,JF),o=t[0][0],s=t[1][0],l=o-n/2,u=s-n/2,f=t[0][1],h=t[1][1],v=f-i+n/2,c=h-i+n/2,p=f-o,d=h-s,g=p+n,y=d+n;na(r,e,"main",o,s,p,d),a.transformable&&(na(r,e,"w",l,u,i,y),na(r,e,"e",v,u,i,y),na(r,e,"n",l,u,g,i),na(r,e,"s",l,c,g,i),na(r,e,"nw",l,u,i,i),na(r,e,"ne",v,u,i,i),na(r,e,"sw",l,c,i,i),na(r,e,"se",v,c,i,i))}function Vd(r,e){var t=e.__brushOption,a=t.transformable,n=e.childAt(0);n.useStyle(Xy(t)),n.attr({silent:!a,cursor:a?"move":"default"}),C([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(i){var o=e.childOfName(i.join("")),s=i.length===1?zd(r,i[0]):i3(r,i);o&&o.attr({silent:!a,invisible:!a,cursor:a?e3[s]+"-resize":null})})}function na(r,e,t,a,n,i,o){var s=e.childOfName(t);s&&s.setShape(s3($y(r,e,[[a,n],[a+i,n+o]])))}function Xy(r){return Q({strokeNoScale:!0},r.brushStyle)}function NM(r,e,t,a){var n=[pl(r,t),pl(e,a)],i=[vo(r,t),vo(e,a)];return[[n[0],i[0]],[n[1],i[1]]]}function n3(r){return Xa(r.group)}function zd(r,e){var t={w:"left",e:"right",n:"top",s:"bottom"},a={left:"w",right:"e",top:"n",bottom:"s"},n=Mh(t[e],n3(r));return a[n]}function i3(r,e){var t=[zd(r,e[0]),zd(r,e[1])];return(t[0]==="e"||t[0]==="w")&&t.reverse(),t.join("")}function jS(r,e,t,a,n,i){var o=t.__brushOption,s=r.toRectRange(o.range),l=BM(e,n,i);C(a,function(u){var f=t3[u];s[f[0]][f[1]]+=l[f[0]]}),o.range=r.fromRectRange(NM(s[0][0],s[1][0],s[0][1],s[1][1])),Wy(e,t),fi(e,{isEnd:!1})}function o3(r,e,t,a){var n=e.__brushOption.range,i=BM(r,t,a);C(n,function(o){o[0]+=i[0],o[1]+=i[1]}),Wy(r,e),fi(r,{isEnd:!1})}function BM(r,e,t){var a=r.group,n=a.transformCoordToLocal(e,t),i=a.transformCoordToLocal(0,0);return[n[0]-i[0],n[1]-i[1]]}function $y(r,e,t){var a=RM(r,e);return a&&a!==ui?a.clipPath(t,r._transform):et(t)}function s3(r){var e=pl(r[0][0],r[1][0]),t=pl(r[0][1],r[1][1]),a=vo(r[0][0],r[1][0]),n=vo(r[0][1],r[1][1]);return{x:e,y:t,width:a-e,height:n-t}}function l3(r,e,t){if(!(!r._brushType||f3(r,e.offsetX,e.offsetY))){var a=r._zr,n=r._covers,i=Yy(r,e,t);if(!r._dragging)for(var o=0;oa.getWidth()||t<0||t>a.getHeight()}var Zh={lineX:tx(0),lineY:tx(1),rect:{createCover:function(r,e){function t(a){return a}return kM({toRectRange:t,fromRectRange:t},r,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(r){var e=EM(r);return NM(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(r,e,t,a){OM(r,e,t,a)},updateCommon:Vd,contain:Fd},polygon:{createCover:function(r,e){var t=new at;return t.add(new be({name:"main",style:Xy(e),silent:!0})),t},getCreatingRange:function(r){return r},endCreating:function(r,e){e.remove(e.childAt(0)),e.add(new Se({name:"main",draggable:!0,drift:it(o3,r,e),ondragend:it(fi,r,{isEnd:!0})}))},updateCoverShape:function(r,e,t,a){e.childAt(0).setShape({points:$y(r,e,t)})},updateCommon:Vd,contain:Fd}};function tx(r){return{createCover:function(e,t){return kM({toRectRange:function(a){var n=[a,[0,100]];return r&&n.reverse(),n},fromRectRange:function(a){return a[r]}},e,t,[[["w"],["e"]],[["n"],["s"]]][r])},getCreatingRange:function(e){var t=EM(e),a=pl(t[0][r],t[1][r]),n=vo(t[0][r],t[1][r]);return[a,n]},updateCoverShape:function(e,t,a,n){var i,o=RM(e,t);if(o!==ui&&o.getLinearBrushOtherExtent)i=o.getLinearBrushOtherExtent(r);else{var s=e._zr;i=[0,[s.getWidth(),s.getHeight()][1-r]]}var l=[a,i];r&&l.reverse(),OM(e,t,l,n)},updateCommon:Vd,contain:Fd}}function zM(r){return r=Zy(r),function(e){return Vg(e,r)}}function GM(r,e){return r=Zy(r),function(t){var a=e??t,n=a?r.width:r.height,i=a?r.x:r.y;return[i,i+(n||0)]}}function FM(r,e,t){var a=Zy(r);return function(n,i){return a.contain(i[0],i[1])&&!Uh(n,e,t)}}function Zy(r){return ht.create(r)}var h3=["axisLine","axisTickLabel","axisName"],v3=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){r.prototype.init.apply(this,arguments),(this._brushController=new Hy(a.getZr())).on("brush",X(this._onBrush,this))},e.prototype.render=function(t,a,n,i){if(!c3(t,a,i)){this.axisModel=t,this.api=n,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new at,this.group.add(this._axisGroup),!!t.get("show")){var s=d3(t,a),l=s.coordinateSystem,u=t.getAreaSelectStyle(),f=u.width,h=t.axis.dim,v=l.getAxisLayout(h),c=V({strokeContainThreshold:f},v),p=new Pe(t,c);C(h3,p.add,p),this._axisGroup.add(p.getGroup()),this._refreshBrushController(c,u,t,s,f,n),Ml(o,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,a,n,i,o,s){var l=n.axis.getExtent(),u=l[1]-l[0],f=Math.min(30,Math.abs(u)*.1),h=ht.create({x:l[0],y:-o/2,width:u,height:o});h.x-=f,h.width+=2*f,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:zM(h),isTargetByCursor:FM(h,s,i),getLinearBrushOtherExtent:GM(h,0)}]).enableBrush({brushType:"lineX",brushStyle:a,removeOnClick:!0}).updateCovers(p3(n))},e.prototype._onBrush=function(t){var a=t.areas,n=this.axisModel,i=n.axis,o=G(a,function(s){return[i.coordToData(s.range[0],!0),i.coordToData(s.range[1],!0)]});(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:o})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}(zt);function c3(r,e,t){return t&&t.type==="axisAreaSelect"&&e.findComponents({mainType:"parallelAxis",query:t})[0]===r}function p3(r){var e=r.axis;return G(r.activeIntervals,function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}})}function d3(r,e){return e.getComponent("parallel",r.get("parallelIndex"))}var g3={type:"axisAreaSelect",event:"axisAreaSelected"};function y3(r){r.registerAction(g3,function(e,t){t.eachComponent({mainType:"parallelAxis",query:e},function(a){a.axis.model.setActiveIntervals(e.intervals)})}),r.registerAction("parallelAxisExpand",function(e,t){t.eachComponent({mainType:"parallel",query:e},function(a){a.setAxisExpand(e)})})}var m3={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function HM(r){r.registerComponentView(zF),r.registerComponentModel(FF),r.registerCoordinateSystem("parallel",qF),r.registerPreprocessor(OF),r.registerComponentModel(Nd),r.registerComponentView(v3),ho(r,"parallel",Nd,m3),y3(r)}function _3(r){gt(HM),r.registerChartView(DF),r.registerSeriesModel(LF),r.registerVisual(r.PRIORITY.VISUAL.BRUSH,kF)}var S3=function(){function r(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return r}(),x3=function(r){k(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new S3},e.prototype.buildPath=function(t,a){var n=a.extent;t.moveTo(a.x1,a.y1),t.bezierCurveTo(a.cpx1,a.cpy1,a.cpx2,a.cpy2,a.x2,a.y2),a.orient==="vertical"?(t.lineTo(a.x2+n,a.y2),t.bezierCurveTo(a.cpx2+n,a.cpy2,a.cpx1+n,a.cpy1,a.x1+n,a.y1)):(t.lineTo(a.x2,a.y2+n),t.bezierCurveTo(a.cpx2,a.cpy2+n,a.cpx1,a.cpy1+n,a.x1,a.y1+n)),t.closePath()},e.prototype.highlight=function(){da(this)},e.prototype.downplay=function(){ga(this)},e}(yt),b3=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._focusAdjacencyDisabled=!1,t}return e.prototype.render=function(t,a,n){var i=this,o=t.getGraph(),s=this.group,l=t.layoutInfo,u=l.width,f=l.height,h=t.getData(),v=t.getData("edge"),c=t.get("orient");this._model=t,s.removeAll(),s.x=l.x,s.y=l.y,o.eachEdge(function(p){var d=new x3,g=nt(d);g.dataIndex=p.dataIndex,g.seriesIndex=t.seriesIndex,g.dataType="edge";var y=p.getModel(),m=y.getModel("lineStyle"),_=m.get("curveness"),S=p.node1.getLayout(),b=p.node1.getModel(),x=b.get("localX"),w=b.get("localY"),T=p.node2.getLayout(),A=p.node2.getModel(),D=A.get("localX"),M=A.get("localY"),I=p.getLayout(),L,P,R,E,N,O,B,F;d.shape.extent=Math.max(1,I.dy),d.shape.orient=c,c==="vertical"?(L=(x!=null?x*u:S.x)+I.sy,P=(w!=null?w*f:S.y)+S.dy,R=(D!=null?D*u:T.x)+I.ty,E=M!=null?M*f:T.y,N=L,O=P*(1-_)+E*_,B=R,F=P*_+E*(1-_)):(L=(x!=null?x*u:S.x)+S.dx,P=(w!=null?w*f:S.y)+I.sy,R=D!=null?D*u:T.x,E=(M!=null?M*f:T.y)+I.ty,N=L*(1-_)+R*_,O=P,B=L*_+R*(1-_),F=E),d.setShape({x1:L,y1:P,x2:R,y2:E,cpx1:N,cpy1:O,cpx2:B,cpy2:F}),d.useStyle(m.getItemStyle()),ex(d.style,c,p);var H=""+y.get("value"),Y=ne(y,"edgeLabel");ve(d,Y,{labelFetcher:{getFormattedLabel:function(ct,xt,pt,rt,dt,lt){return t.getFormattedLabel(ct,xt,"edge",rt,br(dt,Y.normal&&Y.normal.get("formatter"),H),lt)}},labelDataIndex:p.dataIndex,defaultText:H}),d.setTextConfig({position:"inside"});var j=y.getModel("emphasis");he(d,y,"lineStyle",function(ct){var xt=ct.getItemStyle();return ex(xt,c,p),xt}),s.add(d),v.setItemGraphicEl(p.dataIndex,d);var J=j.get("focus");Wt(d,J==="adjacency"?p.getAdjacentDataIndices():J==="trajectory"?p.getTrajectoryDataIndices():J,j.get("blurScope"),j.get("disabled"))}),o.eachNode(function(p){var d=p.getLayout(),g=p.getModel(),y=g.get("localX"),m=g.get("localY"),_=g.getModel("emphasis"),S=g.get(["itemStyle","borderRadius"])||0,b=new wt({shape:{x:y!=null?y*u:d.x,y:m!=null?m*f:d.y,width:d.dx,height:d.dy,r:S},style:g.getModel("itemStyle").getItemStyle(),z2:10});ve(b,ne(g),{labelFetcher:{getFormattedLabel:function(w,T){return t.getFormattedLabel(w,T,"node")}},labelDataIndex:p.dataIndex,defaultText:p.id}),b.disableLabelAnimation=!0,b.setStyle("fill",p.getVisual("color")),b.setStyle("decal",p.getVisual("style").decal),he(b,g),s.add(b),h.setItemGraphicEl(p.dataIndex,b),nt(b).dataType="node";var x=_.get("focus");Wt(b,x==="adjacency"?p.getAdjacentDataIndices():x==="trajectory"?p.getTrajectoryDataIndices():x,_.get("blurScope"),_.get("disabled"))}),h.eachItemGraphicEl(function(p,d){var g=h.getItemModel(d);g.get("draggable")&&(p.drift=function(y,m){i._focusAdjacencyDisabled=!0,this.shape.x+=y,this.shape.y+=m,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:h.getRawIndex(d),localX:this.shape.x/u,localY:this.shape.y/f})},p.ondragend=function(){i._focusAdjacencyDisabled=!1},p.draggable=!0,p.cursor="move")}),!this._data&&t.isAnimationEnabled()&&s.setClipPath(w3(s.getBoundingRect(),t,function(){s.removeClipPath()})),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(Rt);function ex(r,e,t){switch(r.fill){case"source":r.fill=t.node1.getVisual("color"),r.decal=t.node1.getVisual("style").decal;break;case"target":r.fill=t.node2.getVisual("color"),r.decal=t.node2.getVisual("style").decal;break;case"gradient":var a=t.node1.getVisual("color"),n=t.node2.getVisual("color");U(a)&&U(n)&&(r.fill=new xo(0,0,+(e==="horizontal"),+(e==="vertical"),[{color:a,offset:0},{color:n,offset:1}]))}}function w3(r,e,t){var a=new wt({shape:{x:r.x-10,y:r.y-10,width:0,height:r.height+20}});return Vt(a,{shape:{width:r.width+20}},e,t),a}var T3=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){var n=t.edges||t.links,i=t.data||t.nodes,o=t.levels;this.levelModels=[];for(var s=this.levelModels,l=0;l=0&&(s[o[l].depth]=new Mt(o[l],this,a));if(i&&n){var u=TM(i,n,this,!0,f);return u.data}function f(h,v){h.wrapMethod("getItemModel",function(c,p){var d=c.parentModel,g=d.getData().getItemLayout(p);if(g){var y=g.depth,m=d.levelModels[y];m&&(c.parentModel=m)}return c}),v.wrapMethod("getItemModel",function(c,p){var d=c.parentModel,g=d.getGraph().getEdgeByIndex(p),y=g.node1.getLayout();if(y){var m=y.depth,_=d.levelModels[m];_&&(c.parentModel=_)}return c})}},e.prototype.setNodePosition=function(t,a){var n=this.option.data||this.option.nodes,i=n[t];i.localX=a[0],i.localY=a[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,a,n){function i(c){return isNaN(c)||c==null}if(n==="edge"){var o=this.getDataParams(t,n),s=o.data,l=o.value,u=s.source+" -- "+s.target;return ie("nameValue",{name:u,value:l,noValue:i(l)})}else{var f=this.getGraph().getNodeByIndex(t),h=f.getLayout().value,v=this.getDataParams(t,n).data.name;return ie("nameValue",{name:v!=null?v+"":null,value:h,noValue:i(h)})}},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(t,a){var n=r.prototype.getDataParams.call(this,t,a);if(n.value==null&&a==="node"){var i=this.getGraph().getNodeByIndex(t),o=i.getLayout().value;n.value=o}return n},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(kt);function A3(r,e){r.eachSeriesByType("sankey",function(t){var a=t.get("nodeWidth"),n=t.get("nodeGap"),i=C3(t,e);t.layoutInfo=i;var o=i.width,s=i.height,l=t.getGraph(),u=l.nodes,f=l.edges;M3(u);var h=Pt(u,function(d){return d.getLayout().value===0}),v=h.length!==0?0:t.get("layoutIterations"),c=t.get("orient"),p=t.get("nodeAlign");D3(u,f,a,n,o,s,v,c,p)})}function C3(r,e){return jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function D3(r,e,t,a,n,i,o,s,l){I3(r,e,t,n,i,s,l),E3(r,e,i,n,a,o,s),H3(r,s)}function M3(r){C(r,function(e){var t=qa(e.outEdges,Kf),a=qa(e.inEdges,Kf),n=e.getValue()||0,i=Math.max(t,a,n);e.setLayout({value:i},!0)})}function I3(r,e,t,a,n,i,o){for(var s=[],l=[],u=[],f=[],h=0,v=0;v=0;y&&g.depth>c&&(c=g.depth),d.setLayout({depth:y?g.depth:h},!0),i==="vertical"?d.setLayout({dy:t},!0):d.setLayout({dx:t},!0);for(var m=0;mh-1?c:h-1;o&&o!=="left"&&L3(r,o,i,w);var T=i==="vertical"?(n-t)/w:(a-t)/w;R3(r,T,i)}function WM(r){var e=r.hostGraph.data.getRawDataItem(r.dataIndex);return e.depth!=null&&e.depth>=0}function L3(r,e,t,a){if(e==="right"){for(var n=[],i=r,o=0;i.length;){for(var s=0;s0;i--)l*=.99,N3(s,l,o),Hc(s,n,t,a,o),F3(s,l,o),Hc(s,n,t,a,o)}function k3(r,e){var t=[],a=e==="vertical"?"y":"x",n=Hp(r,function(i){return i.getLayout()[a]});return n.keys.sort(function(i,o){return i-o}),C(n.keys,function(i){t.push(n.buckets.get(i))}),t}function O3(r,e,t,a,n,i){var o=1/0;C(r,function(s){var l=s.length,u=0;C(s,function(h){u+=h.getLayout().value});var f=i==="vertical"?(a-(l-1)*n)/u:(t-(l-1)*n)/u;f0&&(s=l.getLayout()[i]+u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),f=l.getLayout()[i]+l.getLayout()[v]+e;var p=n==="vertical"?a:t;if(u=f-e-p,u>0){s=l.getLayout()[i]-u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0),f=s;for(var c=h-2;c>=0;--c)l=o[c],u=l.getLayout()[i]+l.getLayout()[v]+e-f,u>0&&(s=l.getLayout()[i]-u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),f=l.getLayout()[i]}})}function N3(r,e,t){C(r.slice().reverse(),function(a){C(a,function(n){if(n.outEdges.length){var i=qa(n.outEdges,B3,t)/qa(n.outEdges,Kf);if(isNaN(i)){var o=n.outEdges.length;i=o?qa(n.outEdges,V3,t)/o:0}if(t==="vertical"){var s=n.getLayout().x+(i-tn(n,t))*e;n.setLayout({x:s},!0)}else{var l=n.getLayout().y+(i-tn(n,t))*e;n.setLayout({y:l},!0)}}})})}function B3(r,e){return tn(r.node2,e)*r.getValue()}function V3(r,e){return tn(r.node2,e)}function z3(r,e){return tn(r.node1,e)*r.getValue()}function G3(r,e){return tn(r.node1,e)}function tn(r,e){return e==="vertical"?r.getLayout().x+r.getLayout().dx/2:r.getLayout().y+r.getLayout().dy/2}function Kf(r){return r.getValue()}function qa(r,e,t){for(var a=0,n=r.length,i=-1;++io&&(o=l)}),C(a,function(s){var l=new ae({type:"color",mappingMethod:"linear",dataExtent:[i,o],visual:e.get("color")}),u=l.mapValueToVisual(s.getLayout().value),f=s.getModel().get(["itemStyle","color"]);f!=null?(s.setVisual("color",f),s.setVisual("style",{fill:f})):(s.setVisual("color",u),s.setVisual("style",{fill:u}))})}n.length&&C(n,function(s){var l=s.getModel().get("lineStyle");s.setVisual("style",l)})})}function U3(r){r.registerChartView(b3),r.registerSeriesModel(T3),r.registerLayout(A3),r.registerVisual(W3),r.registerAction({type:"dragNode",event:"dragnode",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"sankey",query:e},function(a){a.setNodePosition(e.dataIndex,[e.localX,e.localY])})})}var UM=function(){function r(){}return r.prototype.getInitialData=function(e,t){var a,n=t.getComponent("xAxis",this.get("xAxisIndex")),i=t.getComponent("yAxis",this.get("yAxisIndex")),o=n.get("type"),s=i.get("type"),l;o==="category"?(e.layout="horizontal",a=n.getOrdinalMeta(),l=!0):s==="category"?(e.layout="vertical",a=i.getOrdinalMeta(),l=!0):e.layout=e.layout||"horizontal";var u=["x","y"],f=e.layout==="horizontal"?0:1,h=this._baseAxisDim=u[f],v=u[1-f],c=[n,i],p=c[f].get("type"),d=c[1-f].get("type"),g=e.data;if(g&&l){var y=[];C(g,function(S,b){var x;z(S)?(x=S.slice(),S.unshift(b)):z(S.value)?(x=V({},S),x.value=x.value.slice(),S.value.unshift(b)):x=S,y.push(x)}),e.data=y}var m=this.defaultValueDimensions,_=[{name:h,type:zf(p),ordinalMeta:a,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:v,type:zf(d),dimsDef:m.slice()}];return No(this,{coordDimensions:_,dimensionsCount:m.length+1,encodeDefaulter:it(xA,_,this)})},r.prototype.getBaseAxis=function(){var e=this._baseAxisDim;return this.ecModel.getComponent(e+"Axis",this.get(e+"AxisIndex")).axis},r}(),YM=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],t.visualDrawType="stroke",t}return e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(kt);Xt(YM,UM,!0);var Y3=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this.group,s=this._data;this._data||o.removeAll();var l=t.get("layout")==="horizontal"?1:0;i.diff(s).add(function(u){if(i.hasValue(u)){var f=i.getItemLayout(u),h=rx(f,i,u,l,!0);i.setItemGraphicEl(u,h),o.add(h)}}).update(function(u,f){var h=s.getItemGraphicEl(f);if(!i.hasValue(u)){o.remove(h);return}var v=i.getItemLayout(u);h?(Ir(h),XM(v,h,i,u)):h=rx(v,i,u,l),o.add(h),i.setItemGraphicEl(u,h)}).remove(function(u){var f=s.getItemGraphicEl(u);f&&o.remove(f)}).execute(),this._data=i},e.prototype.remove=function(t){var a=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl(function(i){i&&a.remove(i)})},e.type="boxplot",e}(Rt),X3=function(){function r(){}return r}(),$3=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="boxplotBoxPath",a}return e.prototype.getDefaultShape=function(){return new X3},e.prototype.buildPath=function(t,a){var n=a.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();id){var S=[y,_];a.push(S)}}}return{boxData:t,outliers:a}}var tH={type:"echarts:boxplot",transform:function(e){var t=e.upstream;if(t.sourceFormat!==xe){var a="";It(a)}var n=J3(t.getRawData(),e.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:n.boxData},{data:n.outliers}]}};function eH(r){r.registerSeriesModel(YM),r.registerChartView(Y3),r.registerLayout(q3),r.registerTransform(tH)}var rH=["color","borderColor"],aH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,a,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,a,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,a):this._incrementalRenderNormal(t,a)},e.prototype.eachRendered=function(t){nn(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var a=t.pipelineContext.large;(this._isLargeDraw==null||a!==this._isLargeDraw)&&(this._isLargeDraw=a,this._clear())},e.prototype._renderNormal=function(t){var a=t.getData(),n=this._data,i=this.group,o=a.getLayout("isSimpleBox"),s=t.get("clip",!0),l=t.coordinateSystem,u=l.getArea&&l.getArea();this._data||i.removeAll(),a.diff(n).add(function(f){if(a.hasValue(f)){var h=a.getItemLayout(f);if(s&&ax(u,h))return;var v=Wc(h,f,!0);Vt(v,{shape:{points:h.ends}},t,f),Uc(v,a,f,o),i.add(v),a.setItemGraphicEl(f,v)}}).update(function(f,h){var v=n.getItemGraphicEl(h);if(!a.hasValue(f)){i.remove(v);return}var c=a.getItemLayout(f);if(s&&ax(u,c)){i.remove(v);return}v?(Dt(v,{shape:{points:c.ends}},t,f),Ir(v)):v=Wc(c),Uc(v,a,f,o),i.add(v),a.setItemGraphicEl(f,v)}).remove(function(f){var h=n.getItemGraphicEl(f);h&&i.remove(h)}).execute(),this._data=a},e.prototype._renderLarge=function(t){this._clear(),nx(t,this.group);var a=t.get("clip",!0)?kl(t.coordinateSystem,!1,t):null;a?this.group.setClipPath(a):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,a){for(var n=a.getData(),i=n.getLayout("isSimpleBox"),o;(o=t.next())!=null;){var s=n.getItemLayout(o),l=Wc(s);Uc(l,n,o,i),l.incremental=!0,this.group.add(l),this._progressiveEls.push(l)}},e.prototype._incrementalRenderLarge=function(t,a){nx(a,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(Rt),nH=function(){function r(){}return r}(),iH=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a.type="normalCandlestickBox",a}return e.prototype.getDefaultShape=function(){return new nH},e.prototype.buildPath=function(t,a){var n=a.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(yt);function Wc(r,e,t){var a=r.ends;return new iH({shape:{points:t?oH(a,r):a},z2:100})}function ax(r,e){for(var t=!0,a=0;a0?"borderColor":"borderColor0"])||t.get(["itemStyle",r>0?"color":"color0"]);r===0&&(n=t.get(["itemStyle","borderColorDoji"]));var i=t.getModel("itemStyle").getItemStyle(rH);e.useStyle(i),e.style.fill=null,e.style.stroke=n}var $M=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],t}return e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,a,n){var i=a.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(kt);Xt($M,UM,!0);function lH(r){!r||!z(r.series)||C(r.series,function(e){tt(e)&&e.type==="k"&&(e.type="candlestick")})}var uH=["itemStyle","borderColor"],fH=["itemStyle","borderColor0"],hH=["itemStyle","borderColorDoji"],vH=["itemStyle","color"],cH=["itemStyle","color0"],pH={seriesType:"candlestick",plan:Lo(),performRawSeries:!0,reset:function(r,e){function t(i,o){return o.get(i>0?vH:cH)}function a(i,o){return o.get(i===0?hH:i>0?uH:fH)}if(!e.isSeriesFiltered(r)){var n=r.pipelineContext.large;return!n&&{progress:function(i,o){for(var s;(s=i.next())!=null;){var l=o.getItemModel(s),u=o.getItemLayout(s).sign,f=l.getItemStyle();f.fill=t(u,l),f.stroke=a(u,l)||f.fill;var h=o.ensureUniqueItemVisual(s,"style");V(h,f)}}}}}},dH={seriesType:"candlestick",plan:Lo(),reset:function(r){var e=r.coordinateSystem,t=r.getData(),a=gH(r,t),n=0,i=1,o=["x","y"],s=t.getDimensionIndex(t.mapDimension(o[n])),l=G(t.mapDimensionsAll(o[i]),t.getDimensionIndex,t),u=l[0],f=l[1],h=l[2],v=l[3];if(t.setLayout({candleWidth:a,isSimpleBox:a<=1.3}),s<0||l.length<4)return;return{progress:r.pipelineContext.large?p:c};function c(d,g){for(var y,m=g.getStore();(y=d.next())!=null;){var _=m.get(s,y),S=m.get(u,y),b=m.get(f,y),x=m.get(h,y),w=m.get(v,y),T=Math.min(S,b),A=Math.max(S,b),D=N(T,_),M=N(A,_),I=N(x,_),L=N(w,_),P=[];O(P,M,0),O(P,D,1),P.push(F(L),F(M),F(I),F(D));var R=g.getItemModel(y),E=!!R.get(["itemStyle","borderColorDoji"]);g.setItemLayout(y,{sign:ix(m,y,S,b,f,E),initBaseline:S>b?M[i]:D[i],ends:P,brushRect:B(x,w,_)})}function N(H,Y){var j=[];return j[n]=Y,j[i]=H,isNaN(Y)||isNaN(H)?[NaN,NaN]:e.dataToPoint(j)}function O(H,Y,j){var J=Y.slice(),ct=Y.slice();J[n]=Ju(J[n]+a/2,1,!1),ct[n]=Ju(ct[n]-a/2,1,!0),j?H.push(J,ct):H.push(ct,J)}function B(H,Y,j){var J=N(H,j),ct=N(Y,j);return J[n]-=a/2,ct[n]-=a/2,{x:J[0],y:J[1],width:a,height:ct[1]-J[1]}}function F(H){return H[n]=Ju(H[n],1),H}}function p(d,g){for(var y=Hr(d.count*4),m=0,_,S=[],b=[],x,w=g.getStore(),T=!!r.get(["itemStyle","borderColorDoji"]);(x=d.next())!=null;){var A=w.get(s,x),D=w.get(u,x),M=w.get(f,x),I=w.get(h,x),L=w.get(v,x);if(isNaN(A)||isNaN(I)||isNaN(L)){y[m++]=NaN,m+=3;continue}y[m++]=ix(w,x,D,M,f,T),S[n]=A,S[i]=I,_=e.dataToPoint(S,null,b),y[m++]=_?_[0]:NaN,y[m++]=_?_[1]:NaN,S[i]=L,_=e.dataToPoint(S,null,b),y[m++]=_?_[1]:NaN}g.setLayout("largePoints",y)}}};function ix(r,e,t,a,n,i){var o;return t>a?o=-1:t0?r.get(n,e-1)<=a?1:-1:1,o}function gH(r,e){var t=r.getBaseAxis(),a,n=t.type==="category"?t.getBandWidth():(a=t.getExtent(),Math.abs(a[1]-a[0])/e.count()),i=W(ot(r.get("barMaxWidth"),n),n),o=W(ot(r.get("barMinWidth"),1),n),s=r.get("barWidth");return s!=null?W(s,n):Math.max(Math.min(n/2,i),o)}function yH(r){r.registerChartView(aH),r.registerSeriesModel($M),r.registerPreprocessor(lH),r.registerVisual(pH),r.registerLayout(dH)}function ox(r,e){var t=e.rippleEffectColor||e.color;r.eachChild(function(a){a.attr({z:e.z,zlevel:e.zlevel,style:{stroke:e.brushType==="stroke"?t:null,fill:e.brushType==="fill"?t:null}})})}var mH=function(r){k(e,r);function e(t,a){var n=r.call(this)||this,i=new Rl(t,a),o=new at;return n.add(i),n.add(o),n.updateData(t,a),n}return e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var a=t.symbolType,n=t.color,i=t.rippleNumber,o=this.childAt(1),s=0;s0&&(s=this._getLineLength(i)/f*1e3),s!==this._period||l!==this._loop||u!==this._roundTrip){i.stopAnimation();var v=void 0;K(h)?v=h(n):v=h,i.__t>0&&(v=-s*i.__t),this._animateSymbol(i,s,v,l,u)}this._period=s,this._loop=l,this._roundTrip=u}},e.prototype._animateSymbol=function(t,a,n,i,o){if(a>0){t.__t=0;var s=this,l=t.animate("",i).when(o?a*2:a,{__t:o?2:1}).delay(n).during(function(){s._updateSymbolPosition(t)});i||l.done(function(){s.remove(t)}),l.start()}},e.prototype._getLineLength=function(t){return sa(t.__p1,t.__cp1)+sa(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,a){t.__p1=a[0],t.__p2=a[1],t.__cp1=a[2]||[(a[0][0]+a[1][0])/2,(a[0][1]+a[1][1])/2]},e.prototype.updateData=function(t,a,n){this.childAt(0).updateData(t,a,n),this._updateEffectSymbol(t,a)},e.prototype._updateSymbolPosition=function(t){var a=t.__p1,n=t.__p2,i=t.__cp1,o=t.__t<1?t.__t:2-t.__t,s=[t.x,t.y],l=s.slice(),u=se,f=Cp;s[0]=u(a[0],i[0],n[0],o),s[1]=u(a[1],i[1],n[1],o);var h=t.__t<1?f(a[0],i[0],n[0],o):f(n[0],i[0],a[0],1-o),v=t.__t<1?f(a[1],i[1],n[1],o):f(n[1],i[1],a[1],1-o);t.rotation=-Math.atan2(v,h)-Math.PI/2,(this._symbolType==="line"||this._symbolType==="rect"||this._symbolType==="roundRect")&&(t.__lastT!==void 0&&t.__lastT=0&&!(i[l]<=a);l--);l=Math.min(l,o-2)}else{for(l=s;la);l++);l=Math.min(l-1,o-2)}var f=(a-i[l])/(i[l+1]-i[l]),h=n[l],v=n[l+1];t.x=h[0]*(1-f)+f*v[0],t.y=h[1]*(1-f)+f*v[1];var c=t.__t<1?v[0]-h[0]:h[0]-v[0],p=t.__t<1?v[1]-h[1]:h[1]-v[1];t.rotation=-Math.atan2(p,c)-Math.PI/2,this._lastFrame=l,this._lastFramePercent=a,t.ignore=!1}},e}(ZM),wH=function(){function r(){this.polyline=!1,this.curveness=0,this.segs=[]}return r}(),TH=function(r){k(e,r);function e(t){var a=r.call(this,t)||this;return a._off=0,a.hoverDataIdx=-1,a}return e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new wH},e.prototype.buildPath=function(t,a){var n=a.segs,i=a.curveness,o;if(a.polyline)for(o=this._off;o0){t.moveTo(n[o++],n[o++]);for(var l=1;l0){var c=(u+h)/2-(f-v)*i,p=(f+v)/2-(h-u)*i;t.quadraticCurveTo(c,p,h,v)}else t.lineTo(h,v)}this.incremental&&(this._off=o,this.notClear=!0)},e.prototype.findDataIndex=function(t,a){var n=this.shape,i=n.segs,o=n.curveness,s=this.style.lineWidth;if(n.polyline)for(var l=0,u=0;u0)for(var h=i[u++],v=i[u++],c=1;c0){var g=(h+p)/2-(v-d)*o,y=(v+d)/2-(p-h)*o;if(wT(h,v,g,y,p,d,s,t,a))return l}else if(ka(h,v,p,d,s,t,a))return l;l++}return-1},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect();if(t=n[0],a=n[1],i.contain(t,a)){var o=this.hoverDataIdx=this.findDataIndex(t,a);return o>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var a=this.shape,n=a.segs,i=1/0,o=1/0,s=-1/0,l=-1/0,u=0;u0&&(o.dataIndex=l+e.__startIndex)})},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}(),KM={seriesType:"lines",plan:Lo(),reset:function(r){var e=r.coordinateSystem;if(e){var t=r.get("polyline"),a=r.pipelineContext.large;return{progress:function(n,i){var o=[];if(a){var s=void 0,l=n.end-n.start;if(t){for(var u=0,f=n.start;f0&&(f||u.configLayer(s,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(l/10+.9,1),0)})),o.updateData(i);var h=t.get("clip",!0)&&kl(t.coordinateSystem,!1,t);h?this.group.setClipPath(h):this.group.removeClipPath(),this._lastZlevel=s,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,a,n){var i=t.getData(),o=this._updateLineDraw(i,t);o.incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,a,n){this._lineDraw.incrementalUpdate(t,a.getData()),this._finished=t.end===a.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,a,n){var i=t.getData(),o=t.pipelineContext;if(!this._finished||o.large||o.progressiveRender)return{update:!0};var s=KM.reset(t,a,n);s.progress&&s.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,a){var n=this._lineDraw,i=this._showEffect(a),o=!!a.get("polyline"),s=a.pipelineContext,l=s.large;return(!n||i!==this._hasEffet||o!==this._isPolyline||l!==this._isLargeDraw)&&(n&&n.remove(),n=this._lineDraw=l?new AH:new Fy(o?i?bH:qM:i?ZM:Gy),this._hasEffet=i,this._isPolyline=o,this._isLargeDraw=l),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var a=t.getZr(),n=a.painter.getType()==="svg";!n&&this._lastZlevel!=null&&a.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,a){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(a)},e.prototype.dispose=function(t,a){this.remove(t,a)},e.type="lines",e}(Rt),DH=typeof Uint32Array>"u"?Array:Uint32Array,MH=typeof Float64Array>"u"?Array:Float64Array;function sx(r){var e=r.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(r.data=G(e,function(t){var a=[t[0].coord,t[1].coord],n={coords:a};return t[0].name&&(n.fromName=t[0].name),t[1].name&&(n.toName=t[1].name),hh([n,t[0],t[1]])}))}var IH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.visualStyleAccessPath="lineStyle",t.visualDrawType="stroke",t}return e.prototype.init=function(t){t.data=t.data||[],sx(t);var a=this._processFlatCoordsArray(t.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(t.data=new Float32Array(a.count)),r.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(t){if(sx(t),t.data){var a=this._processFlatCoordsArray(t.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(t.data=new Float32Array(a.count))}r.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var a=this._processFlatCoordsArray(t.data);a.flatCoords&&(this._flatCoords?(this._flatCoords=Hs(this._flatCoords,a.flatCoords),this._flatCoordsOffset=Hs(this._flatCoordsOffset,a.flatCoordsOffset)):(this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset),t.data=new Float32Array(a.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var a=this.getData().getItemModel(t),n=a.option instanceof Array?a.option:a.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[t*2+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,a){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[t*2],i=this._flatCoordsOffset[t*2+1],o=0;o ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return t??(this.option.large?1e4:this.get("progressive"))},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return t??(this.option.large?2e4:this.get("progressiveThreshold"))},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),a=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&a>0?a+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(kt);function Ou(r){return r instanceof Array||(r=[r,r]),r}var LH={seriesType:"lines",reset:function(r){var e=Ou(r.get("symbol")),t=Ou(r.get("symbolSize")),a=r.getData();a.setVisual("fromSymbol",e&&e[0]),a.setVisual("toSymbol",e&&e[1]),a.setVisual("fromSymbolSize",t&&t[0]),a.setVisual("toSymbolSize",t&&t[1]);function n(i,o){var s=i.getItemModel(o),l=Ou(s.getShallow("symbol",!0)),u=Ou(s.getShallow("symbolSize",!0));l[0]&&i.setItemVisual(o,"fromSymbol",l[0]),l[1]&&i.setItemVisual(o,"toSymbol",l[1]),u[0]&&i.setItemVisual(o,"fromSymbolSize",u[0]),u[1]&&i.setItemVisual(o,"toSymbolSize",u[1])}return{dataEach:a.hasItemOption?n:null}}};function PH(r){r.registerChartView(CH),r.registerSeriesModel(IH),r.registerLayout(KM),r.registerVisual(LH)}var RH=256,EH=function(){function r(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var e=Cr.createCanvas();this.canvas=e}return r.prototype.update=function(e,t,a,n,i,o){var s=this._getBrush(),l=this._getGradient(i,"inRange"),u=this._getGradient(i,"outOfRange"),f=this.pointSize+this.blurSize,h=this.canvas,v=h.getContext("2d"),c=e.length;h.width=t,h.height=a;for(var p=0;p0){var I=o(_)?l:u;_>0&&(_=_*D+T),b[x++]=I[M],b[x++]=I[M+1],b[x++]=I[M+2],b[x++]=I[M+3]*_*256}else x+=4}return v.putImageData(S,0,0),h},r.prototype._getBrush=function(){var e=this._brushCanvas||(this._brushCanvas=Cr.createCanvas()),t=this.pointSize+this.blurSize,a=t*2;e.width=a,e.height=a;var n=e.getContext("2d");return n.clearRect(0,0,a,a),n.shadowOffsetX=a,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-t,t,this.pointSize,0,Math.PI*2,!0),n.closePath(),n.fill(),e},r.prototype._getGradient=function(e,t){for(var a=this._gradientPixels,n=a[t]||(a[t]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],o=0,s=0;s<256;s++)e[t](s/255,!0,i),n[o++]=i[0],n[o++]=i[1],n[o++]=i[2],n[o++]=i[3];return n},r}();function kH(r,e,t){var a=r[1]-r[0];e=G(e,function(o){return{interval:[(o.interval[0]-r[0])/a,(o.interval[1]-r[0])/a]}});var n=e.length,i=0;return function(o){var s;for(s=i;s=0;s--){var l=e[s].interval;if(l[0]<=o&&o<=l[1]){i=s;break}}return s>=0&&s=e[0]&&a<=e[1]}}function lx(r){var e=r.dimensions;return e[0]==="lng"&&e[1]==="lat"}var NH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i;a.eachComponent("visualMap",function(s){s.eachTargetSeries(function(l){l===t&&(i=s)})}),this._progressiveEls=null,this.group.removeAll();var o=t.coordinateSystem;o.type==="cartesian2d"||o.type==="calendar"?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):lx(o)&&this._renderOnGeo(o,t,i,n)},e.prototype.incrementalPrepareRender=function(t,a,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,a,n,i){var o=a.coordinateSystem;o&&(lx(o)?this.render(a,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(a,i,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){nn(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,a,n,i,o){var s=t.coordinateSystem,l=yi(s,"cartesian2d"),u,f,h,v;if(l){var c=s.getAxis("x"),p=s.getAxis("y");u=c.getBandWidth()+.5,f=p.getBandWidth()+.5,h=c.scale.getExtent(),v=p.scale.getExtent()}for(var d=this.group,g=t.getData(),y=t.getModel(["emphasis","itemStyle"]).getItemStyle(),m=t.getModel(["blur","itemStyle"]).getItemStyle(),_=t.getModel(["select","itemStyle"]).getItemStyle(),S=t.get(["itemStyle","borderRadius"]),b=ne(t),x=t.getModel("emphasis"),w=x.get("focus"),T=x.get("blurScope"),A=x.get("disabled"),D=l?[g.mapDimension("x"),g.mapDimension("y"),g.mapDimension("value")]:[g.mapDimension("time"),g.mapDimension("value")],M=n;Mh[1]||Rv[1])continue;var E=s.dataToPoint([P,R]);I=new wt({shape:{x:E[0]-u/2,y:E[1]-f/2,width:u,height:f},style:L})}else{if(isNaN(g.get(D[1],M)))continue;I=new wt({z2:1,shape:s.dataToRect([g.get(D[0],M)]).contentShape,style:L})}if(g.hasItemOption){var N=g.getItemModel(M),O=N.getModel("emphasis");y=O.getModel("itemStyle").getItemStyle(),m=N.getModel(["blur","itemStyle"]).getItemStyle(),_=N.getModel(["select","itemStyle"]).getItemStyle(),S=N.get(["itemStyle","borderRadius"]),w=O.get("focus"),T=O.get("blurScope"),A=O.get("disabled"),b=ne(N)}I.shape.r=S;var B=t.getRawValue(M),F="-";B&&B[2]!=null&&(F=B[2]+""),ve(I,b,{labelFetcher:t,labelDataIndex:M,defaultOpacity:L.opacity,defaultText:F}),I.ensureState("emphasis").style=y,I.ensureState("blur").style=m,I.ensureState("select").style=_,Wt(I,w,T,A),I.incremental=o,o&&(I.states.emphasis.hoverLayer=!0),d.add(I),g.setItemGraphicEl(M,I),this._progressiveEls&&this._progressiveEls.push(I)}},e.prototype._renderOnGeo=function(t,a,n,i){var o=n.targetVisuals.inRange,s=n.targetVisuals.outOfRange,l=a.getData(),u=this._hmLayer||this._hmLayer||new EH;u.blurSize=a.get("blurSize"),u.pointSize=a.get("pointSize"),u.minOpacity=a.get("minOpacity"),u.maxOpacity=a.get("maxOpacity");var f=t.getViewRect().clone(),h=t.getRoamTransform();f.applyTransform(h);var v=Math.max(f.x,0),c=Math.max(f.y,0),p=Math.min(f.width+f.x,i.getWidth()),d=Math.min(f.height+f.y,i.getHeight()),g=p-v,y=d-c,m=[l.mapDimension("lng"),l.mapDimension("lat"),l.mapDimension("value")],_=l.mapArray(m,function(w,T,A){var D=t.dataToPoint([w,T]);return D[0]-=v,D[1]-=c,D.push(A),D}),S=n.getExtent(),b=n.type==="visualMap.continuous"?OH(S,n.option.range):kH(S,n.getPieceList(),n.option.selected);u.update(_,g,y,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:s.color.getColorMapper()},b);var x=new oe({style:{width:g,height:y,x:v,y:c,image:u.canvas},silent:!0});this.group.add(x)},e.type="heatmap",e}(Rt),BH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){return Jr(null,this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=Io.get(this.get("coordinateSystem"));if(t&&t.dimensions)return t.dimensions[0]==="lng"&&t.dimensions[1]==="lat"},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(kt);function VH(r){r.registerChartView(NH),r.registerSeriesModel(BH)}var zH=["itemStyle","borderWidth"],ux=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],$c=new Kr,GH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group,o=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis(),f=u.isHorizontal(),h=l.master.getRect(),v={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:l,coordSysExtent:[[h.x,h.x+h.width],[h.y,h.y+h.height]],isHorizontal:f,valueDim:ux[+f],categoryDim:ux[1-+f]};o.diff(s).add(function(p){if(o.hasValue(p)){var d=hx(o,p),g=fx(o,p,d,v),y=vx(o,v,g);o.setItemGraphicEl(p,y),i.add(y),px(y,v,g)}}).update(function(p,d){var g=s.getItemGraphicEl(d);if(!o.hasValue(p)){i.remove(g);return}var y=hx(o,p),m=fx(o,p,y,v),_=rI(o,m);g&&_!==g.__pictorialShapeStr&&(i.remove(g),o.setItemGraphicEl(p,null),g=null),g?$H(g,v,m):g=vx(o,v,m,!0),o.setItemGraphicEl(p,g),g.__pictorialSymbolMeta=m,i.add(g),px(g,v,m)}).remove(function(p){var d=s.getItemGraphicEl(p);d&&cx(s,p,d.__pictorialSymbolMeta.animationModel,d)}).execute();var c=t.get("clip",!0)?kl(t.coordinateSystem,!1,t):null;return c?i.setClipPath(c):i.removeClipPath(),this._data=o,this.group},e.prototype.remove=function(t,a){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl(function(o){cx(i,nt(o).dataIndex,t,o)}):n.removeAll()},e.type="pictorialBar",e}(Rt);function fx(r,e,t,a){var n=r.getItemLayout(e),i=t.get("symbolRepeat"),o=t.get("symbolClip"),s=t.get("symbolPosition")||"start",l=t.get("symbolRotate"),u=(l||0)*Math.PI/180||0,f=t.get("symbolPatternSize")||2,h=t.isAnimationEnabled(),v={dataIndex:e,layout:n,itemModel:t,symbolType:r.getItemVisual(e,"symbol")||"circle",style:r.getItemVisual(e,"style"),symbolClip:o,symbolRepeat:i,symbolRepeatDirection:t.get("symbolRepeatDirection"),symbolPatternSize:f,rotation:u,animationModel:h?t:null,hoverScale:h&&t.get(["emphasis","scale"]),z2:t.getShallow("z",!0)||0};FH(t,i,n,a,v),HH(r,e,n,i,o,v.boundingLength,v.pxSign,f,a,v),WH(t,v.symbolScale,u,a,v);var c=v.symbolSize,p=di(t.get("symbolOffset"),c);return UH(t,c,n,i,o,p,s,v.valueLineWidth,v.boundingLength,v.repeatCutLength,a,v),v}function FH(r,e,t,a,n){var i=a.valueDim,o=r.get("symbolBoundingData"),s=a.coordSys.getOtherAxis(a.coordSys.getBaseAxis()),l=s.toGlobalCoord(s.dataToCoord(0)),u=1-+(t[i.wh]<=0),f;if(z(o)){var h=[Zc(s,o[0])-l,Zc(s,o[1])-l];h[1]0?1:-1}function Zc(r,e){return r.toGlobalCoord(r.dataToCoord(r.scale.parse(e)))}function HH(r,e,t,a,n,i,o,s,l,u){var f=l.valueDim,h=l.categoryDim,v=Math.abs(t[h.wh]),c=r.getItemVisual(e,"symbolSize"),p;z(c)?p=c.slice():c==null?p=["100%","100%"]:p=[c,c],p[h.index]=W(p[h.index],v),p[f.index]=W(p[f.index],a?v:Math.abs(i)),u.symbolSize=p;var d=u.symbolScale=[p[0]/s,p[1]/s];d[f.index]*=(l.isHorizontal?-1:1)*o}function WH(r,e,t,a,n){var i=r.get(zH)||0;i&&($c.attr({scaleX:e[0],scaleY:e[1],rotation:t}),$c.updateTransform(),i/=$c.getLineScale(),i*=e[a.valueDim.index]),n.valueLineWidth=i||0}function UH(r,e,t,a,n,i,o,s,l,u,f,h){var v=f.categoryDim,c=f.valueDim,p=h.pxSign,d=Math.max(e[c.index]+s,0),g=d;if(a){var y=Math.abs(l),m=ee(r.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var S=W(m,e[c.index]),b=Math.max(d+S*2,0),x=_?0:S*2,w=bg(a),T=w?a:dx((y+x)/b),A=y-T*d;S=A/2/(_?T:Math.max(T-1,1)),b=d+S*2,x=_?0:S*2,!w&&a!=="fixed"&&(T=u?dx((Math.abs(u)+x)/b):0),g=T*b-x,h.repeatTimes=T,h.symbolMargin=S}var D=p*(g/2),M=h.pathPosition=[];M[v.index]=t[v.wh]/2,M[c.index]=o==="start"?D:o==="end"?l-D:l/2,i&&(M[0]+=i[0],M[1]+=i[1]);var I=h.bundlePosition=[];I[v.index]=t[v.xy],I[c.index]=t[c.xy];var L=h.barRectShape=V({},t);L[c.wh]=p*Math.max(Math.abs(t[c.wh]),Math.abs(M[c.index]+D)),L[v.wh]=t[v.wh];var P=h.clipShape={};P[v.xy]=-t[v.xy],P[v.wh]=f.ecSize[v.wh],P[c.xy]=0,P[c.wh]=t[c.wh]}function jM(r){var e=r.symbolPatternSize,t=Zt(r.symbolType,-e/2,-e/2,e,e);return t.attr({culling:!0}),t.type!=="image"&&t.setStyle({strokeNoScale:!0}),t}function QM(r,e,t,a){var n=r.__pictorialBundle,i=t.symbolSize,o=t.valueLineWidth,s=t.pathPosition,l=e.valueDim,u=t.repeatTimes||0,f=0,h=i[e.valueDim.index]+o+t.symbolMargin*2;for(qy(r,function(d){d.__pictorialAnimationIndex=f,d.__pictorialRepeatTimes=u,f0:y<0)&&(m=u-1-d),g[l.index]=h*(m-u/2+.5)+s[l.index],{x:g[0],y:g[1],scaleX:t.symbolScale[0],scaleY:t.symbolScale[1],rotation:t.rotation}}}function JM(r,e,t,a){var n=r.__pictorialBundle,i=r.__pictorialMainPath;i?ao(i,null,{x:t.pathPosition[0],y:t.pathPosition[1],scaleX:t.symbolScale[0],scaleY:t.symbolScale[1],rotation:t.rotation},t,a):(i=r.__pictorialMainPath=jM(t),n.add(i),ao(i,{x:t.pathPosition[0],y:t.pathPosition[1],scaleX:0,scaleY:0,rotation:t.rotation},{scaleX:t.symbolScale[0],scaleY:t.symbolScale[1]},t,a))}function tI(r,e,t){var a=V({},e.barRectShape),n=r.__pictorialBarRect;n?ao(n,null,{shape:a},e,t):(n=r.__pictorialBarRect=new wt({z2:2,shape:a,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),n.disableMorphing=!0,r.add(n))}function eI(r,e,t,a){if(t.symbolClip){var n=r.__pictorialClipPath,i=V({},t.clipShape),o=e.valueDim,s=t.animationModel,l=t.dataIndex;if(n)Dt(n,{shape:i},s,l);else{i[o.wh]=0,n=new wt({shape:i}),r.__pictorialBundle.setClipPath(n),r.__pictorialClipPath=n;var u={};u[o.wh]=t.clipShape[o.wh],ci[a?"updateProps":"initProps"](n,{shape:u},s,l)}}}function hx(r,e){var t=r.getItemModel(e);return t.getAnimationDelayParams=YH,t.isAnimationEnabled=XH,t}function YH(r){return{index:r.__pictorialAnimationIndex,count:r.__pictorialRepeatTimes}}function XH(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function vx(r,e,t,a){var n=new at,i=new at;return n.add(i),n.__pictorialBundle=i,i.x=t.bundlePosition[0],i.y=t.bundlePosition[1],t.symbolRepeat?QM(n,e,t):JM(n,e,t),tI(n,t,a),eI(n,e,t,a),n.__pictorialShapeStr=rI(r,t),n.__pictorialSymbolMeta=t,n}function $H(r,e,t){var a=t.animationModel,n=t.dataIndex,i=r.__pictorialBundle;Dt(i,{x:t.bundlePosition[0],y:t.bundlePosition[1]},a,n),t.symbolRepeat?QM(r,e,t,!0):JM(r,e,t,!0),tI(r,t,!0),eI(r,e,t,!0)}function cx(r,e,t,a){var n=a.__pictorialBarRect;n&&n.removeTextContent();var i=[];qy(a,function(o){i.push(o)}),a.__pictorialMainPath&&i.push(a.__pictorialMainPath),a.__pictorialClipPath&&(t=null),C(i,function(o){Qa(o,{scaleX:0,scaleY:0},t,e,function(){a.parent&&a.parent.remove(a)})}),r.setItemGraphicEl(e,null)}function rI(r,e){return[r.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function qy(r,e,t){C(r.__pictorialBundle.children(),function(a){a!==r.__pictorialBarRect&&e.call(t,a)})}function ao(r,e,t,a,n,i){e&&r.attr(e),a.symbolClip&&!n?t&&r.attr(t):t&&ci[n?"updateProps":"initProps"](r,t,a.animationModel,a.dataIndex,i)}function px(r,e,t){var a=t.dataIndex,n=t.itemModel,i=n.getModel("emphasis"),o=i.getModel("itemStyle").getItemStyle(),s=n.getModel(["blur","itemStyle"]).getItemStyle(),l=n.getModel(["select","itemStyle"]).getItemStyle(),u=n.getShallow("cursor"),f=i.get("focus"),h=i.get("blurScope"),v=i.get("scale");qy(r,function(d){if(d instanceof oe){var g=d.style;d.useStyle(V({image:g.image,x:g.x,y:g.y,width:g.width,height:g.height},t.style))}else d.useStyle(t.style);var y=d.ensureState("emphasis");y.style=o,v&&(y.scaleX=d.scaleX*1.1,y.scaleY=d.scaleY*1.1),d.ensureState("blur").style=s,d.ensureState("select").style=l,u&&(d.cursor=u),d.z2=t.z2});var c=e.valueDim.posDesc[+(t.boundingLength>0)],p=r.__pictorialBarRect;p.ignoreClip=!0,ve(p,ne(n),{labelFetcher:e.seriesModel,labelDataIndex:a,defaultText:fo(e.seriesModel.getData(),a),inheritColor:t.style.fill,defaultOpacity:t.style.opacity,defaultOutsidePosition:c}),Wt(r,f,h,i.get("disabled"))}function dx(r){var e=Math.round(r);return Math.abs(r-e)<1e-4?e:Math.ceil(r)}var ZH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t.defaultSymbol="roundRect",t}return e.prototype.getInitialData=function(t){return t.stack=null,r.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=on(ll.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",clip:!1,progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(ll);function qH(r){r.registerChartView(GH),r.registerSeriesModel(ZH),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,it(zC,"pictorialBar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,GC("pictorialBar"))}var KH=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._layers=[],t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this,s=this.group,l=t.getLayerSeries(),u=i.getLayout("layoutInfo"),f=u.rect,h=u.boundaryGap;s.x=0,s.y=f.y+h[0];function v(g){return g.name}var c=new ya(this._layersSeries||[],l,v,v),p=[];c.add(X(d,this,"add")).update(X(d,this,"update")).remove(X(d,this,"remove")).execute();function d(g,y,m){var _=o._layers;if(g==="remove"){s.remove(_[y]);return}for(var S=[],b=[],x,w=l[y].indices,T=0;Ti&&(i=s),a.push(s)}for(var u=0;ui&&(i=h)}return{y0:n,max:i}}function e4(r){r.registerChartView(KH),r.registerSeriesModel(QH),r.registerLayout(JH),r.registerProcessor(Nl("themeRiver"))}var r4=2,a4=4,yx=function(r){k(e,r);function e(t,a,n,i){var o=r.call(this)||this;o.z2=r4,o.textConfig={inside:!0},nt(o).seriesIndex=a.seriesIndex;var s=new bt({z2:a4,silent:t.getModel().get(["label","silent"])});return o.setTextContent(s),o.updateData(!0,t,a,n,i),o}return e.prototype.updateData=function(t,a,n,i,o){this.node=a,a.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var s=this;nt(s).dataIndex=a.dataIndex;var l=a.getModel(),u=l.getModel("emphasis"),f=a.getLayout(),h=V({},f);h.label=null;var v=a.getVisual("style");v.lineJoin="bevel";var c=a.getVisual("decal");c&&(v.decal=uo(c,o));var p=Zn(l.getModel("itemStyle"),h,!0);V(h,p),C(Ee,function(m){var _=s.ensureState(m),S=l.getModel([m,"itemStyle"]);_.style=S.getItemStyle();var b=Zn(S,h);b&&(_.shape=b)}),t?(s.setShape(h),s.shape.r=f.r0,Vt(s,{shape:{r:f.r}},n,a.dataIndex)):(Dt(s,{shape:h},n),Ir(s)),s.useStyle(v),this._updateLabel(n);var d=l.getShallow("cursor");d&&s.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var g=u.get("focus"),y=g==="ancestor"?a.getAncestorsIndices():g==="descendant"?a.getDescendantIndices():g;Wt(this,y,u.get("blurScope"),u.get("disabled"))},e.prototype._updateLabel=function(t){var a=this,n=this.node.getModel(),i=n.getModel("label"),o=this.node.getLayout(),s=o.endAngle-o.startAngle,l=(o.startAngle+o.endAngle)/2,u=Math.cos(l),f=Math.sin(l),h=this,v=h.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(p!=null&&Math.abs(s)P&&!io(E-P)&&E0?(o.virtualPiece?o.virtualPiece.updateData(!1,m,t,a,n):(o.virtualPiece=new yx(m,t,a,n),f.add(o.virtualPiece)),_.piece.off("click"),o.virtualPiece.on("click",function(S){o._rootToNode(_.parentNode)})):o.virtualPiece&&(f.remove(o.virtualPiece),o.virtualPiece=null)}},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",function(a){var n=!1,i=t.seriesModel.getViewRoot();i.eachNode(function(o){if(!n&&o.piece&&o.piece===a.target){var s=o.getModel().get("nodeClick");if(s==="rootToNode")t._rootToNode(o);else if(s==="link"){var l=o.getModel(),u=l.get("link");if(u){var f=l.get("target",!0)||"_blank";If(u,f)}}n=!0}})})},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:Hd,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,a){var n=a.getData(),i=n.getItemLayout(0);if(i){var o=t[0]-i.cx,s=t[1]-i.cy,l=Math.sqrt(o*o+s*s);return l<=i.r&&l>=i.r0}},e.type="sunburst",e}(Rt),s4=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.ignoreStyleOnData=!0,t}return e.prototype.getInitialData=function(t,a){var n={name:t.name,children:t.data};aI(n);var i=this._levelModels=G(t.levels||[],function(l){return new Mt(l,this,a)},this),o=ky.createTree(n,this,s);function s(l){l.wrapMethod("getItemModel",function(u,f){var h=o.getNodeByDataIndex(f),v=i[h.depth];return v&&(u.parentModel=v),u})}return o.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treePathInfo=Xh(n,this),a},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var a=this.getRawData().tree.root;(!t||t!==a&&!a.contains(t))&&(this._viewRoot=a)},e.prototype.enableAriaDecal=function(){lM(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(kt);function aI(r){var e=0;C(r.children,function(a){aI(a);var n=a.value;z(n)&&(n=n[0]),e+=n});var t=r.value;z(t)&&(t=t[0]),(t==null||isNaN(t))&&(t=e),t<0&&(t=0),z(r.value)?r.value[0]=t:r.value=t}var _x=Math.PI/180;function l4(r,e,t){e.eachSeriesByType(r,function(a){var n=a.get("center"),i=a.get("radius");z(i)||(i=[0,i]),z(n)||(n=[n,n]);var o=t.getWidth(),s=t.getHeight(),l=Math.min(o,s),u=W(n[0],o),f=W(n[1],s),h=W(i[0],l/2),v=W(i[1],l/2),c=-a.get("startAngle")*_x,p=a.get("minAngle")*_x,d=a.getData().tree.root,g=a.getViewRoot(),y=g.depth,m=a.get("sort");m!=null&&nI(g,m);var _=0;C(g.children,function(E){!isNaN(E.getValue())&&_++});var S=g.getValue(),b=Math.PI/(S||_)*2,x=g.depth>0,w=g.height-(x?-1:1),T=(v-h)/(w||1),A=a.get("clockwise"),D=a.get("stillShowZeroSum"),M=A?1:-1,I=function(E,N){if(E){var O=N;if(E!==d){var B=E.getValue(),F=S===0&&D?b:B*b;F1;)o=o.parentNode;var s=n.getColorFromPalette(o.name||o.dataIndex+"",e);return a.depth>1&&U(s)&&(s=yf(s,(a.depth-1)/(i-1)*.5)),s}r.eachSeriesByType("sunburst",function(a){var n=a.getData(),i=n.tree;i.eachNode(function(o){var s=o.getModel(),l=s.getModel("itemStyle").getItemStyle();l.fill||(l.fill=t(o,a,i.root.height));var u=n.ensureUniqueItemVisual(o.dataIndex,"style");V(u,l)})})}function h4(r){r.registerChartView(o4),r.registerSeriesModel(s4),r.registerLayout(it(l4,"sunburst")),r.registerProcessor(it(Nl,"sunburst")),r.registerVisual(f4),i4(r)}var Sx={color:"fill",borderColor:"stroke"},v4={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},va=Tt(),c4=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,a){return Jr(null,this)},e.prototype.getDataParams=function(t,a,n){var i=r.prototype.getDataParams.call(this,t,a);return n&&(i.info=va(n).info),i},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(kt);function p4(r,e){return e=e||[0,0],G(["x","y"],function(t,a){var n=this.getAxis(t),i=e[a],o=r[a]/2;return n.type==="category"?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))},this)}function d4(r){var e=r.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(t){return r.dataToPoint(t)},size:X(p4,r)}}}function g4(r,e){return e=e||[0,0],G([0,1],function(t){var a=e[t],n=r[t]/2,i=[],o=[];return i[t]=a-n,o[t]=a+n,i[1-t]=o[1-t]=e[1-t],Math.abs(this.dataToPoint(i)[t]-this.dataToPoint(o)[t])},this)}function y4(r){var e=r.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:r.getZoom()},api:{coord:function(t){return r.dataToPoint(t)},size:X(g4,r)}}}function m4(r,e){var t=this.getAxis(),a=e instanceof Array?e[0]:e,n=(r instanceof Array?r[0]:r)/2;return t.type==="category"?t.getBandWidth():Math.abs(t.dataToCoord(a-n)-t.dataToCoord(a+n))}function _4(r){var e=r.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(t){return r.dataToPoint(t)},size:X(m4,r)}}}function S4(r,e){return e=e||[0,0],G(["Radius","Angle"],function(t,a){var n="get"+t+"Axis",i=this[n](),o=e[a],s=r[a]/2,l=i.type==="category"?i.getBandWidth():Math.abs(i.dataToCoord(o-s)-i.dataToCoord(o+s));return t==="Angle"&&(l=l*Math.PI/180),l},this)}function x4(r){var e=r.getRadiusAxis(),t=r.getAngleAxis(),a=e.getExtent();return a[0]>a[1]&&a.reverse(),{coordSys:{type:"polar",cx:r.cx,cy:r.cy,r:a[1],r0:a[0]},api:{coord:function(n){var i=e.dataToRadius(n[0]),o=t.dataToAngle(n[1]),s=r.coordToPoint([i,o]);return s.push(i,o*Math.PI/180),s},size:X(S4,r)}}}function b4(r){var e=r.getRect(),t=r.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:r.getCellWidth(),cellHeight:r.getCellHeight(),rangeInfo:{start:t.start,end:t.end,weeks:t.weeks,dayCount:t.allDay}},api:{coord:function(a,n){return r.dataToPoint(a,n)}}}}function iI(r,e,t,a){return r&&(r.legacy||r.legacy!==!1&&!t&&!a&&e!=="tspan"&&(e==="text"||$(r,"text")))}function oI(r,e,t){var a=r,n,i,o;if(e==="text")o=a;else{o={},$(a,"text")&&(o.text=a.text),$(a,"rich")&&(o.rich=a.rich),$(a,"textFill")&&(o.fill=a.textFill),$(a,"textStroke")&&(o.stroke=a.textStroke),$(a,"fontFamily")&&(o.fontFamily=a.fontFamily),$(a,"fontSize")&&(o.fontSize=a.fontSize),$(a,"fontStyle")&&(o.fontStyle=a.fontStyle),$(a,"fontWeight")&&(o.fontWeight=a.fontWeight),i={type:"text",style:o,silent:!0},n={};var s=$(a,"textPosition");t?n.position=s?a.textPosition:"inside":s&&(n.position=a.textPosition),$(a,"textPosition")&&(n.position=a.textPosition),$(a,"textOffset")&&(n.offset=a.textOffset),$(a,"textRotation")&&(n.rotation=a.textRotation),$(a,"textDistance")&&(n.distance=a.textDistance)}return xx(o,r),C(o.rich,function(l){xx(l,l)}),{textConfig:n,textContent:i}}function xx(r,e){e&&(e.font=e.textFont||e.font,$(e,"textStrokeWidth")&&(r.lineWidth=e.textStrokeWidth),$(e,"textAlign")&&(r.align=e.textAlign),$(e,"textVerticalAlign")&&(r.verticalAlign=e.textVerticalAlign),$(e,"textLineHeight")&&(r.lineHeight=e.textLineHeight),$(e,"textWidth")&&(r.width=e.textWidth),$(e,"textHeight")&&(r.height=e.textHeight),$(e,"textBackgroundColor")&&(r.backgroundColor=e.textBackgroundColor),$(e,"textPadding")&&(r.padding=e.textPadding),$(e,"textBorderColor")&&(r.borderColor=e.textBorderColor),$(e,"textBorderWidth")&&(r.borderWidth=e.textBorderWidth),$(e,"textBorderRadius")&&(r.borderRadius=e.textBorderRadius),$(e,"textBoxShadowColor")&&(r.shadowColor=e.textBoxShadowColor),$(e,"textBoxShadowBlur")&&(r.shadowBlur=e.textBoxShadowBlur),$(e,"textBoxShadowOffsetX")&&(r.shadowOffsetX=e.textBoxShadowOffsetX),$(e,"textBoxShadowOffsetY")&&(r.shadowOffsetY=e.textBoxShadowOffsetY))}function bx(r,e,t){var a=r;a.textPosition=a.textPosition||t.position||"inside",t.offset!=null&&(a.textOffset=t.offset),t.rotation!=null&&(a.textRotation=t.rotation),t.distance!=null&&(a.textDistance=t.distance);var n=a.textPosition.indexOf("inside")>=0,i=r.fill||"#000";Tx(a,e);var o=a.textFill==null;return n?o&&(a.textFill=t.insideFill||"#fff",!a.textStroke&&t.insideStroke&&(a.textStroke=t.insideStroke),!a.textStroke&&(a.textStroke=i),a.textStrokeWidth==null&&(a.textStrokeWidth=2)):(o&&(a.textFill=r.fill||t.outsideFill||"#000"),!a.textStroke&&t.outsideStroke&&(a.textStroke=t.outsideStroke)),a.text=e.text,a.rich=e.rich,C(e.rich,function(s){Tx(s,s)}),a}function Tx(r,e){e&&($(e,"fill")&&(r.textFill=e.fill),$(e,"stroke")&&(r.textStroke=e.fill),$(e,"lineWidth")&&(r.textStrokeWidth=e.lineWidth),$(e,"font")&&(r.font=e.font),$(e,"fontStyle")&&(r.fontStyle=e.fontStyle),$(e,"fontWeight")&&(r.fontWeight=e.fontWeight),$(e,"fontSize")&&(r.fontSize=e.fontSize),$(e,"fontFamily")&&(r.fontFamily=e.fontFamily),$(e,"align")&&(r.textAlign=e.align),$(e,"verticalAlign")&&(r.textVerticalAlign=e.verticalAlign),$(e,"lineHeight")&&(r.textLineHeight=e.lineHeight),$(e,"width")&&(r.textWidth=e.width),$(e,"height")&&(r.textHeight=e.height),$(e,"backgroundColor")&&(r.textBackgroundColor=e.backgroundColor),$(e,"padding")&&(r.textPadding=e.padding),$(e,"borderColor")&&(r.textBorderColor=e.borderColor),$(e,"borderWidth")&&(r.textBorderWidth=e.borderWidth),$(e,"borderRadius")&&(r.textBorderRadius=e.borderRadius),$(e,"shadowColor")&&(r.textBoxShadowColor=e.shadowColor),$(e,"shadowBlur")&&(r.textBoxShadowBlur=e.shadowBlur),$(e,"shadowOffsetX")&&(r.textBoxShadowOffsetX=e.shadowOffsetX),$(e,"shadowOffsetY")&&(r.textBoxShadowOffsetY=e.shadowOffsetY),$(e,"textShadowColor")&&(r.textShadowColor=e.textShadowColor),$(e,"textShadowBlur")&&(r.textShadowBlur=e.textShadowBlur),$(e,"textShadowOffsetX")&&(r.textShadowOffsetX=e.textShadowOffsetX),$(e,"textShadowOffsetY")&&(r.textShadowOffsetY=e.textShadowOffsetY))}var sI={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},Ax=St(sI);lr($r,function(r,e){return r[e]=1,r},{});$r.join(", ");var jf=["","style","shape","extra"],co=Tt();function Ky(r,e,t,a,n){var i=r+"Animation",o=bo(r,a,n)||{},s=co(e).userDuring;return o.duration>0&&(o.during=s?X(D4,{el:e,userDuring:s}):null,o.setToFinal=!0,o.scope=r),V(o,t[i]),o}function of(r,e,t,a){a=a||{};var n=a.dataIndex,i=a.isInit,o=a.clearStyle,s=t.isAnimationEnabled(),l=co(r),u=e.style;l.userDuring=e.during;var f={},h={};if(I4(r,e,h),Dx("shape",e,h),Dx("extra",e,h),!i&&s&&(M4(r,e,f),Cx("shape",r,e,f),Cx("extra",r,e,f),L4(r,e,u,f)),h.style=u,w4(r,h,o),A4(r,e),s)if(i){var v={};C(jf,function(p){var d=p?e[p]:e;d&&d.enterFrom&&(p&&(v[p]=v[p]||{}),V(p?v[p]:v,d.enterFrom))});var c=Ky("enter",r,e,t,n);c.duration>0&&r.animateFrom(v,c)}else T4(r,e,n||0,t,f);lI(r,e),u?r.dirty():r.markRedraw()}function lI(r,e){for(var t=co(r).leaveToProps,a=0;a0&&r.animateFrom(n,i)}}function A4(r,e){$(e,"silent")&&(r.silent=e.silent),$(e,"ignore")&&(r.ignore=e.ignore),r instanceof ur&&$(e,"invisible")&&(r.invisible=e.invisible),r instanceof yt&&$(e,"autoBatch")&&(r.autoBatch=e.autoBatch)}var Nr={},C4={setTransform:function(r,e){return Nr.el[r]=e,this},getTransform:function(r){return Nr.el[r]},setShape:function(r,e){var t=Nr.el,a=t.shape||(t.shape={});return a[r]=e,t.dirtyShape&&t.dirtyShape(),this},getShape:function(r){var e=Nr.el.shape;if(e)return e[r]},setStyle:function(r,e){var t=Nr.el,a=t.style;return a&&(a[r]=e,t.dirtyStyle&&t.dirtyStyle()),this},getStyle:function(r){var e=Nr.el.style;if(e)return e[r]},setExtra:function(r,e){var t=Nr.el.extra||(Nr.el.extra={});return t[r]=e,this},getExtra:function(r){var e=Nr.el.extra;if(e)return e[r]}};function D4(){var r=this,e=r.el;if(e){var t=co(e).userDuring,a=r.userDuring;if(t!==a){r.el=r.userDuring=null;return}Nr.el=e,a(C4)}}function Cx(r,e,t,a){var n=t[r];if(n){var i=e[r],o;if(i){var s=t.transition,l=n.transition;if(l)if(!o&&(o=a[r]={}),ei(l))V(o,i);else for(var u=Et(l),f=0;f=0){!o&&(o=a[r]={});for(var c=St(i),f=0;f=0)){var v=r.getAnimationStyleProps(),c=v?v.style:null;if(c){!i&&(i=a.style={});for(var p=St(t),u=0;u=0?e.getStore().get(N,R):void 0}var O=e.get(E.name,R),B=E&&E.ordinalMeta;return B?B.categories[O]:O}function x(P,R){R==null&&(R=u);var E=e.getItemVisual(R,"style"),N=E&&E.fill,O=E&&E.opacity,B=m(R,Fa).getItemStyle();N!=null&&(B.fill=N),O!=null&&(B.opacity=O);var F={inheritColor:U(N)?N:"#000"},H=_(R,Fa),Y=Nt(H,null,F,!1,!0);Y.text=H.getShallow("show")?ot(r.getFormattedLabel(R,Fa),fo(e,R)):null;var j=Df(H,F,!1);return A(P,B),B=bx(B,Y,j),P&&T(B,P),B.legacy=!0,B}function w(P,R){R==null&&(R=u);var E=m(R,ca).getItemStyle(),N=_(R,ca),O=Nt(N,null,null,!0,!0);O.text=N.getShallow("show")?br(r.getFormattedLabel(R,ca),r.getFormattedLabel(R,Fa),fo(e,R)):null;var B=Df(N,null,!0);return A(P,E),E=bx(E,O,B),P&&T(E,P),E.legacy=!0,E}function T(P,R){for(var E in R)$(R,E)&&(P[E]=R[E])}function A(P,R){P&&(P.textFill&&(R.textFill=P.textFill),P.textPosition&&(R.textPosition=P.textPosition))}function D(P,R){if(R==null&&(R=u),$(Sx,P)){var E=e.getItemVisual(R,"style");return E?E[Sx[P]]:null}if($(v4,P))return e.getItemVisual(R,P)}function M(P){if(i.type==="cartesian2d"){var R=i.getBaseAxis();return TN(Q({axis:R},P))}}function I(){return t.getCurrentSeriesIndices()}function L(P){return zg(P,t)}}function G4(r){var e={};return C(r.dimensions,function(t){var a=r.getDimensionInfo(t);if(!a.isExtraCoord){var n=a.coordDim,i=e[n]=e[n]||[];i[a.coordDimIndex]=r.getDimensionIndex(t)}}),e}function Qc(r,e,t,a,n,i,o){if(!a){i.remove(e);return}var s=em(r,e,t,a,n,i);return s&&o.setItemGraphicEl(t,s),s&&Wt(s,a.focus,a.blurScope,a.emphasisDisabled),s}function em(r,e,t,a,n,i){var o=-1,s=e;e&&vI(e,a,n)&&(o=vt(i.childrenRef(),e),e=null);var l=!e,u=e;u?u.clearStates():(u=Jy(a),s&&N4(s,u)),a.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),je.normal.cfg=je.normal.conOpt=je.emphasis.cfg=je.emphasis.conOpt=je.blur.cfg=je.blur.conOpt=je.select.cfg=je.select.conOpt=null,je.isLegacy=!1,H4(u,t,a,n,l,je),F4(u,t,a,n,l),tm(r,u,t,a,je,n,l),$(a,"info")&&(va(u).info=a.info);for(var f=0;f=0?i.replaceAt(u,o):i.add(u),u}function vI(r,e,t){var a=va(r),n=e.type,i=e.shape,o=e.style;return t.isUniversalTransitionEnabled()||n!=null&&n!==a.customGraphicType||n==="path"&&$4(i)&&cI(i)!==a.customPathData||n==="image"&&$(o,"image")&&o.image!==a.customImagePath}function F4(r,e,t,a,n){var i=t.clipPath;if(i===!1)r&&r.getClipPath()&&r.removeClipPath();else if(i){var o=r.getClipPath();o&&vI(o,i,a)&&(o=null),o||(o=Jy(i),r.setClipPath(o)),tm(null,o,e,i,null,a,n)}}function H4(r,e,t,a,n,i){if(!r.isGroup){Ix(t,null,i),Ix(t,ca,i);var o=i.normal.conOpt,s=i.emphasis.conOpt,l=i.blur.conOpt,u=i.select.conOpt;if(o!=null||s!=null||u!=null||l!=null){var f=r.getTextContent();if(o===!1)f&&r.removeTextContent();else{o=i.normal.conOpt=o||{type:"text"},f?f.clearStates():(f=Jy(o),r.setTextContent(f)),tm(null,f,e,o,null,a,n);for(var h=o&&o.style,v=0;v=f;c--){var p=e.childAt(c);U4(e,p,n)}}}function U4(r,e,t){e&&qh(e,va(r).option,t)}function Y4(r){new ya(r.oldChildren,r.newChildren,Lx,Lx,r).add(Px).update(Px).remove(X4).execute()}function Lx(r,e){var t=r&&r.name;return t??k4+e}function Px(r,e){var t=this.context,a=r!=null?t.newChildren[r]:null,n=e!=null?t.oldChildren[e]:null;em(t.api,n,t.dataIndex,a,t.seriesModel,t.group)}function X4(r){var e=this.context,t=e.oldChildren[r];t&&qh(t,va(t).option,e.seriesModel)}function cI(r){return r&&(r.pathData||r.d)}function $4(r){return r&&($(r,"pathData")||$(r,"d"))}function Z4(r){r.registerChartView(B4),r.registerSeriesModel(c4)}var zn=Tt(),Rx=et,Jc=X,am=function(){function r(){this._dragging=!1,this.animationThreshold=15}return r.prototype.render=function(e,t,a,n){var i=t.get("value"),o=t.get("status");if(this._axisModel=e,this._axisPointerModel=t,this._api=a,!(!n&&this._lastValue===i&&this._lastStatus===o)){this._lastValue=i,this._lastStatus=o;var s=this._group,l=this._handle;if(!o||o==="hide"){s&&s.hide(),l&&l.hide();return}s&&s.show(),l&&l.show();var u={};this.makeElOption(u,i,e,t,a);var f=u.graphicKey;f!==this._lastGraphicKey&&this.clear(a),this._lastGraphicKey=f;var h=this._moveAnimation=this.determineAnimation(e,t);if(!s)s=this._group=new at,this.createPointerEl(s,u,e,t),this.createLabelEl(s,u,e,t),a.getZr().add(s);else{var v=it(Ex,t,h);this.updatePointerEl(s,u,v),this.updateLabelEl(s,u,v,t)}Ox(s,t,!0),this._renderHandle(i)}},r.prototype.remove=function(e){this.clear(e)},r.prototype.dispose=function(e){this.clear(e)},r.prototype.determineAnimation=function(e,t){var a=t.get("animation"),n=e.axis,i=n.type==="category",o=t.get("snap");if(!o&&!i)return!1;if(a==="auto"||a==null){var s=this.animationThreshold;if(i&&n.getBandWidth()>s)return!0;if(o){var l=Dy(e).seriesDataCount,u=n.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return a===!0},r.prototype.makeElOption=function(e,t,a,n,i){},r.prototype.createPointerEl=function(e,t,a,n){var i=t.pointer;if(i){var o=zn(e).pointerEl=new ci[i.type](Rx(t.pointer));e.add(o)}},r.prototype.createLabelEl=function(e,t,a,n){if(t.label){var i=zn(e).labelEl=new bt(Rx(t.label));e.add(i),kx(i,n)}},r.prototype.updatePointerEl=function(e,t,a){var n=zn(e).pointerEl;n&&t.pointer&&(n.setStyle(t.pointer.style),a(n,{shape:t.pointer.shape}))},r.prototype.updateLabelEl=function(e,t,a,n){var i=zn(e).labelEl;i&&(i.setStyle(t.label.style),a(i,{x:t.label.x,y:t.label.y}),kx(i,n))},r.prototype._renderHandle=function(e){if(!(this._dragging||!this.updateHandleTransform)){var t=this._axisPointerModel,a=this._api.getZr(),n=this._handle,i=t.getModel("handle"),o=t.get("status");if(!i.get("show")||!o||o==="hide"){n&&a.remove(n),this._handle=null;return}var s;this._handle||(s=!0,n=this._handle=wo(i.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){pa(u.event)},onmousedown:Jc(this._onHandleDragMove,this,0,0),drift:Jc(this._onHandleDragMove,this),ondragend:Jc(this._onHandleDragEnd,this)}),a.add(n)),Ox(n,t,!1),n.setStyle(i.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=i.get("size");z(l)||(l=[l,l]),n.scaleX=l[0]/2,n.scaleY=l[1]/2,Po(this,"_doDispatchAxisPointer",i.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,s)}},r.prototype._moveHandleToValue=function(e,t){Ex(this._axisPointerModel,!t&&this._moveAnimation,this._handle,tp(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},r.prototype._onHandleDragMove=function(e,t){var a=this._handle;if(a){this._dragging=!0;var n=this.updateHandleTransform(tp(a),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=n,a.stopAnimation(),a.attr(tp(n)),zn(a).lastProp=null,this._doDispatchAxisPointer()}},r.prototype._doDispatchAxisPointer=function(){var e=this._handle;if(e){var t=this._payloadInfo,a=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:a.axis.dim,axisIndex:a.componentIndex}]})}},r.prototype._onHandleDragEnd=function(){this._dragging=!1;var e=this._handle;if(e){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},r.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),a=this._group,n=this._handle;t&&a&&(this._lastGraphicKey=null,a&&t.remove(a),n&&t.remove(n),this._group=null,this._handle=null,this._payloadInfo=null),rl(this,"_doDispatchAxisPointer")},r.prototype.doClear=function(){},r.prototype.buildLabel=function(e,t,a){return a=a||0,{x:e[a],y:e[1-a],width:t[a],height:t[1-a]}},r}();function Ex(r,e,t,a){pI(zn(t).lastProp,a)||(zn(t).lastProp=a,e?Dt(t,a,r):(t.stopAnimation(),t.attr(a)))}function pI(r,e){if(tt(r)&&tt(e)){var t=!0;return C(e,function(a,n){t=t&&pI(r[n],a)}),!!t}else return r===e}function kx(r,e){r[e.get(["label","show"])?"show":"hide"]()}function tp(r){return{x:r.x||0,y:r.y||0,rotation:r.rotation||0}}function Ox(r,e,t){var a=e.get("z"),n=e.get("zlevel");r&&r.traverse(function(i){i.type!=="group"&&(a!=null&&(i.z=a),n!=null&&(i.zlevel=n),i.silent=t)})}function nm(r){var e=r.get("type"),t=r.getModel(e+"Style"),a;return e==="line"?(a=t.getLineStyle(),a.fill=null):e==="shadow"&&(a=t.getAreaStyle(),a.stroke=null),a}function dI(r,e,t,a,n){var i=t.get("value"),o=gI(i,e.axis,e.ecModel,t.get("seriesDataIndices"),{precision:t.get(["label","precision"]),formatter:t.get(["label","formatter"])}),s=t.getModel("label"),l=pi(s.get("padding")||0),u=s.getFont(),f=bl(o,u),h=n.position,v=f.width+l[1]+l[3],c=f.height+l[0]+l[2],p=n.align;p==="right"&&(h[0]-=v),p==="center"&&(h[0]-=v/2);var d=n.verticalAlign;d==="bottom"&&(h[1]-=c),d==="middle"&&(h[1]-=c/2),q4(h,v,c,a);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=e.get(["axisLine","lineStyle","color"])),r.label={x:h[0],y:h[1],style:Nt(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function q4(r,e,t,a){var n=a.getWidth(),i=a.getHeight();r[0]=Math.min(r[0]+e,n)-e,r[1]=Math.min(r[1]+t,i)-t,r[0]=Math.max(r[0],0),r[1]=Math.max(r[1],0)}function gI(r,e,t,a,n){r=e.scale.parse(r);var i=e.scale.getLabel({value:r},{precision:n.precision}),o=n.formatter;if(o){var s={value:gy(e,{value:r}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};C(a,function(l){var u=t.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,h=u&&u.getDataParams(f);h&&s.seriesData.push(h)}),U(o)?i=o.replace("{value}",i):K(o)&&(i=o(s))}return i}function im(r,e,t){var a=Ge();return an(a,a,t.rotation),Dr(a,a,t.position),Ar([r.dataToCoord(e),(t.labelOffset||0)+(t.labelDirection||1)*(t.labelMargin||0)],a)}function yI(r,e,t,a,n,i){var o=Pe.innerTextLayout(t.rotation,0,t.labelDirection);t.labelMargin=n.get(["label","margin"]),dI(e,a,n,i,{position:im(a.axis,r,t),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function om(r,e,t){return t=t||0,{x1:r[t],y1:r[1-t],x2:e[t],y2:e[1-t]}}function mI(r,e,t){return t=t||0,{x:r[t],y:r[1-t],width:e[t],height:e[1-t]}}function Nx(r,e,t,a,n,i){return{cx:r,cy:e,r0:t,r:a,startAngle:n,endAngle:i,clockwise:!0}}var K4=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis,l=s.grid,u=i.get("type"),f=Bx(l,s).getOtherAxis(s).getGlobalExtent(),h=s.toGlobalCoord(s.dataToCoord(a,!0));if(u&&u!=="none"){var v=nm(i),c=j4[u](s,h,f);c.style=v,t.graphicKey=c.type,t.pointer=c}var p=Td(l.model,n);yI(a,t,p,n,i,o)},e.prototype.getHandleTransform=function(t,a,n){var i=Td(a.axis.grid.model,a,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=im(a.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,a,n,i){var o=n.axis,s=o.grid,l=o.getGlobalExtent(!0),u=Bx(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,h=[t.x,t.y];h[f]+=a[f],h[f]=Math.min(l[1],h[f]),h[f]=Math.max(l[0],h[f]);var v=(u[1]+u[0])/2,c=[v,v];c[f]=h[f];var p=[{verticalAlign:"middle"},{align:"center"}];return{x:h[0],y:h[1],rotation:t.rotation,cursorPoint:c,tooltipOption:p[f]}},e}(am);function Bx(r,e){var t={};return t[e.dim+"AxisIndex"]=e.index,r.getCartesian(t)}var j4={line:function(r,e,t){var a=om([e,t[0]],[e,t[1]],Vx(r));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(r,e,t){var a=Math.max(1,r.getBandWidth()),n=t[1]-t[0];return{type:"Rect",shape:mI([e-a/2,t[0]],[a,n],Vx(r))}}};function Vx(r){return r.dim==="x"?0:1}var Q4=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(mt),ha=Tt(),J4=C;function _I(r,e,t){if(!_t.node){var a=e.getZr();ha(a).records||(ha(a).records={}),tW(a,e);var n=ha(a).records[r]||(ha(a).records[r]={});n.handler=t}}function tW(r,e){if(ha(r).initialized)return;ha(r).initialized=!0,t("click",it(zx,"click")),t("mousemove",it(zx,"mousemove")),t("globalout",rW);function t(a,n){r.on(a,function(i){var o=aW(e);J4(ha(r).records,function(s){s&&n(s,i,o.dispatchAction)}),eW(o.pendings,e)})}}function eW(r,e){var t=r.showTip.length,a=r.hideTip.length,n;t?n=r.showTip[t-1]:a&&(n=r.hideTip[a-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function rW(r,e,t){r.handler("leave",null,t)}function zx(r,e,t,a){e.handler(r,t,a)}function aW(r){var e={showTip:[],hideTip:[]},t=function(a){var n=e[a.type];n?n.push(a):(a.dispatchAction=t,r.dispatchAction(a))};return{dispatchAction:t,pendings:e}}function Yd(r,e){if(!_t.node){var t=e.getZr(),a=(ha(t).records||{})[r];a&&(ha(t).records[r]=null)}}var nW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=a.getComponent("tooltip"),o=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";_I("axisPointer",n,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},e.prototype.remove=function(t,a){Yd("axisPointer",a)},e.prototype.dispose=function(t,a){Yd("axisPointer",a)},e.type="axisPointer",e}(zt);function SI(r,e){var t=[],a=r.seriesIndex,n;if(a==null||!(n=e.getSeriesByIndex(a)))return{point:[]};var i=n.getData(),o=ni(i,r);if(o==null||o<0||z(o))return{point:[]};var s=i.getItemGraphicEl(o),l=n.coordinateSystem;if(n.getTooltipPosition)t=n.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(r.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),h=f.dim,v=u.dim,c=h==="x"||h==="radius"?1:0,p=i.mapDimension(v),d=[];d[c]=i.get(p,o),d[1-c]=i.get(i.getCalculationInfo("stackResultDimension"),o),t=l.dataToPoint(d)||[]}else t=l.dataToPoint(i.getValues(G(l.dimensions,function(y){return i.mapDimension(y)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),t=[g.x+g.width/2,g.y+g.height/2]}return{point:t,el:s}}var Gx=Tt();function iW(r,e,t){var a=r.currTrigger,n=[r.x,r.y],i=r,o=r.dispatchAction||X(t.dispatchAction,t),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){sf(n)&&(n=SI({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},e).point);var l=sf(n),u=i.axesInfo,f=s.axesInfo,h=a==="leave"||sf(n),v={},c={},p={list:[],map:{}},d={showPointer:it(sW,c),showTooltip:it(lW,p)};C(s.coordSysMap,function(y,m){var _=l||y.containPoint(n);C(s.coordSysAxesInfo[m],function(S,b){var x=S.axis,w=vW(u,S);if(!h&&_&&(!u||w)){var T=w&&w.value;T==null&&!l&&(T=x.pointToData(n)),T!=null&&Fx(S,T,d,!1,v)}})});var g={};return C(f,function(y,m){var _=y.linkGroup;_&&!c[m]&&C(_.axesInfo,function(S,b){var x=c[b];if(S!==y&&x){var w=x.value;_.mapper&&(w=y.axis.scale.parse(_.mapper(w,Hx(S),Hx(y)))),g[y.key]=w}})}),C(g,function(y,m){Fx(f[m],y,d,!0,v)}),uW(c,f,v),fW(p,n,r,o),hW(f,o,t),v}}function Fx(r,e,t,a,n){var i=r.axis;if(!(i.scale.isBlank()||!i.containData(e))){if(!r.involveSeries){t.showPointer(r,e);return}var o=oW(e,r),s=o.payloadBatch,l=o.snapToValue;s[0]&&n.seriesIndex==null&&V(n,s[0]),!a&&r.snap&&i.containData(l)&&l!=null&&(e=l),t.showPointer(r,e,s),t.showTooltip(r,o,l)}}function oW(r,e){var t=e.axis,a=t.dim,n=r,i=[],o=Number.MAX_VALUE,s=-1;return C(e.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(a),h,v;if(l.getAxisTooltipData){var c=l.getAxisTooltipData(f,r,t);v=c.dataIndices,h=c.nestestValue}else{if(v=l.getData().indicesOfNearest(f[0],r,t.type==="category"?.5:null),!v.length)return;h=l.getData().get(f[0],v[0])}if(!(h==null||!isFinite(h))){var p=r-h,d=Math.abs(p);d<=o&&((d=0&&s<0)&&(o=d,s=p,n=h,i.length=0),C(v,function(g){i.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:i,snapToValue:n}}function sW(r,e,t,a){r[e.key]={value:t,payloadBatch:a}}function lW(r,e,t,a){var n=t.payloadBatch,i=e.axis,o=i.model,s=e.axisPointerModel;if(!(!e.triggerTooltip||!n.length)){var l=e.coordSys.model,u=ul(l),f=r.map[u];f||(f=r.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},r.list.push(f)),f.dataByAxis.push({axisDim:i.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:a,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:n.slice()})}}function uW(r,e,t){var a=t.axesInfo=[];C(e,function(n,i){var o=n.axisPointerModel.option,s=r[i];s?(!n.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!n.useHandle&&(o.status="hide"),o.status==="show"&&a.push({axisDim:n.axis.dim,axisIndex:n.axis.model.componentIndex,value:o.value})})}function fW(r,e,t,a){if(sf(e)||!r.list.length){a({type:"hideTip"});return}var n=((r.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};a({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:t.tooltipOption,position:t.position,dataIndexInside:n.dataIndexInside,dataIndex:n.dataIndex,seriesIndex:n.seriesIndex,dataByCoordSys:r.list})}function hW(r,e,t){var a=t.getZr(),n="axisPointerLastHighlights",i=Gx(a)[n]||{},o=Gx(a)[n]={};C(r,function(u,f){var h=u.axisPointerModel.option;h.status==="show"&&u.triggerEmphasis&&C(h.seriesDataIndices,function(v){var c=v.seriesIndex+" | "+v.dataIndex;o[c]=v})});var s=[],l=[];C(i,function(u,f){!o[f]&&l.push(u)}),C(o,function(u,f){!i[f]&&s.push(u)}),l.length&&t.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&t.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function vW(r,e){for(var t=0;t<(r||[]).length;t++){var a=r[t];if(e.axis.dim===a.axisDim&&e.axis.model.componentIndex===a.axisIndex)return a}}function Hx(r){var e=r.axis.model,t={},a=t.axisDim=r.axis.dim;return t.axisIndex=t[a+"AxisIndex"]=e.componentIndex,t.axisName=t[a+"AxisName"]=e.name,t.axisId=t[a+"AxisId"]=e.id,t}function sf(r){return!r||r[0]==null||isNaN(r[0])||r[1]==null||isNaN(r[1])}function Gl(r){mi.registerAxisPointerClass("CartesianAxisPointer",K4),r.registerComponentModel(Q4),r.registerComponentView(nW),r.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!z(t)&&(e.axisPointer.link=[t])}}),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=bz(e,t)}),r.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},iW)}function cW(r){gt(ZD),gt(Gl)}var pW=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis;s.dim==="angle"&&(this.animationThreshold=Math.PI/18);var l=s.polar,u=l.getOtherAxis(s),f=u.getExtent(),h=s.dataToCoord(a),v=i.get("type");if(v&&v!=="none"){var c=nm(i),p=gW[v](s,l,h,f);p.style=c,t.graphicKey=p.type,t.pointer=p}var d=i.get(["label","margin"]),g=dW(a,n,i,l,d);dI(t,n,i,o,g)},e}(am);function dW(r,e,t,a,n){var i=e.axis,o=i.dataToCoord(r),s=a.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l=a.getRadiusAxis().getExtent(),u,f,h;if(i.dim==="radius"){var v=Ge();an(v,v,s),Dr(v,v,[a.cx,a.cy]),u=Ar([o,-n],v);var c=e.getModel("axisLabel").get("rotate")||0,p=Pe.innerTextLayout(s,c*Math.PI/180,-1);f=p.textAlign,h=p.textVerticalAlign}else{var d=l[1];u=a.coordToPoint([d+n,o]);var g=a.cx,y=a.cy;f=Math.abs(u[0]-g)/d<.3?"center":u[0]>g?"left":"right",h=Math.abs(u[1]-y)/d<.3?"middle":u[1]>y?"top":"bottom"}return{position:u,align:f,verticalAlign:h}}var gW={line:function(r,e,t,a){return r.dim==="angle"?{type:"Line",shape:om(e.coordToPoint([a[0],t]),e.coordToPoint([a[1],t]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:t}}},shadow:function(r,e,t,a){var n=Math.max(1,r.getBandWidth()),i=Math.PI/180;return r.dim==="angle"?{type:"Sector",shape:Nx(e.cx,e.cy,a[0],a[1],(-t-n/2)*i,(-t+n/2)*i)}:{type:"Sector",shape:Nx(e.cx,e.cy,t-n/2,t+n/2,0,Math.PI*2)}}},yW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.findAxisModel=function(t){var a,n=this.ecModel;return n.eachComponent(t,function(i){i.getCoordSysModel()===this&&(a=i)},this),a},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(mt),sm=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Kt).models[0]},e.type="polarAxis",e}(mt);Xt(sm,Oo);var mW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="angleAxis",e}(sm),_W=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="radiusAxis",e}(sm),lm=function(r){k(e,r);function e(t,a){return r.call(this,"radius",t,a)||this}return e.prototype.pointToData=function(t,a){return this.polar.pointToData(t,a)[this.dim==="radius"?0:1]},e}(Lr);lm.prototype.dataToRadius=Lr.prototype.dataToCoord;lm.prototype.radiusToData=Lr.prototype.coordToData;var SW=Tt(),um=function(r){k(e,r);function e(t,a){return r.call(this,"angle",t,a||[0,360])||this}return e.prototype.pointToData=function(t,a){return this.polar.pointToData(t,a)[this.dim==="radius"?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,a=t.getLabelModel(),n=t.scale,i=n.getExtent(),o=n.count();if(i[1]-i[0]<1)return 0;var s=i[0],l=t.dataToCoord(s+1)-t.dataToCoord(s),u=Math.abs(l),f=bl(s==null?"":s+"",a.getFont(),"center","top"),h=Math.max(f.height,7),v=h/u;isNaN(v)&&(v=1/0);var c=Math.max(0,Math.floor(v)),p=SW(t.model),d=p.lastAutoInterval,g=p.lastTickCount;return d!=null&&g!=null&&Math.abs(d-c)<=1&&Math.abs(g-o)<=1&&d>c?c=d:(p.lastTickCount=o,p.lastAutoInterval=c),c},e}(Lr);um.prototype.dataToAngle=Lr.prototype.dataToCoord;um.prototype.angleToData=Lr.prototype.coordToData;var xI=["radius","angle"],xW=function(){function r(e){this.dimensions=xI,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new lm,this._angleAxis=new um,this.axisPointerEnabled=!0,this.name=e||"",this._radiusAxis.polar=this._angleAxis.polar=this}return r.prototype.containPoint=function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},r.prototype.containData=function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},r.prototype.getAxis=function(e){var t="_"+e+"Axis";return this[t]},r.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},r.prototype.getAxesByScale=function(e){var t=[],a=this._angleAxis,n=this._radiusAxis;return a.scale.type===e&&t.push(a),n.scale.type===e&&t.push(n),t},r.prototype.getAngleAxis=function(){return this._angleAxis},r.prototype.getRadiusAxis=function(){return this._radiusAxis},r.prototype.getOtherAxis=function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},r.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},r.prototype.getTooltipAxes=function(e){var t=e!=null&&e!=="auto"?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},r.prototype.dataToPoint=function(e,t){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)])},r.prototype.pointToData=function(e,t){var a=this.pointToCoord(e);return[this._radiusAxis.radiusToData(a[0],t),this._angleAxis.angleToData(a[1],t)]},r.prototype.pointToCoord=function(e){var t=e[0]-this.cx,a=e[1]-this.cy,n=this.getAngleAxis(),i=n.getExtent(),o=Math.min(i[0],i[1]),s=Math.max(i[0],i[1]);n.inverse?o=s-360:s=o+360;var l=Math.sqrt(t*t+a*a);t/=l,a/=l;for(var u=Math.atan2(-a,t)/Math.PI*180,f=us;)u+=f*360;return[l,u]},r.prototype.coordToPoint=function(e){var t=e[0],a=e[1]/180*Math.PI,n=Math.cos(a)*t+this.cx,i=-Math.sin(a)*t+this.cy;return[n,i]},r.prototype.getArea=function(){var e=this.getAngleAxis(),t=this.getRadiusAxis(),a=t.getExtent().slice();a[0]>a[1]&&a.reverse();var n=e.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:a[0],r:a[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:e.inverse,contain:function(o,s){var l=o-this.cx,u=s-this.cy,f=l*l+u*u-1e-4,h=this.r,v=this.r0;return f<=h*h&&f>=v*v}}},r.prototype.convertToPixel=function(e,t,a){var n=Wx(t);return n===this?this.dataToPoint(a):null},r.prototype.convertFromPixel=function(e,t,a){var n=Wx(t);return n===this?this.pointToData(a):null},r}();function Wx(r){var e=r.seriesModel,t=r.polarModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}function bW(r,e,t){var a=e.get("center"),n=t.getWidth(),i=t.getHeight();r.cx=W(a[0],n),r.cy=W(a[1],i);var o=r.getRadiusAxis(),s=Math.min(n,i)/2,l=e.get("radius");l==null?l=[0,"100%"]:z(l)||(l=[0,l]);var u=[W(l[0],s),W(l[1],s)];o.inverse?o.setExtent(u[1],u[0]):o.setExtent(u[0],u[1])}function wW(r,e){var t=this,a=t.getAngleAxis(),n=t.getRadiusAxis();if(a.scale.setExtent(1/0,-1/0),n.scale.setExtent(1/0,-1/0),r.eachSeries(function(s){if(s.coordinateSystem===t){var l=s.getData();C(Gf(l,"radius"),function(u){n.scale.unionExtentFromData(l,u)}),C(Gf(l,"angle"),function(u){a.scale.unionExtentFromData(l,u)})}}),li(a.scale,a.model),li(n.scale,n.model),a.type==="category"&&!a.onBand){var i=a.getExtent(),o=360/a.scale.count();a.inverse?i[1]+=o:i[1]-=o,a.setExtent(i[0],i[1])}}function TW(r){return r.mainType==="angleAxis"}function Ux(r,e){var t;if(r.type=e.get("type"),r.scale=Pl(e),r.onBand=e.get("boundaryGap")&&r.type==="category",r.inverse=e.get("inverse"),TW(e)){r.inverse=r.inverse!==e.get("clockwise");var a=e.get("startAngle"),n=(t=e.get("endAngle"))!==null&&t!==void 0?t:a+(r.inverse?-360:360);r.setExtent(a,n)}e.axis=r,r.model=e}var AW={dimensions:xI,create:function(r,e){var t=[];return r.eachComponent("polar",function(a,n){var i=new xW(n+"");i.update=wW;var o=i.getRadiusAxis(),s=i.getAngleAxis(),l=a.findAxisModel("radiusAxis"),u=a.findAxisModel("angleAxis");Ux(o,l),Ux(s,u),bW(i,a,e),t.push(i),a.coordinateSystem=i,i.model=a}),r.eachSeries(function(a){if(a.get("coordinateSystem")==="polar"){var n=a.getReferringComponents("polar",Kt).models[0];a.coordinateSystem=n.coordinateSystem}}),t}},CW=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function Nu(r,e,t){e[1]>e[0]&&(e=e.slice().reverse());var a=r.coordToPoint([e[0],t]),n=r.coordToPoint([e[1],t]);return{x1:a[0],y1:a[1],x2:n[0],y2:n[1]}}function Bu(r){var e=r.getRadiusAxis();return e.inverse?0:1}function Yx(r){var e=r[0],t=r[r.length-1];e&&t&&Math.abs(Math.abs(e.coord-t.coord)-360)<1e-4&&r.pop()}var DW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.axisPointerClass="PolarAxisPointer",t}return e.prototype.render=function(t,a){if(this.group.removeAll(),!!t.get("show")){var n=t.axis,i=n.polar,o=i.getRadiusAxis().getExtent(),s=n.getTicksCoords(),l=n.getMinorTicksCoords(),u=G(n.getViewLabels(),function(f){f=et(f);var h=n.scale,v=h.type==="ordinal"?h.getRawOrdinalNumber(f.tickValue):f.tickValue;return f.coord=n.dataToCoord(v),f});Yx(u),Yx(s),C(CW,function(f){t.get([f,"show"])&&(!n.scale.isBlank()||f==="axisLine")&&MW[f](this.group,t,i,s,l,o,u)},this)}},e.type="angleAxis",e}(mi),MW={axisLine:function(r,e,t,a,n,i){var o=e.getModel(["axisLine","lineStyle"]),s=t.getAngleAxis(),l=Math.PI/180,u=s.getExtent(),f=Bu(t),h=f?0:1,v,c=Math.abs(u[1]-u[0])===360?"Circle":"Arc";i[h]===0?v=new ci[c]({shape:{cx:t.cx,cy:t.cy,r:i[f],startAngle:-u[0]*l,endAngle:-u[1]*l,clockwise:s.inverse},style:o.getLineStyle(),z2:1,silent:!0}):v=new _o({shape:{cx:t.cx,cy:t.cy,r:i[f],r0:i[h]},style:o.getLineStyle(),z2:1,silent:!0}),v.style.fill=null,r.add(v)},axisTick:function(r,e,t,a,n,i){var o=e.getModel("axisTick"),s=(o.get("inside")?-1:1)*o.get("length"),l=i[Bu(t)],u=G(a,function(f){return new Jt({shape:Nu(t,[l,l+s],f.coord)})});r.add(We(u,{style:Q(o.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(r,e,t,a,n,i){if(n.length){for(var o=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(o.get("inside")?-1:1)*s.get("length"),u=i[Bu(t)],f=[],h=0;hy?"left":"right",S=Math.abs(g[1]-m)/d<.3?"middle":g[1]>m?"top":"bottom";if(s&&s[p]){var b=s[p];tt(b)&&b.textStyle&&(c=new Mt(b.textStyle,l,l.ecModel))}var x=new bt({silent:Pe.isLabelSilent(e),style:Nt(c,{x:g[0],y:g[1],fill:c.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:h.formattedLabel,align:_,verticalAlign:S})});if(r.add(x),f){var w=Pe.makeAxisEventDataBase(e);w.targetType="axisLabel",w.value=h.rawLabel,nt(x).eventData=w}},this)},splitLine:function(r,e,t,a,n,i){var o=e.getModel("splitLine"),s=o.getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var f=[],h=0;h=0?"p":"n",R=A;b&&(a[f][L]||(a[f][L]={p:A,n:A}),R=a[f][L][P]);var E=void 0,N=void 0,O=void 0,B=void 0;if(p.dim==="radius"){var F=p.dataToCoord(I)-A,H=l.dataToCoord(L);Math.abs(F)=B})}}})}function OW(r){var e={};C(r,function(a,n){var i=a.getData(),o=a.coordinateSystem,s=o.getBaseAxis(),l=wI(o,s),u=s.getExtent(),f=s.type==="category"?s.getBandWidth():Math.abs(u[1]-u[0])/i.count(),h=e[l]||{bandWidth:f,remainedWidth:f,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},v=h.stacks;e[l]=h;var c=bI(a);v[c]||h.autoWidthCount++,v[c]=v[c]||{width:0,maxWidth:0};var p=W(a.get("barWidth"),f),d=W(a.get("barMaxWidth"),f),g=a.get("barGap"),y=a.get("barCategoryGap");p&&!v[c].width&&(p=Math.min(h.remainedWidth,p),v[c].width=p,h.remainedWidth-=p),d&&(v[c].maxWidth=d),g!=null&&(h.gap=g),y!=null&&(h.categoryGap=y)});var t={};return C(e,function(a,n){t[n]={};var i=a.stacks,o=a.bandWidth,s=W(a.categoryGap,o),l=W(a.gap,1),u=a.remainedWidth,f=a.autoWidthCount,h=(u-s)/(f+(f-1)*l);h=Math.max(h,0),C(i,function(d,g){var y=d.maxWidth;y&&y=t.y&&e[1]<=t.y+t.height:a.contain(a.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},r.prototype.pointToData=function(e){var t=this.getAxis();return[t.coordToData(t.toLocalCoord(e[t.orient==="horizontal"?0:1]))]},r.prototype.dataToPoint=function(e){var t=this.getAxis(),a=this.getRect(),n=[],i=t.orient==="horizontal"?0:1;return e instanceof Array&&(e=e[0]),n[i]=t.toGlobalCoord(t.dataToCoord(+e)),n[1-i]=i===0?a.y+a.height/2:a.x+a.width/2,n},r.prototype.convertToPixel=function(e,t,a){var n=Xx(t);return n===this?this.dataToPoint(a):null},r.prototype.convertFromPixel=function(e,t,a){var n=Xx(t);return n===this?this.pointToData(a):null},r}();function Xx(r){var e=r.seriesModel,t=r.singleAxisModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}function XW(r,e){var t=[];return r.eachComponent("singleAxis",function(a,n){var i=new YW(a,r,e);i.name="single_"+n,i.resize(a,e),a.coordinateSystem=i,t.push(i)}),r.eachSeries(function(a){if(a.get("coordinateSystem")==="singleAxis"){var n=a.getReferringComponents("singleAxis",Kt).models[0];a.coordinateSystem=n&&n.coordinateSystem}}),t}var $W={create:XW,dimensions:TI},$x=["x","y"],ZW=["width","height"],qW=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis,l=s.coordinateSystem,u=ep(l,1-th(s)),f=l.dataToPoint(a)[0],h=i.get("type");if(h&&h!=="none"){var v=nm(i),c=KW[h](s,f,u);c.style=v,t.graphicKey=c.type,t.pointer=c}var p=Xd(n);yI(a,t,p,n,i,o)},e.prototype.getHandleTransform=function(t,a,n){var i=Xd(a,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=im(a.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,a,n,i){var o=n.axis,s=o.coordinateSystem,l=th(o),u=ep(s,l),f=[t.x,t.y];f[l]+=a[l],f[l]=Math.min(u[1],f[l]),f[l]=Math.max(u[0],f[l]);var h=ep(s,1-l),v=(h[1]+h[0])/2,c=[v,v];return c[l]=f[l],{x:f[0],y:f[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(am),KW={line:function(r,e,t){var a=om([e,t[0]],[e,t[1]],th(r));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(r,e,t){var a=r.getBandWidth(),n=t[1]-t[0];return{type:"Rect",shape:mI([e-a/2,t[0]],[a,n],th(r))}}};function th(r){return r.isHorizontal()?0:1}function ep(r,e){var t=r.getRect();return[t[$x[e]],t[$x[e]]+t[ZW[e]]]}var jW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="single",e}(zt);function QW(r){gt(Gl),mi.registerAxisPointerClass("SingleAxisPointer",qW),r.registerComponentView(jW),r.registerComponentView(HW),r.registerComponentModel(lf),ho(r,"single",lf,lf.defaultOption),r.registerCoordinateSystem("single",$W)}var JW=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a,n){var i=Do(t);r.prototype.init.apply(this,arguments),Zx(t,i)},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),Zx(this.option,t)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(mt);function Zx(r,e){var t=r.cellSize,a;z(t)?a=t:a=r.cellSize=[t,t],a.length===1&&(a[1]=a[0]);var n=G([0,1],function(i){return gE(e,i)&&(a[i]="auto"),a[i]!=null&&a[i]!=="auto"});Ja(r,e,{type:"box",ignoreSize:n})}var t6=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group;i.removeAll();var o=t.coordinateSystem,s=o.getRangeInfo(),l=o.getOrient(),u=a.getLocaleModel();this._renderDayRect(t,s,i),this._renderLines(t,s,l,i),this._renderYearText(t,s,l,i),this._renderMonthText(t,u,l,i),this._renderWeekText(t,u,s,l,i)},e.prototype._renderDayRect=function(t,a,n){for(var i=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),s=i.getCellWidth(),l=i.getCellHeight(),u=a.start.time;u<=a.end.time;u=i.getNextNDay(u,1).time){var f=i.dataToRect([u],!1).tl,h=new wt({shape:{x:f[0],y:f[1],width:s,height:l},cursor:"default",style:o});n.add(h)}},e.prototype._renderLines=function(t,a,n,i){var o=this,s=t.coordinateSystem,l=t.getModel(["splitLine","lineStyle"]).getLineStyle(),u=t.get(["splitLine","show"]),f=l.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=a.start,v=0;h.time<=a.end.time;v++){p(h.formatedDate),v===0&&(h=s.getDateInfo(a.start.y+"-"+a.start.m));var c=h.date;c.setMonth(c.getMonth()+1),h=s.getDateInfo(c)}p(s.getNextNDay(a.end.time,1).formatedDate);function p(d){o._firstDayOfMonth.push(s.getDateInfo(d)),o._firstDayPoints.push(s.dataToRect([d],!1).tl);var g=o._getLinePointsOfOneWeek(t,d,n);o._tlpoints.push(g[0]),o._blpoints.push(g[g.length-1]),u&&o._drawSplitline(g,l,i)}u&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,f,n),l,i),u&&this._drawSplitline(o._getEdgesPoints(o._blpoints,f,n),l,i)},e.prototype._getEdgesPoints=function(t,a,n){var i=[t[0].slice(),t[t.length-1].slice()],o=n==="horizontal"?0:1;return i[0][o]=i[0][o]-a/2,i[1][o]=i[1][o]+a/2,i},e.prototype._drawSplitline=function(t,a,n){var i=new be({z2:20,shape:{points:t},style:a});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,a,n){for(var i=t.coordinateSystem,o=i.getDateInfo(a),s=[],l=0;l<7;l++){var u=i.getNextNDay(o.time,l),f=i.dataToRect([u.time],!1);s[2*u.day]=f.tl,s[2*u.day+1]=f[n==="horizontal"?"bl":"tr"]}return s},e.prototype._formatterLabel=function(t,a){return U(t)&&t?vE(t,a):K(t)?t(a):a.nameMap},e.prototype._yearTextPositionControl=function(t,a,n,i,o){var s=a[0],l=a[1],u=["center","bottom"];i==="bottom"?(l+=o,u=["center","top"]):i==="left"?s-=o:i==="right"?(s+=o,u=["center","top"]):l-=o;var f=0;return(i==="left"||i==="right")&&(f=Math.PI/2),{rotation:f,x:s,y:l,style:{align:u[0],verticalAlign:u[1]}}},e.prototype._renderYearText=function(t,a,n,i){var o=t.getModel("yearLabel");if(o.get("show")){var s=o.get("margin"),l=o.get("position");l||(l=n!=="horizontal"?"top":"left");var u=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],f=(u[0][0]+u[1][0])/2,h=(u[0][1]+u[1][1])/2,v=n==="horizontal"?0:1,c={top:[f,u[v][1]],bottom:[f,u[1-v][1]],left:[u[1-v][0],h],right:[u[v][0],h]},p=a.start.y;+a.end.y>+a.start.y&&(p=p+"-"+a.end.y);var d=o.get("formatter"),g={start:a.start.y,end:a.end.y,nameMap:p},y=this._formatterLabel(d,g),m=new bt({z2:30,style:Nt(o,{text:y})});m.attr(this._yearTextPositionControl(m,c[l],n,l,s)),i.add(m)}},e.prototype._monthTextPositionControl=function(t,a,n,i,o){var s="left",l="top",u=t[0],f=t[1];return n==="horizontal"?(f=f+o,a&&(s="center"),i==="start"&&(l="bottom")):(u=u+o,a&&(l="middle"),i==="start"&&(s="right")),{x:u,y:f,align:s,verticalAlign:l}},e.prototype._renderMonthText=function(t,a,n,i){var o=t.getModel("monthLabel");if(o.get("show")){var s=o.get("nameMap"),l=o.get("margin"),u=o.get("position"),f=o.get("align"),h=[this._tlpoints,this._blpoints];(!s||U(s))&&(s&&(a=td(s)||a),s=a.get(["time","monthAbbr"])||[]);var v=u==="start"?0:1,c=n==="horizontal"?0:1;l=u==="start"?-l:l;for(var p=f==="center",d=0;d=n.start.time&&a.times.end.time&&t.reverse(),t},r.prototype._getRangeInfo=function(e){var t=[this.getDateInfo(e[0]),this.getDateInfo(e[1])],a;t[0].time>t[1].time&&(a=!0,t.reverse());var n=Math.floor(t[1].time/rp)-Math.floor(t[0].time/rp)+1,i=new Date(t[0].time),o=i.getDate(),s=t[1].date.getDate();i.setDate(o+n-1);var l=i.getDate();if(l!==s)for(var u=i.getTime()-t[1].time>0?1:-1;(l=i.getDate())!==s&&(i.getTime()-t[1].time)*u>0;)n-=u,i.setDate(l-u);var f=Math.floor((n+t[0].day+6)/7),h=a?-f+1:f-1;return a&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:n,weeks:f,nthWeek:h,fweek:t[0].day,lweek:t[1].day}},r.prototype._getDateByWeeksAndDay=function(e,t,a){var n=this._getRangeInfo(a);if(e>n.weeks||e===0&&tn.lweek)return null;var i=(e-1)*7-n.fweek+t,o=new Date(n.start.time);return o.setDate(+n.start.d+i),this.getDateInfo(o)},r.create=function(e,t){var a=[];return e.eachComponent("calendar",function(n){var i=new r(n);a.push(i),n.coordinateSystem=i}),e.eachSeries(function(n){n.get("coordinateSystem")==="calendar"&&(n.coordinateSystem=a[n.get("calendarIndex")||0])}),a},r.dimensions=["time","value"],r}();function qx(r){var e=r.calendarModel,t=r.seriesModel,a=e?e.coordinateSystem:t?t.coordinateSystem:null;return a}function r6(r){r.registerComponentModel(JW),r.registerComponentView(t6),r.registerCoordinateSystem("calendar",e6)}function a6(r,e){var t=r.existing;if(e.id=r.keyInfo.id,!e.type&&t&&(e.type=t.type),e.parentId==null){var a=e.parentOption;a?e.parentId=a.id:t&&(e.parentId=t.parentId)}e.parentOption=null}function Kx(r,e){var t;return C(e,function(a){r[a]!=null&&r[a]!=="auto"&&(t=!0)}),t}function n6(r,e,t){var a=V({},t),n=r[e],i=t.$action||"merge";i==="merge"?n?(st(n,a,!0),Ja(n,a,{ignoreSize:!0}),gA(t,n),Vu(t,n),Vu(t,n,"shape"),Vu(t,n,"style"),Vu(t,n,"extra"),t.clipPath=n.clipPath):r[e]=a:i==="replace"?r[e]=a:i==="remove"&&n&&(r[e]=null)}var AI=["transition","enterFrom","leaveTo"],i6=AI.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function Vu(r,e,t){if(t&&(!r[t]&&e[t]&&(r[t]={}),r=r[t],e=e[t]),!(!r||!e))for(var a=t?AI:i6,n=0;n=0;f--){var h=n[f],v=Qt(h.id,null),c=v!=null?o.get(v):null;if(c){var p=c.parent,y=rr(p),m=p===i?{width:s,height:l}:{width:y.width,height:y.height},_={},S=kh(c,h,m,null,{hv:h.hv,boundingMode:h.bounding},_);if(!rr(c).isNew&&S){for(var b=h.transition,x={},w=0;w=0)?x[T]=A:c[T]=A}Dt(c,x,t,0)}else c.attr(_)}}},e.prototype._clear=function(){var t=this,a=this._elMap;a.each(function(n){uf(n,rr(n).option,a,t._lastGraphicModel)}),this._elMap=Z()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(zt);function $d(r){var e=$(jx,r)?jx[r]:Dh(r),t=new e({});return rr(t).type=r,t}function Qx(r,e,t,a){var n=$d(t);return e.add(n),a.set(r,n),rr(n).id=r,rr(n).isNew=!0,n}function uf(r,e,t,a){var n=r&&r.parent;n&&(r.type==="group"&&r.traverse(function(i){uf(i,e,t,a)}),qh(r,e,a),t.removeKey(rr(r).id))}function Jx(r,e,t,a){r.isGroup||C([["cursor",ur.prototype.cursor],["zlevel",a||0],["z",t||0],["z2",0]],function(n){var i=n[0];$(e,i)?r[i]=ot(e[i],n[1]):r[i]==null&&(r[i]=n[1])}),C(St(e),function(n){if(n.indexOf("on")===0){var i=e[n];r[n]=K(i)?i:null}}),$(e,"draggable")&&(r.draggable=e.draggable),e.name!=null&&(r.name=e.name),e.id!=null&&(r.id=e.id)}function u6(r){return r=V({},r),C(["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(dA),function(e){delete r[e]}),r}function f6(r,e,t){var a=nt(r).eventData;!r.silent&&!r.ignore&&!a&&(a=nt(r).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:r.name}),a&&(a.info=t.info)}function h6(r){r.registerComponentModel(s6),r.registerComponentView(l6),r.registerPreprocessor(function(e){var t=e.graphic;z(t)?!t[0]||!t[0].elements?e.graphic=[{elements:t}]:e.graphic=[e.graphic[0]]:t&&!t.elements&&(e.graphic=[{elements:[t]}])})}var tb=["x","y","radius","angle","single"],v6=["cartesian2d","polar","singleAxis"];function c6(r){var e=r.get("coordinateSystem");return vt(v6,e)>=0}function Ha(r){return r+"Axis"}function p6(r,e){var t=Z(),a=[],n=Z();r.eachComponent({mainType:"dataZoom",query:e},function(f){n.get(f.uid)||s(f)});var i;do i=!1,r.eachComponent("dataZoom",o);while(i);function o(f){!n.get(f.uid)&&l(f)&&(s(f),i=!0)}function s(f){n.set(f.uid,!0),a.push(f),u(f)}function l(f){var h=!1;return f.eachTargetAxis(function(v,c){var p=t.get(v);p&&p[c]&&(h=!0)}),h}function u(f){f.eachTargetAxis(function(h,v){(t.get(h)||t.set(h,[]))[v]=!0})}return a}function CI(r){var e=r.ecModel,t={infoList:[],infoMap:Z()};return r.eachTargetAxis(function(a,n){var i=e.getComponent(Ha(a),n);if(i){var o=i.getCoordSysModel();if(o){var s=o.uid,l=t.infoMap.get(s);l||(l={model:o,axisModels:[]},t.infoList.push(l),t.infoMap.set(s,l)),l.axisModels.push(i)}}}),t}var ap=function(){function r(){this.indexList=[],this.indexMap=[]}return r.prototype.add=function(e){this.indexMap[e]||(this.indexList.push(e),this.indexMap[e]=!0)},r}(),dl=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._autoThrottle=!0,t._noTarget=!0,t._rangePropMode=["percent","percent"],t}return e.prototype.init=function(t,a,n){var i=eb(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var a=eb(t);st(this.option,t,!0),st(this.settledOption,a,!0),this._doInit(a)},e.prototype._doInit=function(t){var a=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;C([["start","startValue"],["end","endValue"]],function(i,o){this._rangePropMode[o]==="value"&&(a[i[0]]=n[i[0]]=null)},this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),a=this._targetAxisInfoMap=Z(),n=this._fillSpecifiedTargetAxis(a);n?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(a,this._orient)),this._noTarget=!0,a.each(function(i){i.indexList.length&&(this._noTarget=!1)},this)},e.prototype._fillSpecifiedTargetAxis=function(t){var a=!1;return C(tb,function(n){var i=this.getReferringComponents(Ha(n),iP);if(i.specified){a=!0;var o=new ap;C(i.models,function(s){o.add(s.componentIndex)}),t.set(n,o)}},this),a},e.prototype._fillAutoTargetAxisByOrient=function(t,a){var n=this.ecModel,i=!0;if(i){var o=a==="vertical"?"y":"x",s=n.findComponents({mainType:o+"Axis"});l(s,o)}if(i){var s=n.findComponents({mainType:"singleAxis",filter:function(f){return f.get("orient",!0)===a}});l(s,"single")}function l(u,f){var h=u[0];if(h){var v=new ap;if(v.add(h.componentIndex),t.set(f,v),i=!1,f==="x"||f==="y"){var c=h.getReferringComponents("grid",Kt).models[0];c&&C(u,function(p){h.componentIndex!==p.componentIndex&&c===p.getReferringComponents("grid",Kt).models[0]&&v.add(p.componentIndex)})}}}i&&C(tb,function(u){if(i){var f=n.findComponents({mainType:Ha(u),filter:function(v){return v.get("type",!0)==="category"}});if(f[0]){var h=new ap;h.add(f[0].componentIndex),t.set(u,h),i=!1}}},this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis(function(a){!t&&(t=a)},this),t==="y"?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var a=this.ecModel.option;this.option.throttle=a.animation&&a.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var a=this._rangePropMode,n=this.get("rangeMode");C([["start","startValue"],["end","endValue"]],function(i,o){var s=t[i[0]]!=null,l=t[i[1]]!=null;s&&!l?a[o]="percent":!s&&l?a[o]="value":n?a[o]=n[o]:s&&(a[o]="percent")})},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis(function(a,n){t==null&&(t=this.ecModel.getComponent(Ha(a),n))},this),t},e.prototype.eachTargetAxis=function(t,a){this._targetAxisInfoMap.each(function(n,i){C(n.indexList,function(o){t.call(a,i,o)})})},e.prototype.getAxisProxy=function(t,a){var n=this.getAxisModel(t,a);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,a){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[a])return this.ecModel.getComponent(Ha(t),a)},e.prototype.setRawRange=function(t){var a=this.option,n=this.settledOption;C([["start","startValue"],["end","endValue"]],function(i){(t[i[0]]!=null||t[i[1]]!=null)&&(a[i[0]]=n[i[0]]=t[i[0]],a[i[1]]=n[i[1]]=t[i[1]])},this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var a=this.option;C(["start","startValue","end","endValue"],function(n){a[n]=t[n]})},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,a){if(t==null&&a==null){var n=this.findRepresentativeAxisProxy();if(n)return n.getDataValueWindow()}else return this.getAxisProxy(t,a).getDataValueWindow()},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var a,n=this._targetAxisInfoMap.keys(),i=0;io[1];if(_&&!S&&!b)return!0;_&&(g=!0),S&&(p=!0),b&&(d=!0)}return g&&p&&d})}else Ui(f,function(c){if(i==="empty")l.setData(u=u.map(c,function(d){return s(d)?d:NaN}));else{var p={};p[c]=o,u.selectRange(p)}});Ui(f,function(c){u.setApproximateExtent(o,c)})}});function s(l){return l>=o[0]&&l<=o[1]}},r.prototype._updateMinMaxSpan=function(){var e=this._minMaxSpan={},t=this._dataZoomModel,a=this._dataExtent;Ui(["min","max"],function(n){var i=t.get(n+"Span"),o=t.get(n+"ValueSpan");o!=null&&(o=this.getAxisModel().axis.scale.parse(o)),o!=null?i=Lt(a[0]+o,a,[0,100],!0):i!=null&&(o=Lt(i,[0,100],a,!0)-a[0]),e[n+"Span"]=i,e[n+"ValueSpan"]=o},this)},r.prototype._setAxisModel=function(){var e=this.getAxisModel(),t=this._percentWindow,a=this._valueWindow;if(t){var n=_g(a,[0,500]);n=Math.min(n,20);var i=e.axis.scale.rawExtentInfo;t[0]!==0&&i.setDeterminedMinMax("min",+a[0].toFixed(n)),t[1]!==100&&i.setDeterminedMinMax("max",+a[1].toFixed(n)),i.freeze()}},r}();function m6(r,e,t){var a=[1/0,-1/0];Ui(t,function(o){XN(a,o.getData(),e)});var n=r.getAxisModel(),i=UC(n.axis.scale,n,a).calculate();return[i.min,i.max]}var _6={getTargetSeries:function(r){function e(n){r.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(o,s){var l=r.getComponent(Ha(o),s);n(o,s,l,i)})})}e(function(n,i,o,s){o.__dzAxisProxy=null});var t=[];e(function(n,i,o,s){o.__dzAxisProxy||(o.__dzAxisProxy=new y6(n,i,s,r),t.push(o.__dzAxisProxy))});var a=Z();return C(t,function(n){C(n.getTargetSeriesModels(),function(i){a.set(i.uid,i)})}),a},overallReset:function(r,e){r.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(a,n){t.getAxisProxy(a,n).reset(t)}),t.eachTargetAxis(function(a,n){t.getAxisProxy(a,n).filterData(t,e)})}),r.eachComponent("dataZoom",function(t){var a=t.findRepresentativeAxisProxy();if(a){var n=a.getDataPercentWindow(),i=a.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}})}};function S6(r){r.registerAction("dataZoom",function(e,t){var a=p6(t,e);C(a,function(n){n.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})}var ab=!1;function hm(r){ab||(ab=!0,r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,_6),S6(r),r.registerSubTypeDefaulter("dataZoom",function(){return"slider"}))}function x6(r){r.registerComponentModel(d6),r.registerComponentView(g6),hm(r)}var nr=function(){function r(){}return r}(),DI={};function Yi(r,e){DI[r]=e}function MI(r){return DI[r]}var b6=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(){r.prototype.optionUpdated.apply(this,arguments);var t=this.ecModel;C(this.option.feature,function(a,n){var i=MI(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(t)),st(a,i.defaultOption))})},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(mt);function w6(r,e,t){var a=e.getBoxLayoutParams(),n=e.get("padding"),i={width:t.getWidth(),height:t.getHeight()},o=jt(a,i,n);Qn(e.get("orient"),r,e.get("itemGap"),o.width,o.height),kh(r,a,i,n)}function II(r,e){var t=pi(e.get("padding")),a=e.getItemStyle(["color","opacity"]);return a.fill=e.get("backgroundColor"),r=new wt({shape:{x:r.x-t[3],y:r.y-t[0],width:r.width+t[1]+t[3],height:r.height+t[0]+t[2],r:e.get("borderRadius")},style:a,silent:!0,z2:-1}),r}var T6=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n,i){var o=this.group;if(o.removeAll(),!t.get("show"))return;var s=+t.get("itemSize"),l=t.get("orient")==="vertical",u=t.get("feature")||{},f=this._features||(this._features={}),h=[];C(u,function(p,d){h.push(d)}),new ya(this._featureNames||[],h).add(v).update(v).remove(it(v,null)).execute(),this._featureNames=h;function v(p,d){var g=h[p],y=h[d],m=u[g],_=new Mt(m,t,t.ecModel),S;if(i&&i.newTitle!=null&&i.featureName===g&&(m.title=i.newTitle),g&&!y){if(A6(g))S={onclick:_.option.onclick,featureName:g};else{var b=MI(g);if(!b)return;S=new b}f[g]=S}else if(S=f[y],!S)return;S.uid=Co("toolbox-feature"),S.model=_,S.ecModel=a,S.api=n;var x=S instanceof nr;if(!g&&y){x&&S.dispose&&S.dispose(a,n);return}if(!_.get("show")||x&&S.unusable){x&&S.remove&&S.remove(a,n);return}c(_,S,g),_.setIconStatus=function(w,T){var A=this.option,D=this.iconPaths;A.iconStatus=A.iconStatus||{},A.iconStatus[w]=T,D[w]&&(T==="emphasis"?da:ga)(D[w])},S instanceof nr&&S.render&&S.render(_,a,n,i)}function c(p,d,g){var y=p.getModel("iconStyle"),m=p.getModel(["emphasis","iconStyle"]),_=d instanceof nr&&d.getIcons?d.getIcons():p.get("icon"),S=p.get("title")||{},b,x;U(_)?(b={},b[g]=_):b=_,U(S)?(x={},x[g]=S):x=S;var w=p.iconPaths={};C(b,function(T,A){var D=wo(T,{},{x:-s/2,y:-s/2,width:s,height:s});D.setStyle(y.getItemStyle());var M=D.ensureState("emphasis");M.style=m.getItemStyle();var I=new bt({style:{text:x[A],align:m.get("textAlign"),borderRadius:m.get("textBorderRadius"),padding:m.get("textPadding"),fill:null,font:zg({fontStyle:m.get("textFontStyle"),fontFamily:m.get("textFontFamily"),fontSize:m.get("textFontSize"),fontWeight:m.get("textFontWeight")},a)},ignore:!0});D.setTextContent(I),To({el:D,componentModel:t,itemName:A,formatterParamsExtra:{title:x[A]}}),D.__title=x[A],D.on("mouseover",function(){var L=m.getItemStyle(),P=l?t.get("right")==null&&t.get("left")!=="right"?"right":"left":t.get("bottom")==null&&t.get("top")!=="bottom"?"bottom":"top";I.setStyle({fill:m.get("textFill")||L.fill||L.stroke||"#000",backgroundColor:m.get("textBackgroundColor")}),D.setTextConfig({position:m.get("textPosition")||P}),I.ignore=!t.get("showTitle"),n.enterEmphasis(this)}).on("mouseout",function(){p.get(["iconStatus",A])!=="emphasis"&&n.leaveEmphasis(this),I.hide()}),(p.get(["iconStatus",A])==="emphasis"?da:ga)(D),o.add(D),D.on("click",X(d.onclick,d,a,n,A)),w[A]=D})}w6(o,t,n),o.add(II(o.getBoundingRect(),t)),l||o.eachChild(function(p){var d=p.__title,g=p.ensureState("emphasis"),y=g.textConfig||(g.textConfig={}),m=p.getTextContent(),_=m&&m.ensureState("emphasis");if(_&&!K(_)&&d){var S=_.style||(_.style={}),b=bl(d,bt.makeFont(S)),x=p.x+o.x,w=p.y+o.y+s,T=!1;w+b.height>n.getHeight()&&(y.position="top",T=!0);var A=T?-5-b.height:s+10;x+b.width/2>n.getWidth()?(y.position=["100%",A],S.align="right"):x-b.width/2<0&&(y.position=[0,A],S.align="left")}})},e.prototype.updateView=function(t,a,n,i){C(this._features,function(o){o instanceof nr&&o.updateView&&o.updateView(o.model,a,n,i)})},e.prototype.remove=function(t,a){C(this._features,function(n){n instanceof nr&&n.remove&&n.remove(t,a)}),this.group.removeAll()},e.prototype.dispose=function(t,a){C(this._features,function(n){n instanceof nr&&n.dispose&&n.dispose(t,a)})},e.type="toolbox",e}(zt);function A6(r){return r.indexOf("my")===0}var C6=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.onclick=function(t,a){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",o=a.getZr().painter.getType()==="svg",s=o?"svg":n.get("type",!0)||"png",l=a.getConnectedDataURL({type:s,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),u=_t.browser;if(typeof MouseEvent=="function"&&(u.newEdge||!u.ie&&!u.edge)){var f=document.createElement("a");f.download=i+"."+s,f.target="_blank",f.href=l;var h=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});f.dispatchEvent(h)}else if(window.navigator.msSaveOrOpenBlob||o){var v=l.split(","),c=v[0].indexOf("base64")>-1,p=o?decodeURIComponent(v[1]):v[1];c&&(p=window.atob(p));var d=i+"."+s;if(window.navigator.msSaveOrOpenBlob){for(var g=p.length,y=new Uint8Array(g);g--;)y[g]=p.charCodeAt(g);var m=new Blob([y]);window.navigator.msSaveOrOpenBlob(m,d)}else{var _=document.createElement("iframe");document.body.appendChild(_);var S=_.contentWindow,b=S.document;b.open("image/svg+xml","replace"),b.write(p),b.close(),S.focus(),b.execCommand("SaveAs",!0,d),document.body.removeChild(_)}}else{var x=n.get("lang"),w='',T=window.open();T.document.write(w),T.document.title=i}},e.getDefaultOption=function(t){var a={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return a},e}(nr),nb="__ec_magicType_stack__",D6=[["line","bar"],["stack"]],M6=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getIcons=function(){var t=this.model,a=t.get("icon"),n={};return C(t.get("type"),function(i){a[i]&&(n[i]=a[i])}),n},e.getDefaultOption=function(t){var a={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return a},e.prototype.onclick=function(t,a,n){var i=this.model,o=i.get(["seriesIndex",n]);if(ib[n]){var s={series:[]},l=function(h){var v=h.subType,c=h.id,p=ib[n](v,c,h,i);p&&(Q(p,h.option),s.series.push(p));var d=h.coordinateSystem;if(d&&d.type==="cartesian2d"&&(n==="line"||n==="bar")){var g=d.getAxesByScale("ordinal")[0];if(g){var y=g.dim,m=y+"Axis",_=h.getReferringComponents(m,Kt).models[0],S=_.componentIndex;s[m]=s[m]||[];for(var b=0;b<=S;b++)s[m][S]=s[m][S]||{};s[m][S].boundaryGap=n==="bar"}}};C(D6,function(h){vt(h,n)>=0&&C(h,function(v){i.setIconStatus(v,"normal")})}),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:o==null?null:{seriesIndex:o}},l);var u,f=n;n==="stack"&&(u=st({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),i.get(["iconStatus",n])!=="emphasis"&&(f="tiled")),a.dispatchAction({type:"changeMagicType",currentType:f,newOption:s,newTitle:u,featureName:"magicType"})}},e}(nr),ib={line:function(r,e,t,a){if(r==="bar")return st({id:e,type:"line",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},a.get(["option","line"])||{},!0)},bar:function(r,e,t,a){if(r==="line")return st({id:e,type:"bar",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},a.get(["option","bar"])||{},!0)},stack:function(r,e,t,a){var n=t.get("stack")===nb;if(r==="line"||r==="bar")return a.setIconStatus("stack",n?"normal":"emphasis"),st({id:e,stack:n?"":nb},a.get(["option","stack"])||{},!0)}};Qr({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(r,e){e.mergeOption(r.newOption)});var Kh=new Array(60).join("-"),po=" ";function I6(r){var e={},t=[],a=[];return r.eachRawSeries(function(n){var i=n.coordinateSystem;if(i&&(i.type==="cartesian2d"||i.type==="polar")){var o=i.getBaseAxis();if(o.type==="category"){var s=o.dim+"_"+o.index;e[s]||(e[s]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},a.push({axisDim:o.dim,axisIndex:o.index})),e[s].series.push(n)}else t.push(n)}else t.push(n)}),{seriesGroupByCategoryAxis:e,other:t,meta:a}}function L6(r){var e=[];return C(r,function(t,a){var n=t.categoryAxis,i=t.valueAxis,o=i.dim,s=[" "].concat(G(t.series,function(c){return c.name})),l=[n.model.getCategories()];C(t.series,function(c){var p=c.getRawData();l.push(c.getRawData().mapArray(p.mapDimension(o),function(d){return d}))});for(var u=[s.join(po)],f=0;f=0)return!0}var Zd=new RegExp("["+po+"]+","g");function k6(r){for(var e=r.split(/\n+/g),t=eh(e.shift()).split(Zd),a=[],n=G(t,function(l){return{name:l,data:[]}}),i=0;i=0;i--){var o=t[i];if(o[n])break}if(i<0){var s=r.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(s){var l=s.getPercentRange();t[0][n]={dataZoomId:n,start:l[0],end:l[1]}}}}),t.push(e)}function G6(r){var e=vm(r),t=e[e.length-1];e.length>1&&e.pop();var a={};return LI(t,function(n,i){for(var o=e.length-1;o>=0;o--)if(n=e[o][i],n){a[i]=n;break}}),a}function F6(r){PI(r).snapshots=null}function H6(r){return vm(r).length}function vm(r){var e=PI(r);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var W6=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.onclick=function(t,a){F6(t),a.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){var a={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocaleModel().get(["toolbox","restore","title"])};return a},e}(nr);Qr({type:"restore",event:"restore",update:"prepareAndUpdate"},function(r,e){e.resetOption("recreate")});var U6=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],cm=function(){function r(e,t,a){var n=this;this._targetInfoList=[];var i=ob(t,e);C(Y6,function(o,s){(!a||!a.include||vt(a.include,s)>=0)&&o(i,n._targetInfoList)})}return r.prototype.setOutputRanges=function(e,t){return this.matchOutputRanges(e,t,function(a,n,i){if((a.coordRanges||(a.coordRanges=[])).push(n),!a.coordRange){a.coordRange=n;var o=np[a.brushType](0,i,n);a.__rangeOffset={offset:fb[a.brushType](o.values,a.range,[1,1]),xyMinMax:o.xyMinMax}}}),e},r.prototype.matchOutputRanges=function(e,t,a){C(e,function(n){var i=this.findTargetInfo(n,t);i&&i!==!0&&C(i.coordSyses,function(o){var s=np[n.brushType](1,o,n.range,!0);a(n,s.values,o,t)})},this)},r.prototype.setInputRanges=function(e,t){C(e,function(a){var n=this.findTargetInfo(a,t);if(a.range=a.range||[],n&&n!==!0){a.panelId=n.panelId;var i=np[a.brushType](0,n.coordSys,a.coordRange),o=a.__rangeOffset;a.range=o?fb[a.brushType](i.values,o.offset,X6(i.xyMinMax,o.xyMinMax)):i.values}},this)},r.prototype.makePanelOpts=function(e,t){return G(this._targetInfoList,function(a){var n=a.getPanelRect();return{panelId:a.panelId,defaultBrushType:t?t(a):null,clipPath:zM(n),isTargetByCursor:FM(n,e,a.coordSysModel),getLinearBrushOtherExtent:GM(n)}})},r.prototype.controlSeries=function(e,t,a){var n=this.findTargetInfo(e,a);return n===!0||n&&vt(n.coordSyses,t.coordinateSystem)>=0},r.prototype.findTargetInfo=function(e,t){for(var a=this._targetInfoList,n=ob(t,e),i=0;ir[1]&&r.reverse(),r}function ob(r,e){return Ps(r,e,{includeMainTypes:U6})}var Y6={grid:function(r,e){var t=r.xAxisModels,a=r.yAxisModels,n=r.gridModels,i=Z(),o={},s={};!t&&!a&&!n||(C(t,function(l){var u=l.axis.grid.model;i.set(u.id,u),o[u.id]=!0}),C(a,function(l){var u=l.axis.grid.model;i.set(u.id,u),s[u.id]=!0}),C(n,function(l){i.set(l.id,l),o[l.id]=!0,s[l.id]=!0}),i.each(function(l){var u=l.coordinateSystem,f=[];C(u.getCartesians(),function(h,v){(vt(t,h.getAxis("x").model)>=0||vt(a,h.getAxis("y").model)>=0)&&f.push(h)}),e.push({panelId:"grid--"+l.id,gridModel:l,coordSysModel:l,coordSys:f[0],coordSyses:f,getPanelRect:lb.grid,xAxisDeclared:o[l.id],yAxisDeclared:s[l.id]})}))},geo:function(r,e){C(r.geoModels,function(t){var a=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:a,coordSyses:[a],getPanelRect:lb.geo})})}},sb=[function(r,e){var t=r.xAxisModel,a=r.yAxisModel,n=r.gridModel;return!n&&t&&(n=t.axis.grid.model),!n&&a&&(n=a.axis.grid.model),n&&n===e.gridModel},function(r,e){var t=r.geoModel;return t&&t===e.geoModel}],lb={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var r=this.coordSys,e=r.getBoundingRect().clone();return e.applyTransform(Xa(r)),e}},np={lineX:it(ub,0),lineY:it(ub,1),rect:function(r,e,t,a){var n=r?e.pointToData([t[0][0],t[1][0]],a):e.dataToPoint([t[0][0],t[1][0]],a),i=r?e.pointToData([t[0][1],t[1][1]],a):e.dataToPoint([t[0][1],t[1][1]],a),o=[qd([n[0],i[0]]),qd([n[1],i[1]])];return{values:o,xyMinMax:o}},polygon:function(r,e,t,a){var n=[[1/0,-1/0],[1/0,-1/0]],i=G(t,function(o){var s=r?e.pointToData(o,a):e.dataToPoint(o,a);return n[0][0]=Math.min(n[0][0],s[0]),n[1][0]=Math.min(n[1][0],s[1]),n[0][1]=Math.max(n[0][1],s[0]),n[1][1]=Math.max(n[1][1],s[1]),s});return{values:i,xyMinMax:n}}};function ub(r,e,t,a){var n=t.getAxis(["x","y"][r]),i=qd(G([0,1],function(s){return e?n.coordToData(n.toLocalCoord(a[s]),!0):n.toGlobalCoord(n.dataToCoord(a[s]))})),o=[];return o[r]=i,o[1-r]=[NaN,NaN],{values:i,xyMinMax:o}}var fb={lineX:it(hb,0),lineY:it(hb,1),rect:function(r,e,t){return[[r[0][0]-t[0]*e[0][0],r[0][1]-t[0]*e[0][1]],[r[1][0]-t[1]*e[1][0],r[1][1]-t[1]*e[1][1]]]},polygon:function(r,e,t){return G(r,function(a,n){return[a[0]-t[0]*e[n][0],a[1]-t[1]*e[n][1]]})}};function hb(r,e,t,a){return[e[0]-a[r]*t[0],e[1]-a[r]*t[1]]}function X6(r,e){var t=vb(r),a=vb(e),n=[t[0]/a[0],t[1]/a[1]];return isNaN(n[0])&&(n[0]=1),isNaN(n[1])&&(n[1]=1),n}function vb(r){return r?[r[0][1]-r[0][0],r[1][1]-r[1][0]]:[NaN,NaN]}var Kd=C,$6=tP("toolbox-dataZoom_"),Z6=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n,i){this._brushController||(this._brushController=new Hy(n.getZr()),this._brushController.on("brush",X(this._onBrush,this)).mount()),j6(t,a,this,i,n),K6(t,a)},e.prototype.onclick=function(t,a,n){q6[n].call(this)},e.prototype.remove=function(t,a){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,a){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var a=t.areas;if(!t.isEnd||!a.length)return;var n={},i=this.ecModel;this._brushController.updateCovers([]);var o=new cm(pm(this.model),i,{include:["grid"]});o.matchOutputRanges(a,i,function(u,f,h){if(h.type==="cartesian2d"){var v=u.brushType;v==="rect"?(s("x",h,f[0]),s("y",h,f[1])):s({lineX:"x",lineY:"y"}[v],h,f)}}),z6(i,n),this._dispatchZoomAction(n);function s(u,f,h){var v=f.getAxis(u),c=v.model,p=l(u,c,i),d=p.findRepresentativeAxisProxy(c).getMinMaxSpan();(d.minValueSpan!=null||d.maxValueSpan!=null)&&(h=_i(0,h.slice(),v.scale.getExtent(),0,d.minValueSpan,d.maxValueSpan)),p&&(n[p.id]={dataZoomId:p.id,startValue:h[0],endValue:h[1]})}function l(u,f,h){var v;return h.eachComponent({mainType:"dataZoom",subType:"select"},function(c){var p=c.getAxisModel(u,f.componentIndex);p&&(v=c)}),v}},e.prototype._dispatchZoomAction=function(t){var a=[];Kd(t,function(n,i){a.push(et(n))}),a.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:a})},e.getDefaultOption=function(t){var a={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return a},e}(nr),q6={zoom:function(){var r=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:r})},back:function(){this._dispatchZoomAction(G6(this.ecModel))}};function pm(r){var e={xAxisIndex:r.get("xAxisIndex",!0),yAxisIndex:r.get("yAxisIndex",!0),xAxisId:r.get("xAxisId",!0),yAxisId:r.get("yAxisId",!0)};return e.xAxisIndex==null&&e.xAxisId==null&&(e.xAxisIndex="all"),e.yAxisIndex==null&&e.yAxisId==null&&(e.yAxisIndex="all"),e}function K6(r,e){r.setIconStatus("back",H6(e)>1?"emphasis":"normal")}function j6(r,e,t,a,n){var i=t._isZoomActive;a&&a.type==="takeGlobalCursor"&&(i=a.key==="dataZoomSelect"?a.dataZoomSelectActive:!1),t._isZoomActive=i,r.setIconStatus("zoom",i?"emphasis":"normal");var o=new cm(pm(r),e,{include:["grid"]}),s=o.makePanelOpts(n,function(l){return l.xAxisDeclared&&!l.yAxisDeclared?"lineX":!l.xAxisDeclared&&l.yAxisDeclared?"lineY":"rect"});t._brushController.setPanels(s).enableBrush(i&&s.length?{brushType:"auto",brushStyle:r.getModel("brushStyle").getItemStyle()}:!1)}bE("dataZoom",function(r){var e=r.getComponent("toolbox",0),t=["feature","dataZoom"];if(!e||e.get(t)==null)return;var a=e.getModel(t),n=[],i=pm(a),o=Ps(r,i);Kd(o.xAxisModels,function(l){return s(l,"xAxis","xAxisIndex")}),Kd(o.yAxisModels,function(l){return s(l,"yAxis","yAxisIndex")});function s(l,u,f){var h=l.componentIndex,v={type:"select",$fromToolbox:!0,filterMode:a.get("filterMode",!0)||"filter",id:$6+u+h};v[f]=h,n.push(v)}return n});function Q6(r){r.registerComponentModel(b6),r.registerComponentView(T6),Yi("saveAsImage",C6),Yi("magicType",M6),Yi("dataView",B6),Yi("dataZoom",Z6),Yi("restore",W6),gt(x6)}var J6=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(mt);function RI(r){var e=r.get("confine");return e!=null?!!e:r.get("renderMode")==="richText"}function EI(r){if(_t.domSupported){for(var e=document.documentElement.style,t=0,a=r.length;t-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=i==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=i==="top"?225:45)+"deg)");var f=u*Math.PI/180,h=o+n,v=h*Math.abs(Math.cos(f))+h*Math.abs(Math.sin(f)),c=Math.round(((v-Math.SQRT2*n)/2+Math.SQRT2*n-(v-h)/2)*100)/100;s+=";"+i+":-"+c+"px";var p=e+" solid "+n+"px;",d=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+p,"border-right:"+p,"background-color:"+a+";"];return'
    '}function oU(r,e){var t="cubic-bezier(0.23,1,0.32,1)",a=" "+r/2+"s "+t,n="opacity"+a+",visibility"+a;return e||(a=" "+r+"s "+t,n+=_t.transformSupported?","+dm+a:",left"+a+",top"+a),rU+":"+n}function cb(r,e,t){var a=r.toFixed(0)+"px",n=e.toFixed(0)+"px";if(!_t.transformSupported)return t?"top:"+n+";left:"+a+";":[["top",n],["left",a]];var i=_t.transform3dSupported,o="translate"+(i?"3d":"")+"("+a+","+n+(i?",0":"")+")";return t?"top:0;left:0;"+dm+":"+o+";":[["top",0],["left",0],[kI,o]]}function sU(r){var e=[],t=r.get("fontSize"),a=r.getTextColor();a&&e.push("color:"+a),e.push("font:"+r.getFont()),t&&e.push("line-height:"+Math.round(t*3/2)+"px");var n=r.get("textShadowColor"),i=r.get("textShadowBlur")||0,o=r.get("textShadowOffsetX")||0,s=r.get("textShadowOffsetY")||0;return n&&i&&e.push("text-shadow:"+o+"px "+s+"px "+i+"px "+n),C(["decoration","align"],function(l){var u=r.get(l);u&&e.push("text-"+l+":"+u)}),e.join(";")}function lU(r,e,t){var a=[],n=r.get("transitionDuration"),i=r.get("backgroundColor"),o=r.get("shadowBlur"),s=r.get("shadowColor"),l=r.get("shadowOffsetX"),u=r.get("shadowOffsetY"),f=r.getModel("textStyle"),h=$A(r,"html"),v=l+"px "+u+"px "+o+"px "+s;return a.push("box-shadow:"+v),e&&n&&a.push(oU(n,t)),i&&a.push("background-color:"+i),C(["width","color","radius"],function(c){var p="border-"+c,d=Xg(p),g=r.get(d);g!=null&&a.push(p+":"+g+(c==="color"?"":"px"))}),a.push(sU(f)),h!=null&&a.push("padding:"+pi(h).join("px ")+"px"),a.join(";")+";"}function pb(r,e,t,a,n){var i=e&&e.painter;if(t){var o=i&&i.getViewportRoot();o&&PL(r,o,t,a,n)}else{r[0]=a,r[1]=n;var s=i&&i.getViewportRootOffset();s&&(r[0]+=s.offsetLeft,r[1]+=s.offsetTop)}r[2]=r[0]/e.getWidth(),r[3]=r[1]/e.getHeight()}var uU=function(){function r(e,t){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,_t.wxa)return null;var a=document.createElement("div");a.domBelongToZr=!0,this.el=a;var n=this._zr=e.getZr(),i=t.appendTo,o=i&&(U(i)?document.querySelector(i):ri(i)?i:K(i)&&i(e.getDom()));pb(this._styleCoord,n,o,e.getWidth()/2,e.getHeight()/2),(o||e.getDom()).appendChild(a),this._api=e,this._container=o;var s=this;a.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},a.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=n.handler,f=n.painter.getViewportRoot();Je(f,l,!0),u.dispatch("mousemove",l)}},a.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return r.prototype.update=function(e){if(!this._container){var t=this._api.getDom(),a=eU(t,"position"),n=t.style;n.position!=="absolute"&&a!=="absolute"&&(n.position="relative")}var i=e.get("alwaysShowContent");i&&this._moveIfResized(),this._alwaysShowContent=i,this.el.className=e.get("className")||""},r.prototype.show=function(e,t){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var a=this.el,n=a.style,i=this._styleCoord;a.innerHTML?n.cssText=aU+lU(e,!this._firstShow,this._longHide)+cb(i[0],i[1],!0)+("border-color:"+si(t)+";")+(e.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):n.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},r.prototype.setContent=function(e,t,a,n,i){var o=this.el;if(e==null){o.innerHTML="";return}var s="";if(U(i)&&a.get("trigger")==="item"&&!RI(a)&&(s=iU(a,n,i)),U(e))o.innerHTML=e+s;else if(e){o.innerHTML="",z(e)||(e=[e]);for(var l=0;l=0?this._tryShow(i,o):n==="leave"&&this._hide(o))},this))},e.prototype._keepShow=function(){var t=this._tooltipModel,a=this._ecModel,n=this._api,i=t.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&i!=="none"&&i!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!n.isDisposed()&&o.manuallyShowTip(t,a,n,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},e.prototype.manuallyShowTip=function(t,a,n,i){if(!(i.from===this.uid||_t.node||!n.getDom())){var o=yb(i,n);this._ticket="";var s=i.dataByCoordSys,l=gU(i,a,n);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:i.position,positionDefault:"bottom"},o)}else if(i.tooltip&&i.x!=null&&i.y!=null){var f=hU;f.x=i.x,f.y=i.y,f.update(),nt(f).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:f},o)}else if(s)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:s,tooltipOption:i.tooltipOption},o);else if(i.seriesIndex!=null){if(this._manuallyAxisShowTip(t,a,n,i))return;var h=SI(i,a),v=h.point[0],c=h.point[1];v!=null&&c!=null&&this._tryShow({offsetX:v,offsetY:c,target:h.el,position:i.position,positionDefault:"bottom"},o)}else i.x!=null&&i.y!=null&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},o))}},e.prototype.manuallyHideTip=function(t,a,n,i){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(yb(i,n))},e.prototype._manuallyAxisShowTip=function(t,a,n,i){var o=i.seriesIndex,s=i.dataIndex,l=a.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=a.getSeriesByIndex(o);if(u){var f=u.getData(),h=ss([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(h.get("trigger")==="axis")return n.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:i.position}),!0}}},e.prototype._tryShow=function(t,a){var n=t.target,i=this._tooltipModel;if(i){this._lastX=t.offsetX,this._lastY=t.offsetY;var o=t.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,t);else if(n){var s=nt(n);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null;var l,u;Yn(n,function(f){if(nt(f).dataIndex!=null)return l=f,!0;if(nt(f).tooltipConfig!=null)return u=f,!0},!0),l?this._showSeriesItemTooltip(t,l,a):u?this._showComponentItemTooltip(t,u,a):this._hide(a)}else this._lastDataByCoordSys=null,this._hide(a)}},e.prototype._showOrMove=function(t,a){var n=t.get("showDelay");a=X(a,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(a,n):a()},e.prototype._showAxisTooltip=function(t,a){var n=this._ecModel,i=this._tooltipModel,o=[a.offsetX,a.offsetY],s=ss([a.tooltipOption],i),l=this._renderMode,u=[],f=ie("section",{blocks:[],noHeader:!0}),h=[],v=new Wv;C(t,function(m){C(m.dataByAxis,function(_){var S=n.getComponent(_.axisDim+"Axis",_.axisIndex),b=_.value;if(!(!S||b==null)){var x=gI(b,S.axis,n,_.seriesDataIndices,_.valueLabelOpt),w=ie("section",{header:x,noHeader:!or(x),sortBlocks:!0,blocks:[]});f.blocks.push(w),C(_.seriesDataIndices,function(T){var A=n.getSeriesByIndex(T.seriesIndex),D=T.dataIndexInside,M=A.getDataParams(D);if(!(M.dataIndex<0)){M.axisDim=_.axisDim,M.axisIndex=_.axisIndex,M.axisType=_.axisType,M.axisId=_.axisId,M.axisValue=gy(S.axis,{value:b}),M.axisValueLabel=x,M.marker=v.makeTooltipMarker("item",si(M.color),l);var I=a_(A.formatTooltip(D,!0,null)),L=I.frag;if(L){var P=ss([A],i).get("valueFormatter");w.blocks.push(P?V({valueFormatter:P},L):L)}I.text&&h.push(I.text),u.push(M)}})}})}),f.blocks.reverse(),h.reverse();var c=a.position,p=s.get("order"),d=u_(f,v,l,p,n.get("useUTC"),s.get("textStyle"));d&&h.unshift(d);var g=l==="richText"?` + +`:"
    ",y=h.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t,u)?this._updatePosition(s,c,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,y,u,Math.random()+"",o[0],o[1],c,null,v)})},e.prototype._showSeriesItemTooltip=function(t,a,n){var i=this._ecModel,o=nt(a),s=o.seriesIndex,l=i.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,h=o.dataType,v=u.getData(h),c=this._renderMode,p=t.positionDefault,d=ss([v.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),g=d.get("trigger");if(!(g!=null&&g!=="item")){var y=u.getDataParams(f,h),m=new Wv;y.marker=m.makeTooltipMarker("item",si(y.color),c);var _=a_(u.formatTooltip(f,!1,h)),S=d.get("order"),b=d.get("valueFormatter"),x=_.frag,w=x?u_(b?V({valueFormatter:b},x):x,m,c,S,i.get("useUTC"),d.get("textStyle")):_.text,T="item_"+u.name+"_"+f;this._showOrMove(d,function(){this._showTooltipContent(d,w,y,T,t.offsetX,t.offsetY,t.position,t.target,m)}),n({type:"showTip",dataIndexInside:f,dataIndex:v.getRawIndex(f),seriesIndex:s,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,a,n){var i=this._renderMode==="html",o=nt(a),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(U(l)){var f=l;l={content:f,formatter:f},u=!0}u&&i&&l.content&&(l=et(l),l.content=Me(l.content));var h=[l],v=this._ecModel.getComponent(o.componentMainType,o.componentIndex);v&&h.push(v),h.push({formatter:l.content});var c=t.positionDefault,p=ss(h,this._tooltipModel,c?{position:c}:null),d=p.get("content"),g=Math.random()+"",y=new Wv;this._showOrMove(p,function(){var m=et(p.get("formatterParams")||{});this._showTooltipContent(p,d,m,g,t.offsetX,t.offsetY,t.position,a,y)}),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,a,n,i,o,s,l,u,f){if(this._ticket="",!(!t.get("showContent")||!t.get("show"))){var h=this._tooltipContent;h.setEnterable(t.get("enterable"));var v=t.get("formatter");l=l||t.get("position");var c=a,p=this._getNearestPoint([o,s],n,t.get("trigger"),t.get("borderColor")),d=p.color;if(v)if(U(v)){var g=t.ecModel.get("useUTC"),y=z(n)?n[0]:n,m=y&&y.axisType&&y.axisType.indexOf("time")>=0;c=v,m&&(c=Il(y.axisValue,c,g)),c=$g(c,n,!0)}else if(K(v)){var _=X(function(S,b){S===this._ticket&&(h.setContent(b,f,t,d,l),this._updatePosition(t,l,o,s,h,n,u))},this);this._ticket=i,c=v(n,i,_)}else c=v;h.setContent(c,f,t,d,l),h.show(t,d),this._updatePosition(t,l,o,s,h,n,u)}},e.prototype._getNearestPoint=function(t,a,n,i){if(n==="axis"||z(a))return{color:i||(this._renderMode==="html"?"#fff":"none")};if(!z(a))return{color:i||a.color||a.borderColor}},e.prototype._updatePosition=function(t,a,n,i,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();a=a||t.get("position");var h=o.getSize(),v=t.get("align"),c=t.get("verticalAlign"),p=l&&l.getBoundingRect().clone();if(l&&p.applyTransform(l.transform),K(a)&&(a=a([n,i],s,o.el,p,{viewSize:[u,f],contentSize:h.slice()})),z(a))n=W(a[0],u),i=W(a[1],f);else if(tt(a)){var d=a;d.width=h[0],d.height=h[1];var g=jt(d,{width:u,height:f});n=g.x,i=g.y,v=null,c=null}else if(U(a)&&l){var y=dU(a,p,h,t.get("borderWidth"));n=y[0],i=y[1]}else{var y=cU(n,i,o,u,f,v?null:20,c?null:20);n=y[0],i=y[1]}if(v&&(n-=mb(v)?h[0]/2:v==="right"?h[0]:0),c&&(i-=mb(c)?h[1]/2:c==="bottom"?h[1]:0),RI(t)){var y=pU(n,i,o,u,f);n=y[0],i=y[1]}o.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t,a){var n=this._lastDataByCoordSys,i=this._cbParamsList,o=!!n&&n.length===t.length;return o&&C(n,function(s,l){var u=s.dataByAxis||[],f=t[l]||{},h=f.dataByAxis||[];o=o&&u.length===h.length,o&&C(u,function(v,c){var p=h[c]||{},d=v.seriesDataIndices||[],g=p.seriesDataIndices||[];o=o&&v.value===p.value&&v.axisType===p.axisType&&v.axisId===p.axisId&&d.length===g.length,o&&C(d,function(y,m){var _=g[m];o=o&&y.seriesIndex===_.seriesIndex&&y.dataIndex===_.dataIndex}),i&&C(v.seriesDataIndices,function(y){var m=y.seriesIndex,_=a[m],S=i[m];_&&S&&S.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=t,this._cbParamsList=a,!!o},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,a){_t.node||!a.getDom()||(rl(this,"_updatePosition"),this._tooltipContent.dispose(),Yd("itemTooltip",a))},e.type="tooltip",e}(zt);function ss(r,e,t){var a=e.ecModel,n;t?(n=new Mt(t,a,a),n=new Mt(e.option,n,a)):n=e;for(var i=r.length-1;i>=0;i--){var o=r[i];o&&(o instanceof Mt&&(o=o.get("tooltip",!0)),U(o)&&(o={formatter:o}),o&&(n=new Mt(o,n,a)))}return n}function yb(r,e){return r.dispatchAction||X(e.dispatchAction,e)}function cU(r,e,t,a,n,i,o){var s=t.getSize(),l=s[0],u=s[1];return i!=null&&(r+l+i+2>a?r-=l+i:r+=i),o!=null&&(e+u+o>n?e-=u+o:e+=o),[r,e]}function pU(r,e,t,a,n){var i=t.getSize(),o=i[0],s=i[1];return r=Math.min(r+o,a)-o,e=Math.min(e+s,n)-s,r=Math.max(r,0),e=Math.max(e,0),[r,e]}function dU(r,e,t,a){var n=t[0],i=t[1],o=Math.ceil(Math.SQRT2*a)+8,s=0,l=0,u=e.width,f=e.height;switch(r){case"inside":s=e.x+u/2-n/2,l=e.y+f/2-i/2;break;case"top":s=e.x+u/2-n/2,l=e.y-i-o;break;case"bottom":s=e.x+u/2-n/2,l=e.y+f+o;break;case"left":s=e.x-n-o,l=e.y+f/2-i/2;break;case"right":s=e.x+u+o,l=e.y+f/2-i/2}return[s,l]}function mb(r){return r==="center"||r==="middle"}function gU(r,e,t){var a=Tg(r).queryOptionMap,n=a.keys()[0];if(!(!n||n==="series")){var i=wl(e,n,a.get(n),{useDefault:!1,enableAll:!1,enableNone:!1}),o=i.models[0];if(o){var s=t.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=nt(u).tooltipConfig;if(f&&f.name===r.name)return l=u,!0}),l)return{componentMainType:n,componentIndex:o.componentIndex,el:l}}}}function yU(r){gt(Gl),r.registerComponentModel(J6),r.registerComponentView(vU),r.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Yt),r.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Yt)}var mU=["rect","polygon","keep","clear"];function _U(r,e){var t=Et(r?r.brush:[]);if(t.length){var a=[];C(t,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(a=a.concat(u))});var n=r&&r.toolbox;z(n)&&(n=n[0]),n||(n={feature:{}},r.toolbox=[n]);var i=n.feature||(n.feature={}),o=i.brush||(i.brush={}),s=o.type||(o.type=[]);s.push.apply(s,a),SU(s),e&&!s.length&&s.push.apply(s,mU)}}function SU(r){var e={};C(r,function(t){e[t]=1}),r.length=0,C(e,function(t,a){r.push(a)})}var _b=C;function Sb(r){if(r){for(var e in r)if(r.hasOwnProperty(e))return!0}}function jd(r,e,t){var a={};return _b(e,function(i){var o=a[i]=n();_b(r[i],function(s,l){if(ae.isValidType(l)){var u={type:l,visual:s};t&&t(u,i),o[l]=new ae(u),l==="opacity"&&(u=et(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new ae(u))}})}),a;function n(){var i=function(){};i.prototype.__hidden=i.prototype;var o=new i;return o}}function NI(r,e,t){var a;C(t,function(n){e.hasOwnProperty(n)&&Sb(e[n])&&(a=!0)}),a&&C(t,function(n){e.hasOwnProperty(n)&&Sb(e[n])?r[n]=et(e[n]):delete r[n]})}function xU(r,e,t,a,n,i){var o={};C(r,function(h){var v=ae.prepareVisualTypes(e[h]);o[h]=v});var s;function l(h){return ny(t,s,h)}function u(h,v){aC(t,s,h,v)}t.each(f);function f(h,v){s=h;var c=t.getRawDataItem(s);if(!(c&&c.visualMap===!1))for(var p=a.call(n,h),d=e[p],g=o[p],y=0,m=g.length;ye[0][1]&&(e[0][1]=i[0]),i[1]e[1][1]&&(e[1][1]=i[1])}return e&&Ab(e)}};function Ab(r){return new ht(r[0][0],r[1][0],r[0][1]-r[0][0],r[1][1]-r[1][0])}var IU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){this.ecModel=t,this.api=a,this.model,(this._brushController=new Hy(a.getZr())).on("brush",X(this._onBrush,this)).mount()},e.prototype.render=function(t,a,n,i){this.model=t,this._updateController(t,a,n,i)},e.prototype.updateTransform=function(t,a,n,i){BI(a),this._updateController(t,a,n,i)},e.prototype.updateVisual=function(t,a,n,i){this.updateTransform(t,a,n,i)},e.prototype.updateView=function(t,a,n,i){this._updateController(t,a,n,i)},e.prototype._updateController=function(t,a,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var a=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:a,areas:et(n),$from:a}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:a,areas:et(n),$from:a})},e.type="brush",e}(zt),LU="#ddd",PU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.areas=[],t.brushOption={},t}return e.prototype.optionUpdated=function(t,a){var n=this.option;!a&&NI(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:LU},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=G(t,function(a){return Cb(this.option,a)},this))},e.prototype.setBrushOption=function(t){this.brushOption=Cb(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(mt);function Cb(r,e){return st({brushType:r.brushType,brushMode:r.brushMode,transformable:r.transformable,brushStyle:new Mt(r.brushStyle).getItemStyle(),removeOnClick:r.removeOnClick,z:r.z},e,!0)}var RU=["rect","polygon","lineX","lineY","keep","clear"],EU=function(r){k(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n){var i,o,s;a.eachComponent({mainType:"brush"},function(l){i=l.brushType,o=l.brushOption.brushMode||"single",s=s||!!l.areas.length}),this._brushType=i,this._brushMode=o,C(t.get("type",!0),function(l){t.setIconStatus(l,(l==="keep"?o==="multiple":l==="clear"?s:l===i)?"emphasis":"normal")})},e.prototype.updateView=function(t,a,n){this.render(t,a,n)},e.prototype.getIcons=function(){var t=this.model,a=t.get("icon",!0),n={};return C(t.get("type",!0),function(i){a[i]&&(n[i]=a[i])}),n},e.prototype.onclick=function(t,a,n){var i=this._brushType,o=this._brushMode;n==="clear"?(a.dispatchAction({type:"axisAreaSelect",intervals:[]}),a.dispatchAction({type:"brush",command:"clear",areas:[]})):a.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:n==="keep"?i:i===n?!1:n,brushMode:n==="keep"?o==="multiple"?"single":"multiple":o}})},e.getDefaultOption=function(t){var a={show:!0,type:RU.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])};return a},e}(nr);function kU(r){r.registerComponentView(IU),r.registerComponentModel(PU),r.registerPreprocessor(_U),r.registerVisual(r.PRIORITY.VISUAL.BRUSH,TU),r.registerAction({type:"brush",event:"brush",update:"updateVisual"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(a){a.setAreas(e.areas)})}),r.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},Yt),r.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},Yt),Yi("brush",EU)}var OU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode={type:"box",ignoreSize:!0},t}return e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(mt),NU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){if(this.group.removeAll(),!!t.get("show")){var i=this.group,o=t.getModel("textStyle"),s=t.getModel("subtextStyle"),l=t.get("textAlign"),u=ot(t.get("textBaseline"),t.get("textVerticalAlign")),f=new bt({style:Nt(o,{text:t.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),h=f.getBoundingRect(),v=t.get("subtext"),c=new bt({style:Nt(s,{text:v,fill:s.getTextColor(),y:h.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),g=t.get("triggerEvent",!0);f.silent=!p&&!g,c.silent=!d&&!g,p&&f.on("click",function(){If(p,"_"+t.get("target"))}),d&&c.on("click",function(){If(d,"_"+t.get("subtarget"))}),nt(f).eventData=nt(c).eventData=g?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(f),v&&i.add(c);var y=i.getBoundingRect(),m=t.getBoxLayoutParams();m.width=y.width,m.height=y.height;var _=jt(m,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));l||(l=t.get("left")||t.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=t.get("top")||t.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),i.x=_.x,i.y=_.y,i.markRedraw();var S={align:l,verticalAlign:u};f.setStyle(S),c.setStyle(S),y=i.getBoundingRect();var b=_.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var w=new wt({shape:{x:y.x-b[3],y:y.y-b[0],width:y.width+b[1]+b[3],height:y.height+b[0]+b[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(w)}},e.type="title",e}(zt);function BU(r){r.registerComponentModel(OU),r.registerComponentView(NU)}var Db=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode="box",t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){t==null&&(t=this.option.currentIndex);var a=this._data.count();this.option.loop?t=(t%a+a)%a:(t>=a&&(t=a-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t=this.option,a=t.data||[],n=t.axisType,i=this._names=[],o;n==="category"?(o=[],C(a,function(u,f){var h=Qt(yo(u),""),v;tt(u)?(v=et(u),v.value=f):v=f,o.push(v),i.push(h)})):o=a;var s={category:"ordinal",time:"time",value:"number"}[n]||"number",l=this._data=new Le([{name:"value",type:s}],this);l.initData(o,i)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if(this.get("axisType")==="category")return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(mt),VI=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline.slider",e.defaultOption=on(Db.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(Db);Xt(VI,Nh.prototype);var VU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline",e}(zt),zU=function(r){k(e,r);function e(t,a,n,i){var o=r.call(this,t,a,n)||this;return o.type=i||"value",o}return e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return this.model.get("orient")==="horizontal"},e}(Lr),op=Math.PI,Mb=Tt(),GU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){this.api=a},e.prototype.render=function(t,a,n){if(this.model=t,this.api=n,this.ecModel=a,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),o=this._createGroup("_mainGroup"),s=this._createGroup("_labelGroup"),l=this._axis=this._createAxis(i,t);t.formatTooltip=function(u){var f=l.scale.getLabel({value:u});return ie("nameValue",{noName:!0,value:f})},C(["AxisLine","AxisTick","Control","CurrentPointer"],function(u){this["_render"+u](i,o,l,t)},this),this._renderAxisLabel(i,s,l,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,a){var n=t.get(["label","position"]),i=t.get("orient"),o=HU(t,a),s;n==null||n==="auto"?s=i==="horizontal"?o.y+o.height/2=0||s==="+"?"left":"right"},u={horizontal:s>=0||s==="+"?"top":"bottom",vertical:"middle"},f={horizontal:0,vertical:op/2},h=i==="vertical"?o.height:o.width,v=t.getModel("controlStyle"),c=v.get("show",!0),p=c?v.get("itemSize"):0,d=c?v.get("itemGap"):0,g=p+d,y=t.get(["label","rotate"])||0;y=y*op/180;var m,_,S,b=v.get("position",!0),x=c&&v.get("showPlayBtn",!0),w=c&&v.get("showPrevBtn",!0),T=c&&v.get("showNextBtn",!0),A=0,D=h;b==="left"||b==="bottom"?(x&&(m=[0,0],A+=g),w&&(_=[A,0],A+=g),T&&(S=[D-p,0],D-=g)):(x&&(m=[D-p,0],D-=g),w&&(_=[0,0],A+=g),T&&(S=[D-p,0],D-=g));var M=[A,D];return t.get("inverse")&&M.reverse(),{viewRect:o,mainLength:h,orient:i,rotation:f[i],labelRotation:y,labelPosOpt:s,labelAlign:t.get(["label","align"])||l[i],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||u[i],playPosition:m,prevBtnPosition:_,nextBtnPosition:S,axisExtent:M,controlSize:p,controlGap:d}},e.prototype._position=function(t,a){var n=this._mainGroup,i=this._labelGroup,o=t.viewRect;if(t.orient==="vertical"){var s=Ge(),l=o.x,u=o.y+o.height;Dr(s,s,[-l,-u]),an(s,s,-op/2),Dr(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var f=m(o),h=m(n.getBoundingRect()),v=m(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=f[0][0];var d=t.labelPosOpt;if(d==null||U(d)){var g=d==="+"?0:1;_(c,h,f,1,g),_(p,v,f,1,1-g)}else{var g=d>=0?0:1;_(c,h,f,1,g),p[1]=c[1]+d}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,y(n),y(i);function y(S){S.originX=f[0][0]-S.x,S.originY=f[1][0]-S.y}function m(S){return[[S.x,S.x+S.width],[S.y,S.y+S.height]]}function _(S,b,x,w,T){S[w]+=x[w][T]-b[w][T]}},e.prototype._createAxis=function(t,a){var n=a.getData(),i=a.get("axisType"),o=FU(a,i);o.getTicks=function(){return n.mapArray(["value"],function(u){return{value:u}})};var s=n.getDataExtent("value");o.setExtent(s[0],s[1]),o.calcNiceTicks();var l=new zU("value",o,t.axisExtent,i);return l.model=a,l},e.prototype._createGroup=function(t){var a=this[t]=new at;return this.group.add(a),a},e.prototype._renderAxisLine=function(t,a,n,i){var o=n.getExtent();if(i.get(["lineStyle","show"])){var s=new Jt({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:V({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});a.add(s);var l=this._progressLine=new Jt({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:Q({lineCap:"round",lineWidth:s.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});a.add(l)}},e.prototype._renderAxisTick=function(t,a,n,i){var o=this,s=i.getData(),l=n.scale.getTicks();this._tickSymbols=[],C(l,function(u){var f=n.dataToCoord(u.value),h=s.getItemModel(u.value),v=h.getModel("itemStyle"),c=h.getModel(["emphasis","itemStyle"]),p=h.getModel(["progress","itemStyle"]),d={x:f,y:0,onclick:X(o._changeTimeline,o,u.value)},g=Ib(h,v,a,d);g.ensureState("emphasis").style=c.getItemStyle(),g.ensureState("progress").style=p.getItemStyle(),Ya(g);var y=nt(g);h.get("tooltip")?(y.dataIndex=u.value,y.dataModel=i):y.dataIndex=y.dataModel=null,o._tickSymbols.push(g)})},e.prototype._renderAxisLabel=function(t,a,n,i){var o=this,s=n.getLabelModel();if(s.get("show")){var l=i.getData(),u=n.getViewLabels();this._tickLabels=[],C(u,function(f){var h=f.tickValue,v=l.getItemModel(h),c=v.getModel("label"),p=v.getModel(["emphasis","label"]),d=v.getModel(["progress","label"]),g=n.dataToCoord(f.tickValue),y=new bt({x:g,y:0,rotation:t.labelRotation-t.rotation,onclick:X(o._changeTimeline,o,h),silent:!1,style:Nt(c,{text:f.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});y.ensureState("emphasis").style=Nt(p),y.ensureState("progress").style=Nt(d),a.add(y),Ya(y),Mb(y).dataIndex=h,o._tickLabels.push(y)})}},e.prototype._renderControl=function(t,a,n,i){var o=t.controlSize,s=t.rotation,l=i.getModel("controlStyle").getItemStyle(),u=i.getModel(["emphasis","controlStyle"]).getItemStyle(),f=i.getPlayState(),h=i.get("inverse",!0);v(t.nextBtnPosition,"next",X(this._changeTimeline,this,h?"-":"+")),v(t.prevBtnPosition,"prev",X(this._changeTimeline,this,h?"+":"-")),v(t.playPosition,f?"stop":"play",X(this._handlePlayClick,this,!f),!0);function v(c,p,d,g){if(c){var y=Mr(ot(i.get(["controlStyle",p+"BtnSize"]),o),o),m=[0,-y/2,y,y],_=WU(i,p+"Icon",m,{x:c[0],y:c[1],originX:o/2,originY:0,rotation:g?-s:0,rectHover:!0,style:l,onclick:d});_.ensureState("emphasis").style=u,a.add(_),Ya(_)}}},e.prototype._renderCurrentPointer=function(t,a,n,i){var o=i.getData(),s=i.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,f={onCreate:function(h){h.draggable=!0,h.drift=X(u._handlePointerDrag,u),h.ondragend=X(u._handlePointerDragend,u),Lb(h,u._progressLine,s,n,i,!0)},onUpdate:function(h){Lb(h,u._progressLine,s,n,i)}};this._currentPointer=Ib(l,l,this._mainGroup,{},this._currentPointer,f)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,a,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,a){var n=this._toAxisCoord(t)[0],i=this._axis,o=Ue(i.getExtent().slice());n>o[1]&&(n=o[1]),n=0&&(o[i]=+o[i].toFixed(v)),[o,h]}var sp={min:it(Fu,"min"),max:it(Fu,"max"),average:it(Fu,"average"),median:it(Fu,"median")};function gl(r,e){if(e){var t=r.getData(),a=r.coordinateSystem,n=a&&a.dimensions;if(!qU(e)&&!z(e.coord)&&z(n)){var i=zI(e,t,a,r);if(e=et(e),e.type&&sp[e.type]&&i.baseAxis&&i.valueAxis){var o=vt(n,i.baseAxis.dim),s=vt(n,i.valueAxis.dim),l=sp[e.type](t,i.baseDataDim,i.valueDataDim,o,s);e.coord=l[0],e.value=l[1]}else e.coord=[e.xAxis!=null?e.xAxis:e.radiusAxis,e.yAxis!=null?e.yAxis:e.angleAxis]}if(e.coord==null||!z(n))e.coord=[];else for(var u=e.coord,f=0;f<2;f++)sp[u[f]]&&(u[f]=ym(t,t.mapDimension(n[f]),u[f]));return e}}function zI(r,e,t,a){var n={};return r.valueIndex!=null||r.valueDim!=null?(n.valueDataDim=r.valueIndex!=null?e.getDimension(r.valueIndex):r.valueDim,n.valueAxis=t.getAxis(KU(a,n.valueDataDim)),n.baseAxis=t.getOtherAxis(n.valueAxis),n.baseDataDim=e.mapDimension(n.baseAxis.dim)):(n.baseAxis=a.getBaseAxis(),n.valueAxis=t.getOtherAxis(n.baseAxis),n.baseDataDim=e.mapDimension(n.baseAxis.dim),n.valueDataDim=e.mapDimension(n.valueAxis.dim)),n}function KU(r,e){var t=r.getData().getDimensionInfo(e);return t&&t.coordDim}function yl(r,e){return r&&r.containData&&e.coord&&!Jd(e)?r.containData(e.coord):!0}function jU(r,e,t){return r&&r.containZone&&e.coord&&t.coord&&!Jd(e)&&!Jd(t)?r.containZone(e.coord,t.coord):!0}function GI(r,e){return r?function(t,a,n,i){var o=i<2?t.coord&&t.coord[i]:t.value;return Za(o,e[i])}:function(t,a,n,i){return Za(t.value,e[i])}}function ym(r,e,t){if(t==="average"){var a=0,n=0;return r.each(e,function(i,o){isNaN(i)||(a+=i,n++)}),a/n}else return t==="median"?r.getMedian(e):r.getDataExtent(e)[t==="max"?1:0]}var lp=Tt(),mm=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(){this.markerGroupMap=Z()},e.prototype.render=function(t,a,n){var i=this,o=this.markerGroupMap;o.each(function(s){lp(s).keep=!1}),a.eachSeries(function(s){var l=xa.getMarkerModelFromSeries(s,i.type);l&&i.renderSeries(s,l,a,n)}),o.each(function(s){!lp(s).keep&&i.group.remove(s.group)})},e.prototype.markKeep=function(t){lp(t).keep=!0},e.prototype.toggleBlurSeries=function(t,a){var n=this;C(t,function(i){var o=xa.getMarkerModelFromSeries(i,n.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(a?ET(l):Pg(l))})}})},e.type="marker",e}(zt);function Rb(r,e,t){var a=e.coordinateSystem;r.each(function(n){var i=r.getItemModel(n),o,s=W(i.get("x"),t.getWidth()),l=W(i.get("y"),t.getHeight());if(!isNaN(s)&&!isNaN(l))o=[s,l];else if(e.getMarkerPosition)o=e.getMarkerPosition(r.getValues(r.dimensions,n));else if(a){var u=r.get(a.dimensions[0],n),f=r.get(a.dimensions[1],n);o=a.dataToPoint([u,f])}isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),r.setItemLayout(n,o)})}var QU=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=xa.getMarkerModelFromSeries(i,"markPoint");o&&(Rb(o.getData(),i,n),this.markerGroupMap.get(i.id).updateLayout())},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new El),h=JU(o,t,a);a.setData(h),Rb(a.getData(),t,i),h.each(function(v){var c=h.getItemModel(v),p=c.getShallow("symbol"),d=c.getShallow("symbolSize"),g=c.getShallow("symbolRotate"),y=c.getShallow("symbolOffset"),m=c.getShallow("symbolKeepAspect");if(K(p)||K(d)||K(g)||K(y)){var _=a.getRawValue(v),S=a.getDataParams(v);K(p)&&(p=p(_,S)),K(d)&&(d=d(_,S)),K(g)&&(g=g(_,S)),K(y)&&(y=y(_,S))}var b=c.getModel("itemStyle").getItemStyle(),x=Ll(l,"color");b.fill||(b.fill=x),h.setItemVisual(v,{symbol:p,symbolSize:d,symbolRotate:g,symbolOffset:y,symbolKeepAspect:m,style:b})}),f.updateData(h),this.group.add(f.group),h.eachItemGraphicEl(function(v){v.traverse(function(c){nt(c).dataModel=a})}),this.markKeep(f),f.group.silent=a.get("silent")||t.get("silent")},e.type="markPoint",e}(mm);function JU(r,e,t){var a;r?a=G(r&&r.dimensions,function(s){var l=e.getData().getDimensionInfo(e.getData().mapDimension(s))||{};return V(V({},l),{name:s,ordinalMeta:null})}):a=[{name:"value",type:"float"}];var n=new Le(a,t),i=G(t.get("data"),it(gl,e));r&&(i=Pt(i,it(yl,r)));var o=GI(!!r,a);return n.initData(i,null,o),n}function t8(r){r.registerComponentModel(ZU),r.registerComponentView(QU),r.registerPreprocessor(function(e){gm(e.series,"markPoint")&&(e.markPoint=e.markPoint||{})})}var e8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,a,n){return new e(t,a,n)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(xa),Hu=Tt(),r8=function(r,e,t,a){var n=r.getData(),i;if(z(a))i=a;else{var o=a.type;if(o==="min"||o==="max"||o==="average"||o==="median"||a.xAxis!=null||a.yAxis!=null){var s=void 0,l=void 0;if(a.yAxis!=null||a.xAxis!=null)s=e.getAxis(a.yAxis!=null?"y":"x"),l=ee(a.yAxis,a.xAxis);else{var u=zI(a,n,e,r);s=u.valueAxis;var f=hy(n,u.valueDataDim);l=ym(n,f,o)}var h=s.dim==="x"?0:1,v=1-h,c=et(a),p={coord:[]};c.type=null,c.coord=[],c.coord[v]=-1/0,p.coord[v]=1/0;var d=t.get("precision");d>=0&&Ct(l)&&(l=+l.toFixed(Math.min(d,20))),c.coord[h]=p.coord[h]=l,i=[c,p,{type:o,valueIndex:a.valueIndex,value:l}]}else i=[]}var g=[gl(r,i[0]),gl(r,i[1]),V({},i[2])];return g[2].type=g[2].type||null,st(g[2],g[0]),st(g[2],g[1]),g};function rh(r){return!isNaN(r)&&!isFinite(r)}function Eb(r,e,t,a){var n=1-r,i=a.dimensions[r];return rh(e[n])&&rh(t[n])&&e[r]===t[r]&&a.getAxis(i).containData(e[r])}function a8(r,e){if(r.type==="cartesian2d"){var t=e[0].coord,a=e[1].coord;if(t&&a&&(Eb(1,t,a,r)||Eb(0,t,a,r)))return!0}return yl(r,e[0])&&yl(r,e[1])}function up(r,e,t,a,n){var i=a.coordinateSystem,o=r.getItemModel(e),s,l=W(o.get("x"),n.getWidth()),u=W(o.get("y"),n.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(a.getMarkerPosition)s=a.getMarkerPosition(r.getValues(r.dimensions,e));else{var f=i.dimensions,h=r.get(f[0],e),v=r.get(f[1],e);s=i.dataToPoint([h,v])}if(yi(i,"cartesian2d")){var c=i.getAxis("x"),p=i.getAxis("y"),f=i.dimensions;rh(r.get(f[0],e))?s[0]=c.toGlobalCoord(c.getExtent()[t?0:1]):rh(r.get(f[1],e))&&(s[1]=p.toGlobalCoord(p.getExtent()[t?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}r.setItemLayout(e,s)}var n8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=xa.getMarkerModelFromSeries(i,"markLine");if(o){var s=o.getData(),l=Hu(o).from,u=Hu(o).to;l.each(function(f){up(l,f,!0,i,n),up(u,f,!1,i,n)}),s.each(function(f){s.setItemLayout(f,[l.getItemLayout(f),u.getItemLayout(f)])}),this.markerGroupMap.get(i.id).updateLayout()}},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new Fy);this.group.add(f.group);var h=i8(o,t,a),v=h.from,c=h.to,p=h.line;Hu(a).from=v,Hu(a).to=c,a.setData(p);var d=a.get("symbol"),g=a.get("symbolSize"),y=a.get("symbolRotate"),m=a.get("symbolOffset");z(d)||(d=[d,d]),z(g)||(g=[g,g]),z(y)||(y=[y,y]),z(m)||(m=[m,m]),h.from.each(function(S){_(v,S,!0),_(c,S,!1)}),p.each(function(S){var b=p.getItemModel(S).getModel("lineStyle").getLineStyle();p.setItemLayout(S,[v.getItemLayout(S),c.getItemLayout(S)]),b.stroke==null&&(b.stroke=v.getItemVisual(S,"style").fill),p.setItemVisual(S,{fromSymbolKeepAspect:v.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:v.getItemVisual(S,"symbolOffset"),fromSymbolRotate:v.getItemVisual(S,"symbolRotate"),fromSymbolSize:v.getItemVisual(S,"symbolSize"),fromSymbol:v.getItemVisual(S,"symbol"),toSymbolKeepAspect:c.getItemVisual(S,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(S,"symbolOffset"),toSymbolRotate:c.getItemVisual(S,"symbolRotate"),toSymbolSize:c.getItemVisual(S,"symbolSize"),toSymbol:c.getItemVisual(S,"symbol"),style:b})}),f.updateData(p),h.line.eachItemGraphicEl(function(S){nt(S).dataModel=a,S.traverse(function(b){nt(b).dataModel=a})});function _(S,b,x){var w=S.getItemModel(b);up(S,b,x,t,i);var T=w.getModel("itemStyle").getItemStyle();T.fill==null&&(T.fill=Ll(l,"color")),S.setItemVisual(b,{symbolKeepAspect:w.get("symbolKeepAspect"),symbolOffset:ot(w.get("symbolOffset",!0),m[x?0:1]),symbolRotate:ot(w.get("symbolRotate",!0),y[x?0:1]),symbolSize:ot(w.get("symbolSize"),g[x?0:1]),symbol:ot(w.get("symbol",!0),d[x?0:1]),style:T})}this.markKeep(f),f.group.silent=a.get("silent")||t.get("silent")},e.type="markLine",e}(mm);function i8(r,e,t){var a;r?a=G(r&&r.dimensions,function(u){var f=e.getData().getDimensionInfo(e.getData().mapDimension(u))||{};return V(V({},f),{name:u,ordinalMeta:null})}):a=[{name:"value",type:"float"}];var n=new Le(a,t),i=new Le(a,t),o=new Le([],t),s=G(t.get("data"),it(r8,e,r,t));r&&(s=Pt(s,it(a8,r)));var l=GI(!!r,a);return n.initData(G(s,function(u){return u[0]}),null,l),i.initData(G(s,function(u){return u[1]}),null,l),o.initData(G(s,function(u){return u[2]})),o.hasItemOption=!0,{from:n,to:i,line:o}}function o8(r){r.registerComponentModel(e8),r.registerComponentView(n8),r.registerPreprocessor(function(e){gm(e.series,"markLine")&&(e.markLine=e.markLine||{})})}var s8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,a,n){return new e(t,a,n)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(xa),Wu=Tt(),l8=function(r,e,t,a){var n=a[0],i=a[1];if(!(!n||!i)){var o=gl(r,n),s=gl(r,i),l=o.coord,u=s.coord;l[0]=ee(l[0],-1/0),l[1]=ee(l[1],-1/0),u[0]=ee(u[0],1/0),u[1]=ee(u[1],1/0);var f=hh([{},o,s]);return f.coord=[o.coord,s.coord],f.x0=o.x,f.y0=o.y,f.x1=s.x,f.y1=s.y,f}};function ah(r){return!isNaN(r)&&!isFinite(r)}function kb(r,e,t,a){var n=1-r;return ah(e[n])&&ah(t[n])}function u8(r,e){var t=e.coord[0],a=e.coord[1],n={coord:t,x:e.x0,y:e.y0},i={coord:a,x:e.x1,y:e.y1};return yi(r,"cartesian2d")?t&&a&&(kb(1,t,a)||kb(0,t,a))?!0:jU(r,n,i):yl(r,n)||yl(r,i)}function Ob(r,e,t,a,n){var i=a.coordinateSystem,o=r.getItemModel(e),s,l=W(o.get(t[0]),n.getWidth()),u=W(o.get(t[1]),n.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(a.getMarkerPosition){var f=r.getValues(["x0","y0"],e),h=r.getValues(["x1","y1"],e),v=i.clampData(f),c=i.clampData(h),p=[];t[0]==="x0"?p[0]=v[0]>c[0]?h[0]:f[0]:p[0]=v[0]>c[0]?f[0]:h[0],t[1]==="y0"?p[1]=v[1]>c[1]?h[1]:f[1]:p[1]=v[1]>c[1]?f[1]:h[1],s=a.getMarkerPosition(p,t,!0)}else{var d=r.get(t[0],e),g=r.get(t[1],e),y=[d,g];i.clampData&&i.clampData(y,y),s=i.dataToPoint(y,!0)}if(yi(i,"cartesian2d")){var m=i.getAxis("x"),_=i.getAxis("y"),d=r.get(t[0],e),g=r.get(t[1],e);ah(d)?s[0]=m.toGlobalCoord(m.getExtent()[t[0]==="x0"?0:1]):ah(g)&&(s[1]=_.toGlobalCoord(_.getExtent()[t[1]==="y0"?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}return s}var Nb=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],f8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=xa.getMarkerModelFromSeries(i,"markArea");if(o){var s=o.getData();s.each(function(l){var u=G(Nb,function(h){return Ob(s,l,h,i,n)});s.setItemLayout(l,u);var f=s.getItemGraphicEl(l);f.setShape("points",u)})}},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,{group:new at});this.group.add(f.group),this.markKeep(f);var h=h8(o,t,a);a.setData(h),h.each(function(v){var c=G(Nb,function(T){return Ob(h,v,T,t,i)}),p=o.getAxis("x").scale,d=o.getAxis("y").scale,g=p.getExtent(),y=d.getExtent(),m=[p.parse(h.get("x0",v)),p.parse(h.get("x1",v))],_=[d.parse(h.get("y0",v)),d.parse(h.get("y1",v))];Ue(m),Ue(_);var S=!(g[0]>m[1]||g[1]_[1]||y[1]<_[0]),b=!S;h.setItemLayout(v,{points:c,allClipped:b});var x=h.getItemModel(v).getModel("itemStyle").getItemStyle(),w=Ll(l,"color");x.fill||(x.fill=w,U(x.fill)&&(x.fill=Xs(x.fill,.4))),x.stroke||(x.stroke=w),h.setItemVisual(v,"style",x)}),h.diff(Wu(f).data).add(function(v){var c=h.getItemLayout(v);if(!c.allClipped){var p=new Se({shape:{points:c.points}});h.setItemGraphicEl(v,p),f.group.add(p)}}).update(function(v,c){var p=Wu(f).data.getItemGraphicEl(c),d=h.getItemLayout(v);d.allClipped?p&&f.group.remove(p):(p?Dt(p,{shape:{points:d.points}},a,v):p=new Se({shape:{points:d.points}}),h.setItemGraphicEl(v,p),f.group.add(p))}).remove(function(v){var c=Wu(f).data.getItemGraphicEl(v);f.group.remove(c)}).execute(),h.eachItemGraphicEl(function(v,c){var p=h.getItemModel(c),d=h.getItemVisual(c,"style");v.useStyle(h.getItemVisual(c,"style")),ve(v,ne(p),{labelFetcher:a,labelDataIndex:c,defaultText:h.getName(c)||"",inheritColor:U(d.fill)?Xs(d.fill,1):"#000"}),he(v,p),Wt(v,null,null,p.get(["emphasis","disabled"])),nt(v).dataModel=a}),Wu(f).data=h,f.group.silent=a.get("silent")||t.get("silent")},e.type="markArea",e}(mm);function h8(r,e,t){var a,n,i=["x0","y0","x1","y1"];if(r){var o=G(r&&r.dimensions,function(u){var f=e.getData(),h=f.getDimensionInfo(f.mapDimension(u))||{};return V(V({},h),{name:u,ordinalMeta:null})});n=G(i,function(u,f){return{name:u,type:o[f%2].type}}),a=new Le(n,t)}else n=[{name:"value",type:"float"}],a=new Le(n,t);var s=G(t.get("data"),it(l8,e,r,t));r&&(s=Pt(s,it(u8,r)));var l=r?function(u,f,h,v){var c=u.coord[Math.floor(v/2)][v%2];return Za(c,n[v])}:function(u,f,h,v){return Za(u.value,n[v])};return a.initData(s,null,l),a.hasItemOption=!0,a}function v8(r){r.registerComponentModel(s8),r.registerComponentView(f8),r.registerPreprocessor(function(e){gm(e.series,"markArea")&&(e.markArea=e.markArea||{})})}var c8=function(r,e){if(e==="all")return{type:"all",title:r.getLocaleModel().get(["legend","selector","all"])};if(e==="inverse")return{type:"inverse",title:r.getLocaleModel().get(["legend","selector","inverse"])}},tg=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode={type:"box",ignoreSize:!0},t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(t,a){r.prototype.mergeOption.call(this,t,a),this._updateSelector(t)},e.prototype._updateSelector=function(t){var a=t.selector,n=this.ecModel;a===!0&&(a=t.selector=["all","inverse"]),z(a)&&C(a,function(i,o){U(i)&&(i={type:i}),a[o]=st(i,c8(n,i.type))})},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&this.get("selectedMode")==="single"){for(var a=!1,n=0;n=0},e.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(mt),Bi=it,eg=C,Uu=at,FI=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.newlineDisabled=!1,t}return e.prototype.init=function(){this.group.add(this._contentGroup=new Uu),this.group.add(this._selectorGroup=new Uu),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,a,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!t.get("show",!0)){var o=t.get("align"),s=t.get("orient");(!o||o==="auto")&&(o=t.get("left")==="right"&&s==="vertical"?"right":"left");var l=t.get("selector",!0),u=t.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,t,a,n,l,s,u);var f=t.getBoxLayoutParams(),h={width:n.getWidth(),height:n.getHeight()},v=t.get("padding"),c=jt(f,h,v),p=this.layoutInner(t,o,c,i,l,u),d=jt(Q({width:p.width,height:p.height},f),h,v);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=II(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,a,n,i,o,s,l){var u=this.getContentGroup(),f=Z(),h=a.get("selectedMode"),v=[];n.eachRawSeries(function(c){!c.get("legendHoverLink")&&v.push(c.id)}),eg(a.getData(),function(c,p){var d=c.get("name");if(!this.newlineDisabled&&(d===""||d===` +`)){var g=new Uu;g.newline=!0,u.add(g);return}var y=n.getSeriesByName(d)[0];if(!f.get(d))if(y){var m=y.getData(),_=m.getVisual("legendLineStyle")||{},S=m.getVisual("legendIcon"),b=m.getVisual("style"),x=this._createItem(y,d,p,c,a,t,_,b,S,h,i);x.on("click",Bi(Bb,d,null,i,v)).on("mouseover",Bi(rg,y.name,null,i,v)).on("mouseout",Bi(ag,y.name,null,i,v)),n.ssr&&x.eachChild(function(w){var T=nt(w);T.seriesIndex=y.seriesIndex,T.dataIndex=p,T.ssrType="legend"}),f.set(d,!0)}else n.eachRawSeries(function(w){if(!f.get(d)&&w.legendVisualProvider){var T=w.legendVisualProvider;if(!T.containName(d))return;var A=T.indexOfName(d),D=T.getItemVisual(A,"style"),M=T.getItemVisual(A,"legendIcon"),I=Ie(D.fill);I&&I[3]===0&&(I[3]=.2,D=V(V({},D),{fill:Tr(I,"rgba")}));var L=this._createItem(w,d,p,c,a,t,{},D,M,h,i);L.on("click",Bi(Bb,null,d,i,v)).on("mouseover",Bi(rg,null,d,i,v)).on("mouseout",Bi(ag,null,d,i,v)),n.ssr&&L.eachChild(function(P){var R=nt(P);R.seriesIndex=w.seriesIndex,R.dataIndex=p,R.ssrType="legend"}),f.set(d,!0)}},this)},this),o&&this._createSelector(o,a,i,s,l)},e.prototype._createSelector=function(t,a,n,i,o){var s=this.getSelectorGroup();eg(t,function(u){var f=u.type,h=new bt({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(h);var v=a.getModel("selectorLabel"),c=a.getModel(["emphasis","selectorLabel"]);ve(h,{normal:v,emphasis:c},{defaultText:u.title}),Ya(h)})},e.prototype._createItem=function(t,a,n,i,o,s,l,u,f,h,v){var c=t.visualDrawType,p=o.get("itemWidth"),d=o.get("itemHeight"),g=o.isSelected(a),y=i.get("symbolRotate"),m=i.get("symbolKeepAspect"),_=i.get("icon");f=_||f||"roundRect";var S=p8(f,i,l,u,c,g,v),b=new Uu,x=i.getModel("textStyle");if(K(t.getLegendIcon)&&(!_||_==="inherit"))b.add(t.getLegendIcon({itemWidth:p,itemHeight:d,icon:f,iconRotate:y,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:m}));else{var w=_==="inherit"&&t.getData().getVisual("symbol")?y==="inherit"?t.getData().getVisual("symbolRotate"):y:0;b.add(d8({itemWidth:p,itemHeight:d,icon:f,iconRotate:w,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:m}))}var T=s==="left"?p+5:-5,A=s,D=o.get("formatter"),M=a;U(D)&&D?M=D.replace("{name}",a??""):K(D)&&(M=D(a));var I=g?x.getTextColor():i.get("inactiveColor");b.add(new bt({style:Nt(x,{text:M,x:T,y:d/2,fill:I,align:A,verticalAlign:"middle"},{inheritColor:I})}));var L=new wt({shape:b.getBoundingRect(),style:{fill:"transparent"}}),P=i.getModel("tooltip");return P.get("show")&&To({el:L,componentModel:o,itemName:a,itemTooltipOption:P.option}),b.add(L),b.eachChild(function(R){R.silent=!0}),L.silent=!h,this.getContentGroup().add(b),Ya(b),b.__legendDataIndex=n,b},e.prototype.layoutInner=function(t,a,n,i,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Qn(t.get("orient"),l,t.get("itemGap"),n.width,n.height);var f=l.getBoundingRect(),h=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){Qn("horizontal",u,t.get("selectorItemGap",!0));var v=u.getBoundingRect(),c=[-v.x,-v.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,g=d===0?"width":"height",y=d===0?"height":"width",m=d===0?"y":"x";s==="end"?c[d]+=f[g]+p:h[d]+=v[g]+p,c[1-d]+=f[y]/2-v[y]/2,u.x=c[0],u.y=c[1],l.x=h[0],l.y=h[1];var _={x:0,y:0};return _[g]=f[g]+p+v[g],_[y]=Math.max(f[y],v[y]),_[m]=Math.min(0,v[m]+c[1-d]),_}else return l.x=h[0],l.y=h[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(zt);function p8(r,e,t,a,n,i,o){function s(g,y){g.lineWidth==="auto"&&(g.lineWidth=y.lineWidth>0?2:0),eg(g,function(m,_){g[_]==="inherit"&&(g[_]=y[_])})}var l=e.getModel("itemStyle"),u=l.getItemStyle(),f=r.lastIndexOf("empty",0)===0?"fill":"stroke",h=l.getShallow("decal");u.decal=!h||h==="inherit"?a.decal:uo(h,o),u.fill==="inherit"&&(u.fill=a[n]),u.stroke==="inherit"&&(u.stroke=a[f]),u.opacity==="inherit"&&(u.opacity=(n==="fill"?a:t).opacity),s(u,a);var v=e.getModel("lineStyle"),c=v.getLineStyle();if(s(c,t),u.fill==="auto"&&(u.fill=a.fill),u.stroke==="auto"&&(u.stroke=a.fill),c.stroke==="auto"&&(c.stroke=a.fill),!i){var p=e.get("inactiveBorderWidth"),d=u[f];u.lineWidth=p==="auto"?a.lineWidth>0&&d?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),c.stroke=v.get("inactiveColor"),c.lineWidth=v.get("inactiveWidth")}return{itemStyle:u,lineStyle:c}}function d8(r){var e=r.icon||"roundRect",t=Zt(e,0,0,r.itemWidth,r.itemHeight,r.itemStyle.fill,r.symbolKeepAspect);return t.setStyle(r.itemStyle),t.rotation=(r.iconRotate||0)*Math.PI/180,t.setOrigin([r.itemWidth/2,r.itemHeight/2]),e.indexOf("empty")>-1&&(t.style.stroke=t.style.fill,t.style.fill="#fff",t.style.lineWidth=2),t}function Bb(r,e,t,a){ag(r,e,t,a),t.dispatchAction({type:"legendToggleSelect",name:r??e}),rg(r,e,t,a)}function HI(r){for(var e=r.getZr().storage.getDisplayList(),t,a=0,n=e.length;an[o],g=[-c.x,-c.y];a||(g[i]=f[u]);var y=[0,0],m=[-p.x,-p.y],_=ot(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var S=t.get("pageButtonPosition",!0);S==="end"?m[i]+=n[o]-p[o]:y[i]+=p[o]+_}m[1-i]+=c[s]/2-p[s]/2,f.setPosition(g),h.setPosition(y),v.setPosition(m);var b={x:0,y:0};if(b[o]=d?n[o]:c[o],b[s]=Math.max(c[s],p[s]),b[l]=Math.min(0,p[l]+m[1-i]),h.__rectSize=n[o],d){var x={x:0,y:0};x[o]=Math.max(n[o]-p[o]-_,0),x[s]=b[s],h.setClipPath(new wt({shape:x})),h.__rectSize=x[o]}else v.eachChild(function(T){T.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(t);return w.pageIndex!=null&&Dt(f,{x:w.contentPosition[0],y:w.contentPosition[1]},d?t:null),this._updatePageInfoView(t,w),b},e.prototype._pageGo=function(t,a,n){var i=this._getPageInfo(a)[t];i!=null&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:a.id})},e.prototype._updatePageInfoView=function(t,a){var n=this._controllerGroup;C(["pagePrev","pageNext"],function(f){var h=f+"DataIndex",v=a[h]!=null,c=n.childOfName(f);c&&(c.setStyle("fill",v?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),c.cursor=v?"pointer":"default")});var i=n.childOfName("pageText"),o=t.get("pageFormatter"),s=a.pageIndex,l=s!=null?s+1:0,u=a.pageCount;i&&o&&i.setStyle("text",U(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},e.prototype._getPageInfo=function(t){var a=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,o=t.getOrient().index,s=fp[o],l=hp[o],u=this._findTargetItemIndex(a),f=n.children(),h=f[u],v=f.length,c=v?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!h)return p;var d=S(h);p.contentPosition[o]=-d.s;for(var g=u+1,y=d,m=d,_=null;g<=v;++g)_=S(f[g]),(!_&&m.e>y.s+i||_&&!b(_,y.s))&&(m.i>y.i?y=m:y=_,y&&(p.pageNextDataIndex==null&&(p.pageNextDataIndex=y.i),++p.pageCount)),m=_;for(var g=u-1,y=d,m=d,_=null;g>=-1;--g)_=S(f[g]),(!_||!b(m,_.s))&&y.i=w&&x.s<=w+i}},e.prototype._findTargetItemIndex=function(t){if(!this._showController)return 0;var a,n=this.getContentGroup(),i;return n.eachChild(function(o,s){var l=o.__legendDataIndex;i==null&&l!=null&&(i=s),l===t&&(a=s)}),a??i},e.type="legend.scroll",e}(FI);function S8(r){r.registerAction("legendScroll","legendscroll",function(e,t){var a=e.scrollDataIndex;a!=null&&t.eachComponent({mainType:"legend",subType:"scroll",query:e},function(n){n.setScrollDataIndex(a)})})}function x8(r){gt(WI),r.registerComponentModel(m8),r.registerComponentView(_8),S8(r)}function b8(r){gt(WI),gt(x8)}var w8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.inside",e.defaultOption=on(dl.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(dl),_m=Tt();function T8(r,e,t){_m(r).coordSysRecordMap.each(function(a){var n=a.dataZoomInfoMap.get(e.uid);n&&(n.getRange=t)})}function A8(r,e){for(var t=_m(r).coordSysRecordMap,a=t.keys(),n=0;na[t+e]&&(e=s),n=n&&o.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!n}}}function L8(r){r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,function(e,t){var a=_m(t),n=a.coordSysRecordMap||(a.coordSysRecordMap=Z());n.each(function(i){i.dataZoomInfoMap=null}),e.eachComponent({mainType:"dataZoom",subType:"inside"},function(i){var o=CI(i);C(o.infoList,function(s){var l=s.model.uid,u=n.get(l)||n.set(l,C8(t,s.model)),f=u.dataZoomInfoMap||(u.dataZoomInfoMap=Z());f.set(i.uid,{dzReferCoordSysInfo:s,model:i,getRange:null})})}),n.each(function(i){var o=i.controller,s,l=i.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){UI(n,i);return}var f=I8(l);o.enable(f.controlType,f.opt),o.setPointerChecker(i.containsPoint),Po(i,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var P8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="dataZoom.inside",t}return e.prototype.render=function(t,a,n){if(r.prototype.render.apply(this,arguments),t.noTarget()){this._clear();return}this.range=t.getPercentRange(),T8(n,t,{pan:X(vp.pan,this),zoom:X(vp.zoom,this),scrollMove:X(vp.scrollMove,this)})},e.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){A8(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(fm),vp={zoom:function(r,e,t,a){var n=this.range,i=n.slice(),o=r.axisModels[0];if(o){var s=cp[e](null,[a.originX,a.originY],o,t,r),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(i[1]-i[0])+i[0],u=Math.max(1/a.scale,0);i[0]=(i[0]-l)*u+l,i[1]=(i[1]-l)*u+l;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(_i(0,i,[0,100],0,f.minSpan,f.maxSpan),this.range=i,n[0]!==i[0]||n[1]!==i[1])return i}},pan:Gb(function(r,e,t,a,n,i){var o=cp[a]([i.oldX,i.oldY],[i.newX,i.newY],e,n,t);return o.signal*(r[1]-r[0])*o.pixel/o.pixelLength}),scrollMove:Gb(function(r,e,t,a,n,i){var o=cp[a]([0,0],[i.scrollDelta,i.scrollDelta],e,n,t);return o.signal*(r[1]-r[0])*i.scrollDelta})};function Gb(r){return function(e,t,a,n){var i=this.range,o=i.slice(),s=e.axisModels[0];if(s){var l=r(o,s,e,t,a,n);if(_i(l,o,[0,100],"all"),this.range=o,i[0]!==o[0]||i[1]!==o[1])return o}}}var cp={grid:function(r,e,t,a,n){var i=t.axis,o={},s=n.model.coordinateSystem.getRect();return r=r||[0,0],i.dim==="x"?(o.pixel=e[0]-r[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=i.inverse?1:-1):(o.pixel=e[1]-r[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=i.inverse?-1:1),o},polar:function(r,e,t,a,n){var i=t.axis,o={},s=n.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return r=r?s.pointToCoord(r):[0,0],e=s.pointToCoord(e),t.mainType==="radiusAxis"?(o.pixel=e[0]-r[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=i.inverse?1:-1):(o.pixel=e[1]-r[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=i.inverse?-1:1),o},singleAxis:function(r,e,t,a,n){var i=t.axis,o=n.model.coordinateSystem.getRect(),s={};return r=r||[0,0],i.orient==="horizontal"?(s.pixel=e[0]-r[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=i.inverse?1:-1):(s.pixel=e[1]-r[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=i.inverse?-1:1),s}};function YI(r){hm(r),r.registerComponentModel(w8),r.registerComponentView(P8),L8(r)}var R8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=on(dl.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(dl),fs=wt,Fb=7,E8=1,pp=30,k8=7,hs="horizontal",Hb="vertical",O8=5,N8=["line","bar","candlestick","scatter"],B8={easing:"cubicOut",duration:100,delay:0},V8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._displayables={},t}return e.prototype.init=function(t,a){this.api=a,this._onBrush=X(this._onBrush,this),this._onBrushEnd=X(this._onBrushEnd,this)},e.prototype.render=function(t,a,n,i){if(r.prototype.render.apply(this,arguments),Po(this,"_dispatchZoomAction",t.get("throttle"),"fixRate"),this._orient=t.getOrient(),t.get("show")===!1){this.group.removeAll();return}if(t.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!=="dataZoom"||i.from!==this.uid)&&this._buildView(),this._updateView()},e.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){rl(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var a=this._displayables.sliderGroup=new at;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(a),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,a=this.api,n=t.get("brushSelect"),i=n?k8:0,o=this._findCoordRect(),s={width:a.getWidth(),height:a.getHeight()},l=this._orient===hs?{right:s.width-o.x-o.width,top:s.height-pp-Fb-i,width:o.width,height:pp}:{right:Fb,top:o.y,width:pp,height:o.height},u=Do(t.option);C(["right","top","width","height"],function(h){u[h]==="ph"&&(u[h]=l[h])});var f=jt(u,s);this._location={x:f.x,y:f.y},this._size=[f.width,f.height],this._orient===Hb&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,a=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(n===hs&&!o?{scaleY:l?1:-1,scaleX:1}:n===hs&&o?{scaleY:l?1:-1,scaleX:-1}:n===Hb&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=t.getBoundingRect([s]);t.x=a.x-u.x,t.y=a.y-u.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,a=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new fs({silent:!0,shape:{x:0,y:0,width:a[0],height:a[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var o=new fs({shape:{x:0,y:0,width:a[0],height:a[1]},style:{fill:"transparent"},z2:0,onclick:X(this._onClickPanel,this)}),s=this.api.getZr();i?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),n.add(o)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!t)return;var a=this._size,n=this._shadowSize||[],i=t.series,o=i.getRawData(),s=i.getShadowDim&&i.getShadowDim(),l=s&&o.getDimensionInfo(s)?i.getShadowDim():t.otherDim;if(l==null)return;var u=this._shadowPolygonPts,f=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||a[0]!==n[0]||a[1]!==n[1]){var h=o.getDataExtent(l),v=(h[1]-h[0])*.3;h=[h[0]-v,h[1]+v];var c=[0,a[1]],p=[0,a[0]],d=[[a[0],0],[0,0]],g=[],y=p[1]/(o.count()-1),m=0,_=Math.round(o.count()/a[0]),S;o.each([l],function(A,D){if(_>0&&D%_){m+=y;return}var M=A==null||isNaN(A)||A==="",I=M?0:Lt(A,h,c,!0);M&&!S&&D?(d.push([d[d.length-1][0],0]),g.push([g[g.length-1][0],0])):!M&&S&&(d.push([m,0]),g.push([m,0])),d.push([m,I]),g.push([m,I]),m+=y,S=M}),u=this._shadowPolygonPts=d,f=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=l,this._shadowSize=[a[0],a[1]];var b=this.dataZoomModel;function x(A){var D=b.getModel(A?"selectedDataBackground":"dataBackground"),M=new at,I=new Se({shape:{points:u},segmentIgnoreThreshold:1,style:D.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),L=new be({shape:{points:f},segmentIgnoreThreshold:1,style:D.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return M.add(I),M.add(L),M}for(var w=0;w<3;w++){var T=x(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,a=t.get("showDataShadow");if(a!==!1){var n,i=this.ecModel;return t.eachTargetAxis(function(o,s){var l=t.getAxisProxy(o,s).getTargetSeriesModels();C(l,function(u){if(!n&&!(a!==!0&&vt(N8,u.get("type"))<0)){var f=i.getComponent(Ha(o),s).axis,h=z8(o),v,c=u.coordinateSystem;h!=null&&c.getOtherAxis&&(v=c.getOtherAxis(f).inverse),h=u.getData().mapDimension(h),n={thisAxis:f,series:u,thisDim:o,otherDim:h,otherAxisInverse:v}}},this)},this),n}},e.prototype._renderHandle=function(){var t=this.group,a=this._displayables,n=a.handles=[null,null],i=a.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,f=l.get("borderRadius")||0,h=l.get("brushSelect"),v=a.filler=new fs({silent:h,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(v),o.add(new fs({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:f},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:E8,fill:"rgba(0,0,0,0)"}})),C([0,1],function(_){var S=l.get("handleIcon");!Rf[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var b=Zt(S,-1,0,2,2,null,!0);b.attr({cursor:Wb(this._orient),draggable:!0,drift:X(this._onDragMove,this,_),ondragend:X(this._onDragEnd,this),onmouseover:X(this._showDataInfo,this,!0),onmouseout:X(this._showDataInfo,this,!1),z2:5});var x=b.getBoundingRect(),w=l.get("handleSize");this._handleHeight=W(w,this._size[1]),this._handleWidth=x.width/x.height*this._handleHeight,b.setStyle(l.getModel("handleStyle").getItemStyle()),b.style.strokeNoScale=!0,b.rectHover=!0,b.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),Ya(b);var T=l.get("handleColor");T!=null&&(b.style.fill=T),o.add(n[_]=b);var A=l.getModel("textStyle");t.add(i[_]=new bt({silent:!0,invisible:!0,style:Nt(A,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:A.getTextColor(),font:A.getFont()}),z2:10}))},this);var c=v;if(h){var p=W(l.get("moveHandleSize"),s[1]),d=a.moveHandle=new wt({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:p}}),g=p*.8,y=a.moveHandleIcon=Zt(l.get("moveHandleIcon"),-g/2,-g/2,g,g,"#fff",!0);y.silent=!0,y.y=s[1]+p/2-.5,d.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var m=Math.min(s[1]/2,Math.max(p,10));c=a.moveZone=new wt({invisible:!0,shape:{y:s[1]-m,height:p+m}}),c.on("mouseover",function(){u.enterEmphasis(d)}).on("mouseout",function(){u.leaveEmphasis(d)}),o.add(d),o.add(y),o.add(c)}c.attr({draggable:!0,cursor:Wb(this._orient),drift:X(this._onDragMove,this,"all"),ondragstart:X(this._showDataInfo,this,!0),ondragend:X(this._onDragEnd,this),onmouseover:X(this._showDataInfo,this,!0),onmouseout:X(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),a=this._getViewExtent();this._handleEnds=[Lt(t[0],[0,100],a,!0),Lt(t[1],[0,100],a,!0)]},e.prototype._updateInterval=function(t,a){var n=this.dataZoomModel,i=this._handleEnds,o=this._getViewExtent(),s=n.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];_i(a,i,o,n.get("zoomLock")?"all":t,s.minSpan!=null?Lt(s.minSpan,l,o,!0):null,s.maxSpan!=null?Lt(s.maxSpan,l,o,!0):null);var u=this._range,f=this._range=Ue([Lt(i[0],o,l,!0),Lt(i[1],o,l,!0)]);return!u||u[0]!==f[0]||u[1]!==f[1]},e.prototype._updateView=function(t){var a=this._displayables,n=this._handleEnds,i=Ue(n.slice()),o=this._size;C([0,1],function(c){var p=a.handles[c],d=this._handleHeight;p.attr({scaleX:d/2,scaleY:d/2,x:n[c]+(c?-1:1),y:o[1]/2-d/2})},this),a.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:o[1]});var s={x:i[0],width:i[1]-i[0]};a.moveHandle&&(a.moveHandle.setShape(s),a.moveZone.setShape(s),a.moveZone.getBoundingRect(),a.moveHandleIcon&&a.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=a.dataShadowSegs,u=[0,i[0],i[1],o[0]],f=0;fa[0]||n[1]<0||n[1]>a[1])){var i=this._handleEnds,o=(i[0]+i[1])/2,s=this._updateInterval("all",n[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var a=t.offsetX,n=t.offsetY;this._brushStart=new ft(a,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var a=this._displayables.brushRect;if(this._brushing=!1,!!a){a.attr("ignore",!0);var n=a.shape,i=+new Date;if(!(i-this._brushStartTime<200&&Math.abs(n.width)<5)){var o=this._getViewExtent(),s=[0,100];this._range=Ue([Lt(n.x,o,s,!0),Lt(n.x+n.width,o,s,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(pa(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,a){var n=this._displayables,i=this.dataZoomModel,o=n.brushRect;o||(o=n.brushRect=new fs({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(t,a),f=l.transformCoordToLocal(s.x,s.y),h=this._size;u[0]=Math.max(Math.min(h[0],u[0]),0),o.setShape({x:f[0],y:0,width:u[0]-f[0],height:h[1]})},e.prototype._dispatchZoomAction=function(t){var a=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?B8:null,start:a[0],end:a[1]})},e.prototype._findCoordRect=function(){var t,a=CI(this.dataZoomModel).infoList;if(!t&&a.length){var n=a[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),o=this.api.getHeight();t={x:i*.2,y:o*.2,width:i*.6,height:o*.6}}return t},e.type="dataZoom.slider",e}(fm);function z8(r){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[r]}function Wb(r){return r==="vertical"?"ns-resize":"ew-resize"}function XI(r){r.registerComponentModel(R8),r.registerComponentView(V8),hm(r)}function G8(r){gt(YI),gt(XI)}var $I={get:function(r,e,t){var a=et((F8[r]||{})[e]);return t&&z(a)?a[a.length-1]:a}},F8={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},Ub=ae.mapVisual,H8=ae.eachVisual,W8=z,Yb=C,U8=Ue,Y8=Lt,nh=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.stateList=["inRange","outOfRange"],t.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],t.layoutMode={type:"box",ignoreSize:!0},t.dataBound=[-1/0,1/0],t.targetVisuals={},t.controllerVisuals={},t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,a){var n=this.option;!a&&NI(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var a=this.stateList;t=X(t,this),this.controllerVisuals=jd(this.option.controller,a,t),this.targetVisuals=jd(this.option.target,a,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,a=[];return t==null||t==="all"?this.ecModel.eachSeries(function(n,i){a.push(i)}):a=Et(t),a},e.prototype.eachTargetSeries=function(t,a){C(this.getTargetSeriesIndices(),function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(a,i)},this)},e.prototype.isTargetSeries=function(t){var a=!1;return this.eachTargetSeries(function(n){n===t&&(a=!0)}),a},e.prototype.formatValueText=function(t,a,n){var i=this.option,o=i.precision,s=this.dataBound,l=i.formatter,u;n=n||["<",">"],z(t)&&(t=t.slice(),u=!0);var f=a?t:u?[h(t[0]),h(t[1])]:h(t);if(U(l))return l.replace("{value}",u?f[0]:f).replace("{value2}",u?f[1]:f);if(K(l))return u?l(t[0],t[1]):l(t);if(u)return t[0]===s[0]?n[0]+" "+f[1]:t[1]===s[1]?n[1]+" "+f[0]:f[0]+" - "+f[1];return f;function h(v){return v===s[0]?"min":v===s[1]?"max":(+v).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,a=U8([t.min,t.max]);this._dataExtent=a},e.prototype.getDataDimensionIndex=function(t){var a=this.option.dimension;if(a!=null)return t.getDimensionIndex(a);for(var n=t.dimensions,i=n.length-1;i>=0;i--){var o=n[i],s=t.getDimensionInfo(o);if(!s.isCalculationCoord)return s.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,a=this.option,n={inRange:a.inRange,outOfRange:a.outOfRange},i=a.target||(a.target={}),o=a.controller||(a.controller={});st(i,n),st(o,n);var s=this.isCategory();l.call(this,i),l.call(this,o),u.call(this,i,"inRange","outOfRange"),f.call(this,o);function l(h){W8(a.color)&&!h.inRange&&(h.inRange={color:a.color.slice().reverse()}),h.inRange=h.inRange||{color:t.get("gradientColor")}}function u(h,v,c){var p=h[v],d=h[c];p&&!d&&(d=h[c]={},Yb(p,function(g,y){if(ae.isValidType(y)){var m=$I.get(y,"inactive",s);m!=null&&(d[y]=m,y==="color"&&!d.hasOwnProperty("opacity")&&!d.hasOwnProperty("colorAlpha")&&(d.opacity=[0,0]))}}))}function f(h){var v=(h.inRange||{}).symbol||(h.outOfRange||{}).symbol,c=(h.inRange||{}).symbolSize||(h.outOfRange||{}).symbolSize,p=this.get("inactiveColor"),d=this.getItemSymbol(),g=d||"roundRect";Yb(this.stateList,function(y){var m=this.itemSize,_=h[y];_||(_=h[y]={color:s?p:[p]}),_.symbol==null&&(_.symbol=v&&et(v)||(s?g:[g])),_.symbolSize==null&&(_.symbolSize=c&&et(c)||(s?m[0]:[m[0],m[0]])),_.symbol=Ub(_.symbol,function(x){return x==="none"?g:x});var S=_.symbolSize;if(S!=null){var b=-1/0;H8(S,function(x){x>b&&(b=x)}),_.symbolSize=Ub(S,function(x){return Y8(x,[0,b],[0,m[0]],!0)})}},this)}},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(mt),Xb=[20,140],X8=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(t,a){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(n){n.mappingMethod="linear",n.dataExtent=this.getExtent()}),this._resetRange()},e.prototype.resetItemSize=function(){r.prototype.resetItemSize.apply(this,arguments);var t=this.itemSize;(t[0]==null||isNaN(t[0]))&&(t[0]=Xb[0]),(t[1]==null||isNaN(t[1]))&&(t[1]=Xb[1])},e.prototype._resetRange=function(){var t=this.getExtent(),a=this.option.range;!a||a.auto?(t.auto=1,this.option.range=t):z(a)&&(a[0]>a[1]&&a.reverse(),a[0]=Math.max(a[0],t[0]),a[1]=Math.min(a[1],t[1]))},e.prototype.completeVisualOption=function(){r.prototype.completeVisualOption.apply(this,arguments),C(this.stateList,function(t){var a=this.option.controller[t].symbolSize;a&&a[0]!==a[1]&&(a[0]=a[1]/3)},this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),a=Ue((this.get("range")||[]).slice());return a[0]>t[1]&&(a[0]=t[1]),a[1]>t[1]&&(a[1]=t[1]),a[0]=n[1]||t<=a[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var a=[];return this.eachTargetSeries(function(n){var i=[],o=n.getData();o.each(this.getDataDimensionIndex(o),function(s,l){t[0]<=s&&s<=t[1]&&i.push(l)},this),a.push({seriesId:n.id,dataIndex:i})},this),a},e.prototype.getVisualMeta=function(t){var a=$b(this,"outOfRange",this.getExtent()),n=$b(this,"inRange",this.option.range.slice()),i=[];function o(c,p){i.push({value:c,color:t(c,p)})}for(var s=0,l=0,u=n.length,f=a.length;lt[1])break;i.push({color:this.getControllerVisual(l,"color",a),offset:s/n})}return i.push({color:this.getControllerVisual(t[1],"color",a),offset:1}),i},e.prototype._createBarPoints=function(t,a){var n=this.visualMapModel.itemSize;return[[n[0]-a[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-a[1],t[1]]]},e.prototype._createBarGroup=function(t){var a=this._orient,n=this.visualMapModel.get("inverse");return new at(a==="horizontal"&&!n?{scaleX:t==="bottom"?1:-1,rotation:Math.PI/2}:a==="horizontal"&&n?{scaleX:t==="bottom"?-1:1,rotation:-Math.PI/2}:a==="vertical"&&!n?{scaleX:t==="left"?1:-1,scaleY:-1}:{scaleX:t==="left"?1:-1})},e.prototype._updateHandle=function(t,a){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,o=n.handleThumbs,s=n.handleLabels,l=i.itemSize,u=i.getExtent();$8([0,1],function(f){var h=o[f];h.setStyle("fill",a.handlesColor[f]),h.y=t[f];var v=Br(t[f],[0,l[1]],u,!0),c=this.getControllerVisual(v,"symbolSize");h.scaleX=h.scaleY=c/l[0],h.x=l[0]-c/2;var p=Ar(n.handleLabelPoints[f],Xa(h,this.group));s[f].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[f]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",n.mainGroup):"center"})},this)}},e.prototype._showIndicator=function(t,a,n,i){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],f=this._shapes,h=f.indicator;if(h){h.attr("invisible",!1);var v={convertOpacityToAlpha:!0},c=this.getControllerVisual(t,"color",v),p=this.getControllerVisual(t,"symbolSize"),d=Br(t,s,u,!0),g=l[0]-p/2,y={x:h.x,y:h.y};h.y=d,h.x=g;var m=Ar(f.indicatorLabelPoint,Xa(h,this.group)),_=f.indicatorLabel;_.attr("invisible",!1);var S=this._applyTransform("left",f.mainGroup),b=this._orient,x=b==="horizontal";_.setStyle({text:(n||"")+o.formatValueText(a),verticalAlign:x?S:"middle",align:x?"center":S});var w={x:g,y:d,style:{fill:c}},T={style:{x:m[0],y:m[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var A={duration:100,easing:"cubicInOut",additive:!0};h.x=y.x,h.y=y.y,h.animateTo(w,A),_.animateTo(T,A)}else h.attr(w),_.attr(T);this._firstShowIndicator=!1;var D=this._shapes.handleLabels;if(D)for(var M=0;Mo[1]&&(h[1]=1/0),a&&(h[0]===-1/0?this._showIndicator(f,h[1],"< ",l):h[1]===1/0?this._showIndicator(f,h[0],"> ",l):this._showIndicator(f,f,"≈ ",l));var v=this._hoverLinkDataIndices,c=[];(a||jb(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(h));var p=aP(v,c);this._dispatchHighDown("downplay",ff(p[0],n)),this._dispatchHighDown("highlight",ff(p[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var a;if(Yn(t.target,function(l){var u=nt(l);if(u.dataIndex!=null)return a=u,!0},!0),!!a){var n=this.ecModel.getSeriesByIndex(a.seriesIndex),i=this.visualMapModel;if(i.isTargetSeries(n)){var o=n.getData(a.dataType),s=o.getStore().get(i.getDataDimensionIndex(o),a.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var a=this._shapes.handleLabels;if(a)for(var n=0;n=0&&(i.dimension=o,a.push(i))}}),r.getData().setVisual("visualMeta",a)}}];function eY(r,e,t,a){for(var n=e.targetVisuals[a],i=ae.prepareVisualTypes(n),o={color:Ll(r.getData(),"color")},s=0,l=i.length;s0:e.splitNumber>0)||e.calculable)?"continuous":"piecewise"}),r.registerAction(Q8,J8),C(tY,function(e){r.registerVisual(r.PRIORITY.VISUAL.COMPONENT,e)}),r.registerPreprocessor(rY))}function jI(r){r.registerComponentModel(X8),r.registerComponentView(K8),KI(r)}var aY=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._pieceList=[],t}return e.prototype.optionUpdated=function(t,a){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var n=this._mode=this._determineMode();this._pieceList=[],nY[this._mode].call(this,this._pieceList),this._resetSelected(t,a);var i=this.option.categories;this.resetVisual(function(o,s){n==="categories"?(o.mappingMethod="category",o.categories=et(i)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=G(this._pieceList,function(l){return l=et(l),s!=="inRange"&&(l.visual=null),l}))})},e.prototype.completeVisualOption=function(){var t=this.option,a={},n=ae.listVisualTypes(),i=this.isCategory();C(t.pieces,function(s){C(n,function(l){s.hasOwnProperty(l)&&(a[l]=1)})}),C(a,function(s,l){var u=!1;C(this.stateList,function(f){u=u||o(t,f,l)||o(t.target,f,l)},this),!u&&C(this.stateList,function(f){(t[f]||(t[f]={}))[l]=$I.get(l,f==="inRange"?"active":"inactive",i)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}r.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,a){var n=this.option,i=this._pieceList,o=(a?n:t).selected||{};if(n.selected=o,C(i,function(l,u){var f=this.getSelectedMapKey(l);o.hasOwnProperty(f)||(o[f]=!0)},this),n.selectedMode==="single"){var s=!1;C(i,function(l,u){var f=this.getSelectedMapKey(l);o[f]&&(s?o[f]=!1:s=!0)},this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return this._mode==="categories"?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=et(t)},e.prototype.getValueState=function(t){var a=ae.findPieceIndex(t,this._pieceList);return a!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[a])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var a=[],n=this._pieceList;return this.eachTargetSeries(function(i){var o=[],s=i.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var f=ae.findPieceIndex(l,n);f===t&&o.push(u)},this),a.push({seriesId:i.id,dataIndex:o})},this),a},e.prototype.getRepresentValue=function(t){var a;if(this.isCategory())a=t.value;else if(t.value!=null)a=t.value;else{var n=t.interval||[];a=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return a},e.prototype.getVisualMeta=function(t){if(this.isCategory())return;var a=[],n=["",""],i=this;function o(f,h){var v=i.getRepresentValue({interval:f});h||(h=i.getValueState(v));var c=t(v,h);f[0]===-1/0?n[0]=c:f[1]===1/0?n[1]=c:a.push({value:f[0],color:c},{value:f[1],color:c})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return C(s,function(f){var h=f.interval;h&&(h[0]>u&&o([u,h[0]],"outOfRange"),o(h.slice()),u=h[1])},this),{stops:a,outerColors:n}},e.type="visualMap.piecewise",e.defaultOption=on(nh.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(nh),nY={splitNumber:function(r){var e=this.option,t=Math.min(e.precision,20),a=this.getExtent(),n=e.splitNumber;n=Math.max(parseInt(n,10),1),e.splitNumber=n;for(var i=(a[1]-a[0])/n;+i.toFixed(t)!==i&&t<5;)t++;e.precision=t,i=+i.toFixed(t),e.minOpen&&r.push({interval:[-1/0,a[0]],close:[0,0]});for(var o=0,s=a[0];o","≥"][a[0]]];t.text=t.text||this.formatValueText(t.value!=null?t.value:t.interval,!1,n)},this)}};function ew(r,e){var t=r.inverse;(r.orient==="vertical"?!t:t)&&e.reverse()}var iY=function(r){k(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.doRender=function(){var t=this.group;t.removeAll();var a=this.visualMapModel,n=a.get("textGap"),i=a.textStyleModel,o=i.getFont(),s=i.getTextColor(),l=this._getItemAlign(),u=a.itemSize,f=this._getViewData(),h=f.endsText,v=ee(a.get("showLabel",!0),!h);h&&this._renderEndsText(t,h[0],u,v,l),C(f.viewPieceList,function(c){var p=c.piece,d=new at;d.onclick=X(this._onItemClick,this,p),this._enableHoverLink(d,c.indexInModelPieceList);var g=a.getRepresentValue(p);if(this._createItemSymbol(d,g,[0,0,u[0],u[1]]),v){var y=this.visualMapModel.getValueState(g);d.add(new bt({style:{x:l==="right"?-n:u[0]+n,y:u[1]/2,text:p.text,verticalAlign:"middle",align:l,font:o,fill:s,opacity:y==="outOfRange"?.5:1}}))}t.add(d)},this),h&&this._renderEndsText(t,h[1],u,v,l),Qn(a.get("orient"),t,a.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,a){var n=this;t.on("mouseover",function(){return i("highlight")}).on("mouseout",function(){return i("downplay")});var i=function(o){var s=n.visualMapModel;s.option.hoverLink&&n.api.dispatchAction({type:o,batch:ff(s.findTargetDataIndices(a),s)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,a=t.option;if(a.orient==="vertical")return qI(t,this.api,t.itemSize);var n=a.align;return(!n||n==="auto")&&(n="left"),n},e.prototype._renderEndsText=function(t,a,n,i,o){if(a){var s=new at,l=this.visualMapModel.textStyleModel;s.add(new bt({style:Nt(l,{x:i?o==="right"?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?o:"center",text:a})})),t.add(s)}},e.prototype._getViewData=function(){var t=this.visualMapModel,a=G(t.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),n=t.get("text"),i=t.get("orient"),o=t.get("inverse");return(i==="horizontal"?o:!o)?a.reverse():n&&(n=n.slice().reverse()),{viewPieceList:a,endsText:n}},e.prototype._createItemSymbol=function(t,a,n){t.add(Zt(this.getControllerVisual(a,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(a,"color")))},e.prototype._onItemClick=function(t){var a=this.visualMapModel,n=a.option,i=n.selectedMode;if(i){var o=et(n.selected),s=a.getSelectedMapKey(t);i==="single"||i===!0?(o[s]=!0,C(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},e.type="visualMap.piecewise",e}(ZI);function QI(r){r.registerComponentModel(aY),r.registerComponentView(iY),KI(r)}function oY(r){gt(jI),gt(QI)}var sY={label:{enabled:!0},decal:{show:!1}},rw=Tt(),lY={};function uY(r,e){var t=r.getModel("aria");if(!t.get("enabled"))return;var a=et(sY);st(a.label,r.getLocaleModel().get("aria"),!1),st(t.option,a,!1),n(),i();function n(){var u=t.getModel("decal"),f=u.get("show");if(f){var h=Z();r.eachSeries(function(v){if(!v.isColorBySeries()){var c=h.get(v.type);c||(c={},h.set(v.type,c)),rw(v).scope=c}}),r.eachRawSeries(function(v){if(r.isSeriesFiltered(v))return;if(K(v.enableAriaDecal)){v.enableAriaDecal();return}var c=v.getData();if(v.isColorBySeries()){var m=ad(v.ecModel,v.name,lY,r.getSeriesCount()),_=c.getVisual("decal");c.setVisual("decal",S(_,m))}else{var p=v.getRawData(),d={},g=rw(v).scope;c.each(function(b){var x=c.getRawIndex(b);d[x]=b});var y=p.count();p.each(function(b){var x=d[b],w=p.getName(b)||b+"",T=ad(v.ecModel,w,g,y),A=c.getItemVisual(x,"decal");c.setItemVisual(x,"decal",S(A,T))})}function S(b,x){var w=b?V(V({},x),b):x;return w.dirty=!0,w}})}}function i(){var u=e.getZr().dom;if(u){var f=r.getLocaleModel().get("aria"),h=t.getModel("label");if(h.option=Q(h.option,f),!!h.get("enabled")){if(h.get("description")){u.setAttribute("aria-label",h.get("description"));return}var v=r.getSeriesCount(),c=h.get(["data","maxCount"])||10,p=h.get(["series","maxCount"])||10,d=Math.min(v,p),g;if(!(v<1)){var y=s();if(y){var m=h.get(["general","withTitle"]);g=o(m,{title:y})}else g=h.get(["general","withoutTitle"]);var _=[],S=v>1?h.get(["series","multiple","prefix"]):h.get(["series","single","prefix"]);g+=o(S,{seriesCount:v}),r.eachSeries(function(T,A){if(A1?h.get(["series","multiple",I]):h.get(["series","single",I]),D=o(D,{seriesId:T.seriesIndex,seriesName:T.get("name"),seriesType:l(T.subType)});var L=T.getData();if(L.count()>c){var P=h.get(["data","partialData"]);D+=o(P,{displayCnt:c})}else D+=h.get(["data","allData"]);for(var R=h.get(["data","separator","middle"]),E=h.get(["data","separator","end"]),N=[],O=0;O":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},vY=function(){function r(e){var t=this._condVal=U(e)?new RegExp(e):Aw(e)?e:null;if(t==null){var a="";It(a)}}return r.prototype.evaluate=function(e){var t=typeof e;return U(t)?this._condVal.test(e):Ct(t)?this._condVal.test(e+""):!1},r}(),cY=function(){function r(){}return r.prototype.evaluate=function(){return this.value},r}(),pY=function(){function r(){}return r.prototype.evaluate=function(){for(var e=this.children,t=0;t2&&a.push(n),n=[L,P]}function f(L,P,R,E){qi(L,R)&&qi(P,E)||n.push(L,P,R,E,R,E)}function h(L,P,R,E,N,O){var B=Math.abs(P-L),F=Math.tan(B/4)*4/3,H=PT:M2&&a.push(n),a}function ig(r,e,t,a,n,i,o,s,l,u){if(qi(r,t)&&qi(e,a)&&qi(n,o)&&qi(i,s)){l.push(o,s);return}var f=2/u,h=f*f,v=o-r,c=s-e,p=Math.sqrt(v*v+c*c);v/=p,c/=p;var d=t-r,g=a-e,y=n-o,m=i-s,_=d*d+g*g,S=y*y+m*m;if(_=0&&T=0){l.push(o,s);return}var A=[],D=[];ja(r,t,n,o,.5,A),ja(e,a,i,s,.5,D),ig(A[0],D[0],A[1],D[1],A[2],D[2],A[3],D[3],l,u),ig(A[4],D[4],A[5],D[5],A[6],D[6],A[7],D[7],l,u)}function MY(r,e){var t=ng(r),a=[];e=e||1;for(var n=0;n0)for(var u=0;uMath.abs(u),h=tL([l,u],f?0:1,e),v=(f?s:u)/h.length,c=0;cn,o=tL([a,n],i?0:1,e),s=i?"width":"height",l=i?"height":"width",u=i?"x":"y",f=i?"y":"x",h=r[s]/o.length,v=0;v1?null:new ft(d*l+r,d*u+e)}function PY(r,e,t){var a=new ft;ft.sub(a,t,e),a.normalize();var n=new ft;ft.sub(n,r,e);var i=n.dot(a);return i}function zi(r,e){var t=r[r.length-1];t&&t[0]===e[0]&&t[1]===e[1]||r.push(e)}function RY(r,e,t){for(var a=r.length,n=[],i=0;io?(u.x=f.x=s+i/2,u.y=l,f.y=l+o):(u.y=f.y=l+o/2,u.x=s,f.x=s+i),RY(e,u,f)}function ih(r,e,t,a){if(t===1)a.push(e);else{var n=Math.floor(t/2),i=r(e);ih(r,i[0],n,a),ih(r,i[1],t-n,a)}return a}function EY(r,e){for(var t=[],a=0;a0;u/=2){var f=0,h=0;(r&u)>0&&(f=1),(e&u)>0&&(h=1),s+=u*u*(3*f^h),h===0&&(f===1&&(r=u-1-r,e=u-1-e),l=r,r=e,e=l)}return s}function lh(r){var e=1/0,t=1/0,a=-1/0,n=-1/0,i=G(r,function(s){var l=s.getBoundingRect(),u=s.getComputedTransform(),f=l.x+l.width/2+(u?u[4]:0),h=l.y+l.height/2+(u?u[5]:0);return e=Math.min(f,e),t=Math.min(h,t),a=Math.max(f,a),n=Math.max(h,n),[f,h]}),o=G(i,function(s,l){return{cp:s,z:HY(s[0],s[1],e,t,a,n),path:r[l]}});return o.sort(function(s,l){return s.z-l.z}).map(function(s){return s.path})}function aL(r){return NY(r.path,r.count)}function og(){return{fromIndividuals:[],toIndividuals:[],count:0}}function WY(r,e,t){var a=[];function n(b){for(var x=0;x=0;n--)if(!t[n].many.length){var l=t[s].many;if(l.length<=1)if(s)s=0;else return t;var i=l.length,u=Math.ceil(i/2);t[n].many=l.slice(u,i),t[s].many=l.slice(0,u),s++}return t}var YY={clone:function(r){for(var e=[],t=1-Math.pow(1-r.path.style.opacity,1/r.count),a=0;a0))return;var s=a.getModel("universalTransition").get("delay"),l=Object.assign({setToFinal:!0},o),u,f;hw(r)&&(u=r,f=e),hw(e)&&(u=e,f=r);function h(y,m,_,S,b){var x=y.many,w=y.one;if(x.length===1&&!b){var T=m?x[0]:w,A=m?w:x[0];if(oh(T))h({many:[T],one:A},!0,_,S,!0);else{var D=s?Q({delay:s(_,S)},l):l;xm(T,A,D),i(T,A,T,A,D)}}else for(var M=Q({dividePath:YY[t],individualDelay:s&&function(N,O,B,F){return s(N+_,S)}},l),I=m?WY(x,w,M):UY(w,x,M),L=I.fromIndividuals,P=I.toIndividuals,R=L.length,E=0;Ee.length,c=u?vw(f,u):vw(v?e:r,[v?r:e]),p=0,d=0;dnL))for(var i=a.getIndices(),o=0;o0&&x.group.traverse(function(T){T instanceof yt&&!T.animators.length&&T.animateFrom({style:{opacity:0}},w)})})}function yw(r){var e=r.getModel("universalTransition").get("seriesKey");return e||r.id}function mw(r){return z(r)?r.sort().join(","):r}function Oa(r){if(r.hostModel)return r.hostModel.getModel("universalTransition").get("divideShape")}function QY(r,e){var t=Z(),a=Z(),n=Z();return C(r.oldSeries,function(i,o){var s=r.oldDataGroupIds[o],l=r.oldData[o],u=yw(i),f=mw(u);a.set(f,{dataGroupId:s,data:l}),z(u)&&C(u,function(h){n.set(h,{key:f,dataGroupId:s,data:l})})}),C(e.updatedSeries,function(i){if(i.isUniversalTransitionEnabled()&&i.isAnimationEnabled()){var o=i.get("dataGroupId"),s=i.getData(),l=yw(i),u=mw(l),f=a.get(u);if(f)t.set(u,{oldSeries:[{dataGroupId:f.dataGroupId,divide:Oa(f.data),data:f.data}],newSeries:[{dataGroupId:o,divide:Oa(s),data:s}]});else if(z(l)){var h=[];C(l,function(p){var d=a.get(p);d.data&&h.push({dataGroupId:d.dataGroupId,divide:Oa(d.data),data:d.data})}),h.length&&t.set(u,{oldSeries:h,newSeries:[{dataGroupId:o,data:s,divide:Oa(s)}]})}else{var v=n.get(l);if(v){var c=t.get(v.key);c||(c={oldSeries:[{dataGroupId:v.dataGroupId,data:v.data,divide:Oa(v.data)}],newSeries:[]},t.set(v.key,c)),c.newSeries.push({dataGroupId:o,data:s,divide:Oa(s)})}}}}),t}function _w(r,e){for(var t=0;t=0&&n.push({dataGroupId:e.oldDataGroupIds[s],data:e.oldData[s],divide:Oa(e.oldData[s]),groupIdDim:o.dimension})}),C(Et(r.to),function(o){var s=_w(t.updatedSeries,o);if(s>=0){var l=t.updatedSeries[s].getData();i.push({dataGroupId:e.oldDataGroupIds[s],data:l,divide:Oa(l),groupIdDim:o.dimension})}}),n.length>0&&i.length>0&&iL(n,i,a)}function t7(r){r.registerUpdateLifecycle("series:beforeupdate",function(e,t,a){C(Et(a.seriesTransition),function(n){C(Et(n.to),function(i){for(var o=a.updatedSeries,s=0;s存放一些源码分析,以及一些其它非知识点,而是应用的造轮子(如线程池),或者其它扩展讲解。

    \\n"}');export{l as comp,d as data}; diff --git a/assets/index.html-BHEgHCm0.js b/assets/index.html-BHEgHCm0.js new file mode 100644 index 00000000..03d70dfc --- /dev/null +++ b/assets/index.html-BHEgHCm0.js @@ -0,0 +1 @@ +import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,d,o as n}from"./app-Ca-A-iaw.js";const r={};function c(a,e){return n(),t("div",null,e[0]||(e[0]=[d('

    此处存放作业

    • 文件名id + 日期数字。

      id :随意。

      日期数字:8 位数字,例如现在是 2024 年 7 月 31 日,那么日期数字则为:20240731

    • 后缀名:根据作业情况,随意。如果是普通代码,自然是 .cpp 后缀。


    1. 线程池作业存放在 thread_pool 文件夹中。
    ',4)]))}const p=o(r,[["render",c],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/homework/","title":"此处存放作业","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"createdTime":1722434274000,"updatedTime":1722434274000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":1}]},"readingTime":{"minutes":0.28,"words":84},"filePathRelative":"homework/README.md","localizedDate":"2024年7月31日","excerpt":"\\n
      \\n
    • \\n

      文件名id + 日期数字。

      \\n

      id :随意。

      \\n

      日期数字:8 位数字,例如现在是 2024 年 7 月 31 日,那么日期数字则为:20240731

      \\n
    • \\n
    • \\n

      后缀名:根据作业情况,随意。如果是普通代码,自然是 .cpp 后缀。

      \\n
    • \\n
    \\n
    \\n
      \\n
    1. 线程池作业存放在 thread_pool 文件夹中。
    2. \\n
    "}');export{p as comp,s as data}; diff --git a/assets/index.html-BNiJ94F3.js b/assets/index.html-BNiJ94F3.js new file mode 100644 index 00000000..6b766020 --- /dev/null +++ b/assets/index.html-BNiJ94F3.js @@ -0,0 +1 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as r,d as n,o}from"./app-Ca-A-iaw.js";const i="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E6%94%AF%E4%BB%98%E5%AE%9D10-BcbPWYKj.jpg",a="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E6%94%AF%E4%BB%98%E5%AE%9D20-ChMdJN1i.jpg",s="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E6%94%AF%E4%BB%98%E5%AE%9D88.88-cwJg-qu6.jpg",p={};function m(c,t){return o(),r("div",null,t[0]||(t[0]=[n('
    cppcppcpp

      我们会收集捐赠者进行感谢,所以请您捐赠了可以选择备注,或者联系我,或者直接在捐赠初始记录名单中进行评论。

    ',3)]))}const g=e(p,[["render",m],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/image/%E6%8D%90%E8%B5%A0/","title":"","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"createdTime":1709533660000,"updatedTime":1713362983000,"contributors":[{"name":"Suzukaze","email":"1027743497@qq.com","commits":1},{"name":"归故里","email":"3326284481@qq.com","commits":1}]},"readingTime":{"minutes":0.32,"words":96},"filePathRelative":"image/捐赠/README.md","localizedDate":"2024年3月4日","excerpt":"
    \\n\\n\\n\\n
    \\n
    \\n

      我们会收集捐赠者进行感谢,所以请您捐赠了可以选择备注,或者联系我,或者直接在捐赠初始记录名单中进行评论。

    \\n"}');export{g as comp,u as data}; diff --git a/assets/index.html-BV8xYf6R.js b/assets/index.html-BV8xYf6R.js new file mode 100644 index 00000000..7adca6e1 --- /dev/null +++ b/assets/index.html-BV8xYf6R.js @@ -0,0 +1 @@ +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,e as o,o as n,r}from"./app-Ca-A-iaw.js";const l={};function s(c,i){const e=r("Catalog");return n(),a("div",null,[o(e)])}const f=t(l,[["render",s],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/image/","title":"Image","lang":"zh-CN","frontmatter":{"title":"Image","article":false,"feed":false,"sitemap":false,"gitInclude":[]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"excerpt":""}');export{f as comp,d as data}; diff --git a/assets/index.html-C6Z_qkjf.js b/assets/index.html-C6Z_qkjf.js new file mode 100644 index 00000000..679a72f1 --- /dev/null +++ b/assets/index.html-C6Z_qkjf.js @@ -0,0 +1,16 @@ +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,d as n,o as e}from"./app-Ca-A-iaw.js";const l={};function t(h,s){return e(),a("div",null,s[0]||(s[0]=[n(`

    阅读须知

      本套教程侧重点在于使用 C++ 并发支持库进行多线程编程。我们假设读者最低水平为:C++11 + STL + template,可能没有接触过 C++ 标准并发库,假设略微了解操作系统基本知识。

      我们强调了模板,因为并发支持库的很多设施其实现是较为简单的,概念与使用,再结合源码讲解会更加简单直观,然而要想阅读学习源码,模板的知识必不可少。不需要模板的水平有多高,也不需要会什么元编程,但是基本的需求得能做到,得会,这里推荐一下:《现代C++模板教程》

      本教程不保证你学习之后的成果,不过依然可以自信地说:本教程在中文社区的同类型教程中是绝对的第一。事实上只需要一句话就可以表达了——伟大无需多言

    学习注意事项

      我们的教程中常包含许多外部链接,这并非当前描述不足或者不够严谨,而是为了考虑读者的水平和可能的扩展学习需求。同时,也希望能让读者避免获取二手知识与理解,我们提供的链接基本都是较为专业的文档或官方网站。

      虽然教程名为《现代 C++ 并发编程教程》,但我们也扩展涉及了许多其他知识,包括但不限于:Win32、POSIX API;MSVC STL、libstdc++、libc++ 对标准库的实现;GCC 与 MSVC 的编译器扩展,以及 Clang 对它们的兼容;使用 CMake + Qt 构建带 UI 的程序,展示多线程异步的必要性;不同架构的内存模型(例如 x86 架构内存模型:Total Store Order (TSO),较为严格的内存模型)。

      既然强调了“现代”,那自然是全方面的,具体的读者会在学习中感受到的。

      另外我们的代码都会测试三大编译器 ClangGCCMSVC。通常都会是最新的,Clang18GCC14。我们的教程中常常会提供 Complier Explorer 的运行测试链接以确保正确性,以及方便读者的测试与学习。如果你对此网站的使用不熟悉,可以阅读使用文档

    代码风格

      我们的代码风格较为简洁明了,命名全部使用下划线连接,而不是驼峰命名法。花括号通常只占一行,简短的代码可以不额外占行。一般初始化时使用 {},而非 () 或者 = 。这样简单直观,避免歧义和许多问题。#include 引入头文件时需要在尖括号或引号前后加空格。

    #include <iostream>
    +
    +struct move_only{
    +    move_only() { std::puts("默认构造"); }
    +    move_only(move_only&&)noexcept { std::puts("移动构造"); }
    +    move_only& operator=(move_only&&) noexcept {
    +        std::puts("移动赋值");
    +        return *this;
    +    }
    +    move_only(const move_only&) = delete;
    +};
    +
    +int main(){
    +    move_only m{};
    +    char buffer[1024]{} // 全部初始化为 0
    +}

    如果是标量类型,可能考虑使用复制初始化,而非 {},如:int n = 0;

    总结

      本教程长期维护,接受 pr 与 issue。

      好了,稍微了解了一下,我们可以开始进入正式的学习内容了。

    `,16)]))}const r=i(l,[["render",t],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/md/","title":"阅读须知","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"学习注意事项","slug":"学习注意事项","link":"#学习注意事项","children":[]},{"level":2,"title":"代码风格","slug":"代码风格","link":"#代码风格","children":[]},{"level":2,"title":"总结","slug":"总结","link":"#总结","children":[]}],"git":{"createdTime":1709094546000,"updatedTime":1725764028000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":6},{"name":"归故里","email":"3326284481@qq.com","commits":2}]},"readingTime":{"minutes":2.88,"words":863},"filePathRelative":"md/README.md","localizedDate":"2024年2月28日","excerpt":"\\n

      本套教程侧重点在于使用 C++ 并发支持库进行多线程编程。我们假设读者最低水平为:C++11 + STL + template,可能没有接触过 C++ 标准并发库,假设略微了解操作系统基本知识。

    \\n

      我们强调了模板,因为并发支持库的很多设施其实现是较为简单的,概念与使用,再结合源码讲解会更加简单直观,然而要想阅读学习源码,模板的知识必不可少。不需要模板的水平有多高,也不需要会什么元编程,但是基本的需求得能做到,得会,这里推荐一下:《现代C++模板教程》

    "}');export{r as comp,d as data}; diff --git a/assets/index.html-CumviD6U.js b/assets/index.html-CumviD6U.js new file mode 100644 index 00000000..2a0003d4 --- /dev/null +++ b/assets/index.html-CumviD6U.js @@ -0,0 +1 @@ +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,a as e,b as r,d as a,o as p}from"./app-Ca-A-iaw.js";const i="/ModernCpp-ConcurrentProgramming-Tutorial/image/%E7%8E%B0%E4%BB%A3C++%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%95%99%E7%A8%8B.png",s="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E7%8C%AB%E7%8C%AB%E8%99%AB%E6%97%8B%E8%BD%AC-xmR8DCB1.jpg",c="/ModernCpp-ConcurrentProgramming-Tutorial/assets/%E8%B5%9E%E5%8A%A9-Bu8SX5TV.jpg",m={};function l(g,n){return p(),o("div",null,n[0]||(n[0]=[e("div",{align:"center"},[e("a",{herf:"https://zh.cppreference.com/w/cpp/thread"},[e("img",{src:i,width:"512px",alt:"cpp"})]),e("h1",{id:"现代c-并发编程教程",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#现代c-并发编程教程"},[e("span",null,"现代C++并发编程教程")])]),e("p",null,[r("本仓库用来存放 B 站课程"),e("a",{href:""},"《现代 C++ 并发编程教程》"),r("的教案、代码。")]),e("p",null,[r("不管是否购买课程,任何组织和个人遵守 "),e("a",{href:"https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh-hans",target:"_blank",rel:"noopener noreferrer"},"CC BY-NC-ND 4.0"),r(" 协议均可随意使用学习。")]),e("p",null,[e("a",{href:"https://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/tree/main/image/%E6%8D%90%E8%B5%A0",target:"_blank",rel:"noopener noreferrer"},"捐赠"),r("、"),e("a",{href:"https://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/issues",target:"_blank",rel:"noopener noreferrer"},"issues"),r("、"),e("a",{href:"https://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/pulls",target:"_blank",rel:"noopener noreferrer"},"pr"),r(" 均会在致谢列表中"),e("strong",null,"铭记您的贡献"),r("。")])],-1),a('

      国内的 C++ 并发编程的教程并不稀少,不管是书籍、博客、视频。然而大多数是粗糙的、不够准确、复杂的。而我们想以更加现代简单准确的方式进行教学。

      我们在教学中可能常常为您展示部分标准库源码,自己手动实现一些库,这是必须的,希望您是已经较为熟练使用模板(如果没有,可以先学习 现代C++模板教程)。阅读源码可以帮助我们更轻松的理解标准库设施的使用与原理。

      本教程假设开发者的最低水平为:C++11 + STL + template

      虽强调现代,但不用担心,我们几乎是从头教学,即使你从来没使用过 C++ 进行多线程编程,也不成问题。

      我们希望您的编译器版本和标准尽可能的高,我们的代码均会测试三大编译器 gcc、clang、msvc。需要更高的标准会进行强调。

    猫猫虫
    猫猫虫

    如果你觉得本仓库对你有所帮助,可以通过支付宝赞助白老师,激励白老师有更多的精力和信心维护本仓库。

    提示

    每一位开发者赞助 30,白老师一天的食品安全就有了着落。

    cpp',9)]))}const u=t(m,[["render",l],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/","title":"现代C++并发编程教程","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"createdTime":1709094546000,"updatedTime":1722588611000,"contributors":[{"name":"mq白","email":"3326284481@qq.com","commits":7},{"name":"归故里","email":"3326284481@qq.com","commits":5},{"name":"Suzukaze","email":"1027743497@qq.com","commits":1}]},"readingTime":{"minutes":1.69,"words":507},"filePathRelative":"README.md","localizedDate":"2024年2月28日","excerpt":"
    \\n\\n\\"cpp\\"\\n\\n

    现代C++并发编程教程

    \\n

    本仓库用来存放 B 站课程《现代 C++ 并发编程教程》的教案、代码。

    \\n

    不管是否购买课程,任何组织和个人遵守 CC BY-NC-ND 4.0 协议均可随意使用学习。

    \\n

    捐赠issuespr 均会在致谢列表中铭记您的贡献

    \\n
    "}');export{u as comp,C as data}; diff --git a/assets/infoDiagram-94cd232f-CmPJgRj5.js b/assets/infoDiagram-94cd232f-CmPJgRj5.js new file mode 100644 index 00000000..39b4b14b --- /dev/null +++ b/assets/infoDiagram-94cd232f-CmPJgRj5.js @@ -0,0 +1,7 @@ +import{l as Y,aJ as D,i as M}from"./mermaid.core-Bc1j4tiv.js";import"./app-Ca-A-iaw.js";var O=function(){var a=function(u,t,e,n){for(e=e||{},n=u.length;n--;e[u[n]]=t);return e},f=[6,9,10],m={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,d){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},a(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},a(f,[2,3]),a(f,[2,4]),a(f,[2,5]),a(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],d=this.table,P="",v=0,L=0,N=2,T=1,R=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(p.yy[E]=this.yy[E]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var z=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var y;return y=s.pop()||o.lex()||T,typeof y!="number"&&(y instanceof Array&&(s=y,y=s.pop()),y=e.symbols_[y]||y),y}for(var l,g,h,w,_={},b,c,F,S;;){if(g=n[n.length-1],this.defaultActions[g]?h=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),h=d[g]&&d[g][l]),typeof h>"u"||!h.length||!h[0]){var A="";S=[];for(b in d[g])this.terminals_[b]&&b>N&&S.push("'"+this.terminals_[b]+"'");o.showPosition?A="Parse error on line "+(v+1)+`: +`+o.showPosition()+` +Expecting `+S.join(", ")+", got '"+(this.terminals_[l]||l)+"'":A="Parse error on line "+(v+1)+": Unexpected "+(l==T?"end of input":"'"+(this.terminals_[l]||l)+"'"),this.parseError(A,{text:o.match,token:this.terminals_[l]||l,line:o.yylineno,loc:I,expected:S})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+l);switch(h[0]){case 1:n.push(l),r.push(o.yytext),i.push(o.yylloc),n.push(h[1]),l=null,L=o.yyleng,P=o.yytext,v=o.yylineno,I=o.yylloc;break;case 2:if(c=this.productions_[h[1]][1],_.$=r[r.length-c],_._$={first_line:i[i.length-(c||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(c||1)].first_column,last_column:i[i.length-1].last_column},z&&(_._$.range=[i[i.length-(c||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(_,[P,L,v,p.yy,h[1],r,i].concat(R)),typeof w<"u")return w;c&&(n=n.slice(0,-1*c*2),r=r.slice(0,-1*c),i=i.slice(0,-1*c)),n.push(this.productions_[h[1]][0]),r.push(_.$),i.push(_._$),F=d[n[n.length-2]][n[n.length-1]],n.push(F);break;case 3:return!0}}return!0}},k=function(){var u={EOF:1,parseError:function(e,n){if(this.yy.parser)this.yy.parser.parseError(e,n);else throw new Error(e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);return e?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+e+"^"},test_match:function(t,e){var n,s,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),s=t[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in r)this[i]=r[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,n,s;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),i=0;ie[0].length)){if(e=n,s=i,this.options.backtrack_lexer){if(t=this.test_match(n,r[i]),t!==!1)return t;if(this._backtrack){e=!1;continue}else return!1}else if(!this.options.flex)break}return e?(t=this.test_match(e,r[s]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,n,s,r){switch(s){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return u}();m.lexer=k;function x(){this.yy={}}return x.prototype=m,m.Parser=x,new x}();O.parser=O;const B=O,j={info:!1};let $=j.info;const J=a=>{$=a},V=()=>$,X=()=>{$=j.info},q={clear:X,setInfo:J,getInfo:V},C=(a,f,m)=>{Y.debug(`rendering info diagram +`+a);const k=D(f);M(k,100,400,!0),k.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${m}`)},G={draw:C},Q={parser:B,db:q,renderer:G};export{Q as diagram}; diff --git a/assets/init-Gi6I4Gst.js b/assets/init-Gi6I4Gst.js new file mode 100644 index 00000000..d44de941 --- /dev/null +++ b/assets/init-Gi6I4Gst.js @@ -0,0 +1 @@ +function t(e,a){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(a).domain(e);break}return this}export{t as i}; diff --git a/assets/journeyDiagram-6625b456-C95pQKsn.js b/assets/journeyDiagram-6625b456-C95pQKsn.js new file mode 100644 index 00000000..99bbe91c --- /dev/null +++ b/assets/journeyDiagram-6625b456-C95pQKsn.js @@ -0,0 +1,139 @@ +import{c as C,C as yt,D as ft,s as dt,g as pt,b as gt,a as mt,E as xt,h as W,i as kt}from"./mermaid.core-Bc1j4tiv.js";import{d as _t,f as bt,a as vt,g as it}from"./svgDrawCommon-5e1cfd1d-B4aG73a4.js";import{a as Q}from"./arc-BDtf7cdN.js";import"./app-Ca-A-iaw.js";import"./path-CbwjOpE9.js";var G=function(){var t=function(p,s,r,a){for(r=r||{},a=p.length;a--;r[p[a]]=s);return r},e=[6,8,10,11,12,14,16,17,18],i=[1,9],l=[1,10],n=[1,11],h=[1,12],c=[1,13],f=[1,14],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(s,r,a,u,d,o,w){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:function(s,r){if(r.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=r,a}},parse:function(s){var r=this,a=[0],u=[],d=[null],o=[],w=this.table,k="",R=0,Z=0,lt=2,J=1,ct=o.slice.call(arguments,1),x=Object.create(this.lexer),S={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(S.yy[z]=this.yy[z]);x.setInput(s,S.yy),S.yy.lexer=x,S.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var Y=x.yylloc;o.push(Y);var ht=x.options&&x.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var T;return T=u.pop()||x.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=r.symbols_[T]||T),T}for(var _,E,b,O,I={},N,$,K,B;;){if(E=a[a.length-1],this.defaultActions[E]?b=this.defaultActions[E]:((_===null||typeof _>"u")&&(_=ut()),b=w[E]&&w[E][_]),typeof b>"u"||!b.length||!b[0]){var q="";B=[];for(N in w[E])this.terminals_[N]&&N>lt&&B.push("'"+this.terminals_[N]+"'");x.showPosition?q="Parse error on line "+(R+1)+`: +`+x.showPosition()+` +Expecting `+B.join(", ")+", got '"+(this.terminals_[_]||_)+"'":q="Parse error on line "+(R+1)+": Unexpected "+(_==J?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(q,{text:x.match,token:this.terminals_[_]||_,line:x.yylineno,loc:Y,expected:B})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+_);switch(b[0]){case 1:a.push(_),d.push(x.yytext),o.push(x.yylloc),a.push(b[1]),_=null,Z=x.yyleng,k=x.yytext,R=x.yylineno,Y=x.yylloc;break;case 2:if($=this.productions_[b[1]][1],I.$=d[d.length-$],I._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},ht&&(I._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),O=this.performAction.apply(I,[k,Z,R,S.yy,b[1],d,o].concat(ct)),typeof O<"u")return O;$&&(a=a.slice(0,-1*$*2),d=d.slice(0,-1*$),o=o.slice(0,-1*$)),a.push(this.productions_[b[1]][0]),d.push(I.$),o.push(I._$),K=w[a[a.length-2]][a[a.length-1]],a.push(K);break;case 3:return!0}}return!0}},m=function(){var p={EOF:1,parseError:function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},setInput:function(s,r){return this.yy=r||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var r=s.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var r=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===u.length?this.yylloc.first_column:0)+u[u.length-a.length].length-a[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var s=this.pastInput(),r=new Array(s.length+1).join("-");return s+this.upcomingInput()+` +`+r+"^"},test_match:function(s,r){var a,u,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),u=s[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],a=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var o in d)this[o]=d[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,r,a,u;this._more||(this.yytext="",this.match="");for(var d=this._currentRules(),o=0;or[0].length)){if(r=a,u=o,this.options.backtrack_lexer){if(s=this.test_match(a,d[o]),s!==!1)return s;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(s=this.test_match(r,d[u]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,a,u,d){switch(u){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return p}();y.lexer=m;function g(){this.yy={}}return g.prototype=y,y.Parser=g,new g}();G.parser=G;const wt=G;let A="";const H=[],V=[],F=[],$t=function(){H.length=0,V.length=0,A="",F.length=0,xt()},Tt=function(t){A=t,H.push(t)},Mt=function(){return H},St=function(){let t=D();const e=100;let i=0;for(;!t&&i{i.people&&t.push(...i.people)}),[...new Set(t)].sort()},Pt=function(t,e){const i=e.substr(1).split(":");let l=0,n=[];i.length===1?(l=Number(i[0]),n=[]):(l=Number(i[0]),n=i[1].split(","));const h=n.map(f=>f.trim()),c={section:A,type:A,people:h,task:t,score:l};F.push(c)},Ct=function(t){const e={section:A,type:A,description:t,task:t,classes:[]};V.push(e)},D=function(){const t=function(i){return F[i].processed};let e=!0;for(const[i,l]of F.entries())t(i),e=e&&l.processed;return e},It=function(){return Et()},tt={getConfig:()=>C().journey,clear:$t,setDiagramTitle:yt,getDiagramTitle:ft,setAccTitle:dt,getAccTitle:pt,setAccDescription:gt,getAccDescription:mt,addSection:Tt,getSections:Mt,getTasks:St,addTask:Pt,addTaskOrg:Ct,getActors:It},At=t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,Vt=At,U=function(t,e){return _t(t,e)},Ft=function(t,e){const l=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=t.append("g");n.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const m=Q().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function c(y){const m=Q().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function f(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return e.score>3?h(n):e.score<3?c(n):f(n),l},rt=function(t,e){const i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),i.class!==void 0&&i.attr("class",i.class),e.title!==void 0&&i.append("title").text(e.title),i},at=function(t,e){return bt(t,e)},Lt=function(t,e){function i(n,h,c,f,y){return n+","+h+" "+(n+c)+","+h+" "+(n+c)+","+(h+f-y)+" "+(n+c-y*1.2)+","+(h+f)+" "+n+","+(h+f)}const l=t.append("polygon");l.attr("points",i(e.x,e.y,50,20,7)),l.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,at(t,e)},Rt=function(t,e,i){const l=t.append("g"),n=it();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),n.height=i.height,n.class="journey-section section-type-"+e.num,n.rx=3,n.ry=3,U(l,n),ot(i)(e.text,l,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+e.num},i,e.colour)};let et=-1;const Nt=function(t,e,i){const l=e.x+i.width/2,n=t.append("g");et++;const h=300+5*30;n.append("line").attr("id","task"+et).attr("x1",l).attr("y1",e.y).attr("x2",l).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Ft(n,{cx:l,cy:300+(5-e.score)*30,score:e.score});const c=it();c.x=e.x,c.y=e.y,c.fill=e.fill,c.width=i.width,c.height=i.height,c.class="task task-type-"+e.num,c.rx=3,c.ry=3,U(n,c);let f=e.x+14;e.people.forEach(y=>{const m=e.actors[y].color,g={cx:f,cy:e.y,r:7,fill:m,stroke:"#000",title:y,pos:e.actors[y].position};rt(n,g),f+=10}),ot(i)(e.task,n,c.x,c.y,c.width,c.height,{class:"task"},i,e.colour)},Bt=function(t,e){vt(t,e)},ot=function(){function t(n,h,c,f,y,m,g,p){const s=h.append("text").attr("x",c+y/2).attr("y",f+m/2+5).style("font-color",p).style("text-anchor","middle").text(n);l(s,g)}function e(n,h,c,f,y,m,g,p,s){const{taskFontSize:r,taskFontFamily:a}=p,u=n.split(//gi);for(let d=0;d{const n=M[l].color,h={cx:20,cy:i,r:7,fill:n,stroke:"#000",pos:M[l].position};L.drawCircle(t,h);const c={x:40,y:i+7,fill:"#666",text:l,textMargin:e.boxTextMargin|5};L.drawText(t,c),i+=20})}const j=C().journey,P=j.leftMargin,Ot=function(t,e,i,l){const n=C().journey,h=C().securityLevel;let c;h==="sandbox"&&(c=W("#i"+e));const f=h==="sandbox"?W(c.nodes()[0].contentDocument.body):W("body");v.init();const y=f.select("#"+e);L.initGraphics(y);const m=l.db.getTasks(),g=l.db.getDiagramTitle(),p=l.db.getActors();for(const o in M)delete M[o];let s=0;p.forEach(o=>{M[o]={color:n.actorColours[s%n.actorColours.length],position:s},s++}),Yt(y),v.insert(0,0,P,Object.keys(M).length*50),qt(y,m,0);const r=v.getBounds();g&&y.append("text").text(g).attr("x",P).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const a=r.stopy-r.starty+2*n.diagramMarginY,u=P+r.stopx+2*n.diagramMarginX;kt(y,a,u,n.useMaxWidth),y.append("line").attr("x1",P).attr("y1",n.height*4).attr("x2",u-P-4).attr("y2",n.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const d=g?70:0;y.attr("viewBox",`${r.startx} -25 ${u} ${a+d}`),y.attr("preserveAspectRatio","xMinYMin meet"),y.attr("height",a+d+25)},v={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,i,l){t[e]===void 0?t[e]=i:t[e]=l(i,t[e])},updateBounds:function(t,e,i,l){const n=C().journey,h=this;let c=0;function f(y){return function(g){c++;const p=h.sequenceItems.length-c+1;h.updateVal(g,"starty",e-p*n.boxMargin,Math.min),h.updateVal(g,"stopy",l+p*n.boxMargin,Math.max),h.updateVal(v.data,"startx",t-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopx",i+p*n.boxMargin,Math.max),h.updateVal(g,"startx",t-p*n.boxMargin,Math.min),h.updateVal(g,"stopx",i+p*n.boxMargin,Math.max),h.updateVal(v.data,"starty",e-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopy",l+p*n.boxMargin,Math.max)}}this.sequenceItems.forEach(f())},insert:function(t,e,i,l){const n=Math.min(t,i),h=Math.max(t,i),c=Math.min(e,l),f=Math.max(e,l);this.updateVal(v.data,"startx",n,Math.min),this.updateVal(v.data,"starty",c,Math.min),this.updateVal(v.data,"stopx",h,Math.max),this.updateVal(v.data,"stopy",f,Math.max),this.updateBounds(n,c,h,f)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},X=j.sectionFills,st=j.sectionColours,qt=function(t,e,i){const l=C().journey;let n="";const h=l.height*2+l.diagramMarginY,c=i+h;let f=0,y="#CCC",m="black",g=0;for(const[p,s]of e.entries()){if(n!==s.section){y=X[f%X.length],g=f%X.length,m=st[f%st.length];let a=0;const u=s.section;for(let o=p;o(M[u]&&(a[u]=M[u]),a),{});s.x=p*l.taskMargin+p*l.width+P,s.y=c,s.width=l.diagramMarginX,s.height=l.diagramMarginY,s.colour=m,s.fill=y,s.num=g,s.actors=r,L.drawTask(t,s,l),v.insert(s.x,s.y,s.x+s.width+l.taskMargin,300+5*30)}},nt={setConf:zt,draw:Ot},Zt={parser:wt,db:tt,renderer:nt,styles:Vt,init:t=>{nt.setConf(t.journey),tt.clear()}};export{Zt as diagram}; diff --git a/assets/katex-CvgdMzdh.js b/assets/katex-CvgdMzdh.js new file mode 100644 index 00000000..b7fdcb9e --- /dev/null +++ b/assets/katex-CvgdMzdh.js @@ -0,0 +1,261 @@ +class u0{constructor(e,t,a){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=a}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new u0(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}}class f0{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new f0(t,u0.range(this,e))}}class M{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var a="KaTeX parse error: "+e,n,s,o=t&&t.loc;if(o&&o.start<=o.end){var h=o.lexer.input;n=o.start,s=o.end,n===h.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var c=h.slice(n,s).replace(/[^]/g,"$&̲"),p;n>15?p="…"+h.slice(n-15,n):p=h.slice(0,n);var g;s+15":">","<":"<",'"':""","'":"'"},ba=/[&><"']/g;function ya(r){return String(r).replace(ba,e=>ga[e])}var pr=function r(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?r(e.body[0]):e:e.type==="font"?r(e.body):e},xa=function(e){var t=pr(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},wa=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},ka=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},q={contains:da,deflt:fa,escape:ya,hyphenate:va,getBaseElem:pr,isCharacterBox:xa,protocolFromUrl:ka},ze={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:r=>"#"+r},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(r,e)=>(e.push(r),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:r=>Math.max(0,r),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:r=>Math.max(0,r),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:r=>Math.max(0,r),cli:"-e, --max-expand ",cliProcessor:r=>r==="Infinity"?1/0:parseInt(r)},globalGroup:{type:"boolean",cli:!1}};function Sa(r){if(r.default)return r.default;var e=r.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class ct{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var t in ze)if(ze.hasOwnProperty(t)){var a=ze[t];this[t]=e[t]!==void 0?a.processor?a.processor(e[t]):e[t]:Sa(a)}}reportNonstrict(e,t,a){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,a)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new M("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),a);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,a){var n=this.strict;if(typeof n=="function")try{n=n(e,t,a)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var t=q.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var a=typeof this.trust=="function"?this.trust(e):this.trust;return!!a}}class O0{constructor(e,t,a){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=a}sup(){return y0[Ma[this.id]]}sub(){return y0[za[this.id]]}fracNum(){return y0[Aa[this.id]]}fracDen(){return y0[Ta[this.id]]}cramp(){return y0[Ba[this.id]]}text(){return y0[Da[this.id]]}isTight(){return this.size>=2}}var dt=0,Te=1,_0=2,T0=3,le=4,d0=5,ee=6,n0=7,y0=[new O0(dt,0,!1),new O0(Te,0,!0),new O0(_0,1,!1),new O0(T0,1,!0),new O0(le,2,!1),new O0(d0,2,!0),new O0(ee,3,!1),new O0(n0,3,!0)],Ma=[le,d0,le,d0,ee,n0,ee,n0],za=[d0,d0,d0,d0,n0,n0,n0,n0],Aa=[_0,T0,le,d0,ee,n0,ee,n0],Ta=[T0,T0,d0,d0,n0,n0,n0,n0],Ba=[Te,Te,T0,T0,d0,d0,n0,n0],Da=[dt,Te,_0,T0,_0,T0,_0,T0],R={DISPLAY:y0[dt],TEXT:y0[_0],SCRIPT:y0[le],SCRIPTSCRIPT:y0[ee]},at=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Ca(r){for(var e=0;e=n[0]&&r<=n[1])return t.name}return null}var Ae=[];at.forEach(r=>r.blocks.forEach(e=>Ae.push(...e)));function vr(r){for(var e=0;e=Ae[e]&&r<=Ae[e+1])return!0;return!1}var Q0=80,Na=function(e,t){return"M95,"+(622+e+t)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},qa=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Ea=function(e,t){return"M983 "+(10+e+t)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Ra=function(e,t){return"M424,"+(2398+e+t)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+t+` +h400000v`+(40+e)+"h-400000z"},Ia=function(e,t){return"M473,"+(2713+e+t)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},Oa=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},Fa=function(e,t,a){var n=a-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` +H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},Ha=function(e,t,a){t=1e3*t;var n="";switch(e){case"sqrtMain":n=Na(t,Q0);break;case"sqrtSize1":n=qa(t,Q0);break;case"sqrtSize2":n=Ea(t,Q0);break;case"sqrtSize3":n=Ra(t,Q0);break;case"sqrtSize4":n=Ia(t,Q0);break;case"sqrtTall":n=Fa(t,Q0,a)}return n},La=function(e,t){switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},It={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Pa=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z +M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v602 h84z +M403 1759 V0 H319 V1759 v`+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v602 h84z +M347 1759 V0 h-84 V1759 v`+t+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class ue{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return q.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;tt.toText();return this.children.map(e).join("")}}var x0={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},ve={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ot={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function Ga(r,e){x0[r]=e}function ft(r,e,t){if(!x0[e])throw new Error("Font metrics not found for font: "+e+".");var a=r.charCodeAt(0),n=x0[e][a];if(!n&&r[0]in Ot&&(a=Ot[r[0]].charCodeAt(0),n=x0[e][a]),!n&&t==="text"&&vr(a)&&(n=x0[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var Ue={};function Va(r){var e;if(r>=5?e=0:r>=3?e=1:e=2,!Ue[e]){var t=Ue[e]={cssEmPerMu:ve.quad[e]/18};for(var a in ve)ve.hasOwnProperty(a)&&(t[a]=ve[a][e])}return Ue[e]}var Ua=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Ft=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Ht=function(e,t){return t.size<2?e:Ua[e-1][t.size-1]};class A0{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||A0.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Ft[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var a in e)e.hasOwnProperty(a)&&(t[a]=e[a]);return new A0(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Ht(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ft[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=Ht(A0.BASESIZE,e);return this.size===t&&this.textSize===A0.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==A0.BASESIZE?["sizing","reset-size"+this.size,"size"+A0.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Va(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}A0.BASESIZE=6;var nt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},Ya={ex:!0,em:!0,mu:!0},gr=function(e){return typeof e!="string"&&(e=e.unit),e in nt||e in Ya||e==="ex"},K=function(e,t){var a;if(e.unit in nt)a=nt[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")a=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")a=n.fontMetrics().xHeight;else if(e.unit==="em")a=n.fontMetrics().quad;else throw new M("Invalid unit: '"+e.unit+"'");n!==t&&(a*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*a,t.maxSize)},A=function(e){return+e.toFixed(4)+"em"},L0=function(e){return e.filter(t=>t).join(" ")},br=function(e,t,a){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=a||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},yr=function(e){var t=document.createElement(e);t.className=L0(this.classes);for(var a in this.style)this.style.hasOwnProperty(a)&&(t.style[a]=this.style[a]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var s=0;s",t};class he{constructor(e,t,a,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,br.call(this,e,a,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return q.contains(this.classes,e)}toNode(){return yr.call(this,"span")}toMarkup(){return xr.call(this,"span")}}class pt{constructor(e,t,a,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,br.call(this,t,n),this.children=a||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return q.contains(this.classes,e)}toNode(){return yr.call(this,"a")}toMarkup(){return xr.call(this,"a")}}class Xa{constructor(e,t,a){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=a}hasClass(e){return q.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+q.escape(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=A(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=L0(this.classes));for(var a in this.style)this.style.hasOwnProperty(a)&&(t=t||document.createElement("span"),t.style[a]=this.style[a]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(a+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(a+=q.hyphenate(n)+":"+this.style[n]+";");a&&(e=!0,t+=' style="'+q.escape(a)+'"');var s=q.escape(this.text);return e?(t+=">",t+=s,t+="",t):s}}class D0{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&t.setAttribute(a,this.attributes[a]);for(var n=0;n':''}}class it{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&t.setAttribute(a,this.attributes[a]);return t}toMarkup(){var e=" but got "+String(r)+".")}var ja={bin:1,close:1,inner:1,open:1,punct:1,rel:1},Za={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},$={math:{},text:{}};function i(r,e,t,a,n,s){$[r][n]={font:e,group:t,replace:a},s&&a&&($[r][a]=$[r][n])}var l="math",k="text",u="main",d="ams",W="accent-token",D="bin",i0="close",te="inner",E="mathord",_="op-token",h0="open",qe="punct",f="rel",q0="spacing",v="textord";i(l,u,f,"≡","\\equiv",!0);i(l,u,f,"≺","\\prec",!0);i(l,u,f,"≻","\\succ",!0);i(l,u,f,"∼","\\sim",!0);i(l,u,f,"⊥","\\perp");i(l,u,f,"⪯","\\preceq",!0);i(l,u,f,"⪰","\\succeq",!0);i(l,u,f,"≃","\\simeq",!0);i(l,u,f,"∣","\\mid",!0);i(l,u,f,"≪","\\ll",!0);i(l,u,f,"≫","\\gg",!0);i(l,u,f,"≍","\\asymp",!0);i(l,u,f,"∥","\\parallel");i(l,u,f,"⋈","\\bowtie",!0);i(l,u,f,"⌣","\\smile",!0);i(l,u,f,"⊑","\\sqsubseteq",!0);i(l,u,f,"⊒","\\sqsupseteq",!0);i(l,u,f,"≐","\\doteq",!0);i(l,u,f,"⌢","\\frown",!0);i(l,u,f,"∋","\\ni",!0);i(l,u,f,"∝","\\propto",!0);i(l,u,f,"⊢","\\vdash",!0);i(l,u,f,"⊣","\\dashv",!0);i(l,u,f,"∋","\\owns");i(l,u,qe,".","\\ldotp");i(l,u,qe,"⋅","\\cdotp");i(l,u,v,"#","\\#");i(k,u,v,"#","\\#");i(l,u,v,"&","\\&");i(k,u,v,"&","\\&");i(l,u,v,"ℵ","\\aleph",!0);i(l,u,v,"∀","\\forall",!0);i(l,u,v,"ℏ","\\hbar",!0);i(l,u,v,"∃","\\exists",!0);i(l,u,v,"∇","\\nabla",!0);i(l,u,v,"♭","\\flat",!0);i(l,u,v,"ℓ","\\ell",!0);i(l,u,v,"♮","\\natural",!0);i(l,u,v,"♣","\\clubsuit",!0);i(l,u,v,"℘","\\wp",!0);i(l,u,v,"♯","\\sharp",!0);i(l,u,v,"♢","\\diamondsuit",!0);i(l,u,v,"ℜ","\\Re",!0);i(l,u,v,"♡","\\heartsuit",!0);i(l,u,v,"ℑ","\\Im",!0);i(l,u,v,"♠","\\spadesuit",!0);i(l,u,v,"§","\\S",!0);i(k,u,v,"§","\\S");i(l,u,v,"¶","\\P",!0);i(k,u,v,"¶","\\P");i(l,u,v,"†","\\dag");i(k,u,v,"†","\\dag");i(k,u,v,"†","\\textdagger");i(l,u,v,"‡","\\ddag");i(k,u,v,"‡","\\ddag");i(k,u,v,"‡","\\textdaggerdbl");i(l,u,i0,"⎱","\\rmoustache",!0);i(l,u,h0,"⎰","\\lmoustache",!0);i(l,u,i0,"⟯","\\rgroup",!0);i(l,u,h0,"⟮","\\lgroup",!0);i(l,u,D,"∓","\\mp",!0);i(l,u,D,"⊖","\\ominus",!0);i(l,u,D,"⊎","\\uplus",!0);i(l,u,D,"⊓","\\sqcap",!0);i(l,u,D,"∗","\\ast");i(l,u,D,"⊔","\\sqcup",!0);i(l,u,D,"◯","\\bigcirc",!0);i(l,u,D,"∙","\\bullet",!0);i(l,u,D,"‡","\\ddagger");i(l,u,D,"≀","\\wr",!0);i(l,u,D,"⨿","\\amalg");i(l,u,D,"&","\\And");i(l,u,f,"⟵","\\longleftarrow",!0);i(l,u,f,"⇐","\\Leftarrow",!0);i(l,u,f,"⟸","\\Longleftarrow",!0);i(l,u,f,"⟶","\\longrightarrow",!0);i(l,u,f,"⇒","\\Rightarrow",!0);i(l,u,f,"⟹","\\Longrightarrow",!0);i(l,u,f,"↔","\\leftrightarrow",!0);i(l,u,f,"⟷","\\longleftrightarrow",!0);i(l,u,f,"⇔","\\Leftrightarrow",!0);i(l,u,f,"⟺","\\Longleftrightarrow",!0);i(l,u,f,"↦","\\mapsto",!0);i(l,u,f,"⟼","\\longmapsto",!0);i(l,u,f,"↗","\\nearrow",!0);i(l,u,f,"↩","\\hookleftarrow",!0);i(l,u,f,"↪","\\hookrightarrow",!0);i(l,u,f,"↘","\\searrow",!0);i(l,u,f,"↼","\\leftharpoonup",!0);i(l,u,f,"⇀","\\rightharpoonup",!0);i(l,u,f,"↙","\\swarrow",!0);i(l,u,f,"↽","\\leftharpoondown",!0);i(l,u,f,"⇁","\\rightharpoondown",!0);i(l,u,f,"↖","\\nwarrow",!0);i(l,u,f,"⇌","\\rightleftharpoons",!0);i(l,d,f,"≮","\\nless",!0);i(l,d,f,"","\\@nleqslant");i(l,d,f,"","\\@nleqq");i(l,d,f,"⪇","\\lneq",!0);i(l,d,f,"≨","\\lneqq",!0);i(l,d,f,"","\\@lvertneqq");i(l,d,f,"⋦","\\lnsim",!0);i(l,d,f,"⪉","\\lnapprox",!0);i(l,d,f,"⊀","\\nprec",!0);i(l,d,f,"⋠","\\npreceq",!0);i(l,d,f,"⋨","\\precnsim",!0);i(l,d,f,"⪹","\\precnapprox",!0);i(l,d,f,"≁","\\nsim",!0);i(l,d,f,"","\\@nshortmid");i(l,d,f,"∤","\\nmid",!0);i(l,d,f,"⊬","\\nvdash",!0);i(l,d,f,"⊭","\\nvDash",!0);i(l,d,f,"⋪","\\ntriangleleft");i(l,d,f,"⋬","\\ntrianglelefteq",!0);i(l,d,f,"⊊","\\subsetneq",!0);i(l,d,f,"","\\@varsubsetneq");i(l,d,f,"⫋","\\subsetneqq",!0);i(l,d,f,"","\\@varsubsetneqq");i(l,d,f,"≯","\\ngtr",!0);i(l,d,f,"","\\@ngeqslant");i(l,d,f,"","\\@ngeqq");i(l,d,f,"⪈","\\gneq",!0);i(l,d,f,"≩","\\gneqq",!0);i(l,d,f,"","\\@gvertneqq");i(l,d,f,"⋧","\\gnsim",!0);i(l,d,f,"⪊","\\gnapprox",!0);i(l,d,f,"⊁","\\nsucc",!0);i(l,d,f,"⋡","\\nsucceq",!0);i(l,d,f,"⋩","\\succnsim",!0);i(l,d,f,"⪺","\\succnapprox",!0);i(l,d,f,"≆","\\ncong",!0);i(l,d,f,"","\\@nshortparallel");i(l,d,f,"∦","\\nparallel",!0);i(l,d,f,"⊯","\\nVDash",!0);i(l,d,f,"⋫","\\ntriangleright");i(l,d,f,"⋭","\\ntrianglerighteq",!0);i(l,d,f,"","\\@nsupseteqq");i(l,d,f,"⊋","\\supsetneq",!0);i(l,d,f,"","\\@varsupsetneq");i(l,d,f,"⫌","\\supsetneqq",!0);i(l,d,f,"","\\@varsupsetneqq");i(l,d,f,"⊮","\\nVdash",!0);i(l,d,f,"⪵","\\precneqq",!0);i(l,d,f,"⪶","\\succneqq",!0);i(l,d,f,"","\\@nsubseteqq");i(l,d,D,"⊴","\\unlhd");i(l,d,D,"⊵","\\unrhd");i(l,d,f,"↚","\\nleftarrow",!0);i(l,d,f,"↛","\\nrightarrow",!0);i(l,d,f,"⇍","\\nLeftarrow",!0);i(l,d,f,"⇏","\\nRightarrow",!0);i(l,d,f,"↮","\\nleftrightarrow",!0);i(l,d,f,"⇎","\\nLeftrightarrow",!0);i(l,d,f,"△","\\vartriangle");i(l,d,v,"ℏ","\\hslash");i(l,d,v,"▽","\\triangledown");i(l,d,v,"◊","\\lozenge");i(l,d,v,"Ⓢ","\\circledS");i(l,d,v,"®","\\circledR");i(k,d,v,"®","\\circledR");i(l,d,v,"∡","\\measuredangle",!0);i(l,d,v,"∄","\\nexists");i(l,d,v,"℧","\\mho");i(l,d,v,"Ⅎ","\\Finv",!0);i(l,d,v,"⅁","\\Game",!0);i(l,d,v,"‵","\\backprime");i(l,d,v,"▲","\\blacktriangle");i(l,d,v,"▼","\\blacktriangledown");i(l,d,v,"■","\\blacksquare");i(l,d,v,"⧫","\\blacklozenge");i(l,d,v,"★","\\bigstar");i(l,d,v,"∢","\\sphericalangle",!0);i(l,d,v,"∁","\\complement",!0);i(l,d,v,"ð","\\eth",!0);i(k,u,v,"ð","ð");i(l,d,v,"╱","\\diagup");i(l,d,v,"╲","\\diagdown");i(l,d,v,"□","\\square");i(l,d,v,"□","\\Box");i(l,d,v,"◊","\\Diamond");i(l,d,v,"¥","\\yen",!0);i(k,d,v,"¥","\\yen",!0);i(l,d,v,"✓","\\checkmark",!0);i(k,d,v,"✓","\\checkmark");i(l,d,v,"ℶ","\\beth",!0);i(l,d,v,"ℸ","\\daleth",!0);i(l,d,v,"ℷ","\\gimel",!0);i(l,d,v,"ϝ","\\digamma",!0);i(l,d,v,"ϰ","\\varkappa");i(l,d,h0,"┌","\\@ulcorner",!0);i(l,d,i0,"┐","\\@urcorner",!0);i(l,d,h0,"└","\\@llcorner",!0);i(l,d,i0,"┘","\\@lrcorner",!0);i(l,d,f,"≦","\\leqq",!0);i(l,d,f,"⩽","\\leqslant",!0);i(l,d,f,"⪕","\\eqslantless",!0);i(l,d,f,"≲","\\lesssim",!0);i(l,d,f,"⪅","\\lessapprox",!0);i(l,d,f,"≊","\\approxeq",!0);i(l,d,D,"⋖","\\lessdot");i(l,d,f,"⋘","\\lll",!0);i(l,d,f,"≶","\\lessgtr",!0);i(l,d,f,"⋚","\\lesseqgtr",!0);i(l,d,f,"⪋","\\lesseqqgtr",!0);i(l,d,f,"≑","\\doteqdot");i(l,d,f,"≓","\\risingdotseq",!0);i(l,d,f,"≒","\\fallingdotseq",!0);i(l,d,f,"∽","\\backsim",!0);i(l,d,f,"⋍","\\backsimeq",!0);i(l,d,f,"⫅","\\subseteqq",!0);i(l,d,f,"⋐","\\Subset",!0);i(l,d,f,"⊏","\\sqsubset",!0);i(l,d,f,"≼","\\preccurlyeq",!0);i(l,d,f,"⋞","\\curlyeqprec",!0);i(l,d,f,"≾","\\precsim",!0);i(l,d,f,"⪷","\\precapprox",!0);i(l,d,f,"⊲","\\vartriangleleft");i(l,d,f,"⊴","\\trianglelefteq");i(l,d,f,"⊨","\\vDash",!0);i(l,d,f,"⊪","\\Vvdash",!0);i(l,d,f,"⌣","\\smallsmile");i(l,d,f,"⌢","\\smallfrown");i(l,d,f,"≏","\\bumpeq",!0);i(l,d,f,"≎","\\Bumpeq",!0);i(l,d,f,"≧","\\geqq",!0);i(l,d,f,"⩾","\\geqslant",!0);i(l,d,f,"⪖","\\eqslantgtr",!0);i(l,d,f,"≳","\\gtrsim",!0);i(l,d,f,"⪆","\\gtrapprox",!0);i(l,d,D,"⋗","\\gtrdot");i(l,d,f,"⋙","\\ggg",!0);i(l,d,f,"≷","\\gtrless",!0);i(l,d,f,"⋛","\\gtreqless",!0);i(l,d,f,"⪌","\\gtreqqless",!0);i(l,d,f,"≖","\\eqcirc",!0);i(l,d,f,"≗","\\circeq",!0);i(l,d,f,"≜","\\triangleq",!0);i(l,d,f,"∼","\\thicksim");i(l,d,f,"≈","\\thickapprox");i(l,d,f,"⫆","\\supseteqq",!0);i(l,d,f,"⋑","\\Supset",!0);i(l,d,f,"⊐","\\sqsupset",!0);i(l,d,f,"≽","\\succcurlyeq",!0);i(l,d,f,"⋟","\\curlyeqsucc",!0);i(l,d,f,"≿","\\succsim",!0);i(l,d,f,"⪸","\\succapprox",!0);i(l,d,f,"⊳","\\vartriangleright");i(l,d,f,"⊵","\\trianglerighteq");i(l,d,f,"⊩","\\Vdash",!0);i(l,d,f,"∣","\\shortmid");i(l,d,f,"∥","\\shortparallel");i(l,d,f,"≬","\\between",!0);i(l,d,f,"⋔","\\pitchfork",!0);i(l,d,f,"∝","\\varpropto");i(l,d,f,"◀","\\blacktriangleleft");i(l,d,f,"∴","\\therefore",!0);i(l,d,f,"∍","\\backepsilon");i(l,d,f,"▶","\\blacktriangleright");i(l,d,f,"∵","\\because",!0);i(l,d,f,"⋘","\\llless");i(l,d,f,"⋙","\\gggtr");i(l,d,D,"⊲","\\lhd");i(l,d,D,"⊳","\\rhd");i(l,d,f,"≂","\\eqsim",!0);i(l,u,f,"⋈","\\Join");i(l,d,f,"≑","\\Doteq",!0);i(l,d,D,"∔","\\dotplus",!0);i(l,d,D,"∖","\\smallsetminus");i(l,d,D,"⋒","\\Cap",!0);i(l,d,D,"⋓","\\Cup",!0);i(l,d,D,"⩞","\\doublebarwedge",!0);i(l,d,D,"⊟","\\boxminus",!0);i(l,d,D,"⊞","\\boxplus",!0);i(l,d,D,"⋇","\\divideontimes",!0);i(l,d,D,"⋉","\\ltimes",!0);i(l,d,D,"⋊","\\rtimes",!0);i(l,d,D,"⋋","\\leftthreetimes",!0);i(l,d,D,"⋌","\\rightthreetimes",!0);i(l,d,D,"⋏","\\curlywedge",!0);i(l,d,D,"⋎","\\curlyvee",!0);i(l,d,D,"⊝","\\circleddash",!0);i(l,d,D,"⊛","\\circledast",!0);i(l,d,D,"⋅","\\centerdot");i(l,d,D,"⊺","\\intercal",!0);i(l,d,D,"⋒","\\doublecap");i(l,d,D,"⋓","\\doublecup");i(l,d,D,"⊠","\\boxtimes",!0);i(l,d,f,"⇢","\\dashrightarrow",!0);i(l,d,f,"⇠","\\dashleftarrow",!0);i(l,d,f,"⇇","\\leftleftarrows",!0);i(l,d,f,"⇆","\\leftrightarrows",!0);i(l,d,f,"⇚","\\Lleftarrow",!0);i(l,d,f,"↞","\\twoheadleftarrow",!0);i(l,d,f,"↢","\\leftarrowtail",!0);i(l,d,f,"↫","\\looparrowleft",!0);i(l,d,f,"⇋","\\leftrightharpoons",!0);i(l,d,f,"↶","\\curvearrowleft",!0);i(l,d,f,"↺","\\circlearrowleft",!0);i(l,d,f,"↰","\\Lsh",!0);i(l,d,f,"⇈","\\upuparrows",!0);i(l,d,f,"↿","\\upharpoonleft",!0);i(l,d,f,"⇃","\\downharpoonleft",!0);i(l,u,f,"⊶","\\origof",!0);i(l,u,f,"⊷","\\imageof",!0);i(l,d,f,"⊸","\\multimap",!0);i(l,d,f,"↭","\\leftrightsquigarrow",!0);i(l,d,f,"⇉","\\rightrightarrows",!0);i(l,d,f,"⇄","\\rightleftarrows",!0);i(l,d,f,"↠","\\twoheadrightarrow",!0);i(l,d,f,"↣","\\rightarrowtail",!0);i(l,d,f,"↬","\\looparrowright",!0);i(l,d,f,"↷","\\curvearrowright",!0);i(l,d,f,"↻","\\circlearrowright",!0);i(l,d,f,"↱","\\Rsh",!0);i(l,d,f,"⇊","\\downdownarrows",!0);i(l,d,f,"↾","\\upharpoonright",!0);i(l,d,f,"⇂","\\downharpoonright",!0);i(l,d,f,"⇝","\\rightsquigarrow",!0);i(l,d,f,"⇝","\\leadsto");i(l,d,f,"⇛","\\Rrightarrow",!0);i(l,d,f,"↾","\\restriction");i(l,u,v,"‘","`");i(l,u,v,"$","\\$");i(k,u,v,"$","\\$");i(k,u,v,"$","\\textdollar");i(l,u,v,"%","\\%");i(k,u,v,"%","\\%");i(l,u,v,"_","\\_");i(k,u,v,"_","\\_");i(k,u,v,"_","\\textunderscore");i(l,u,v,"∠","\\angle",!0);i(l,u,v,"∞","\\infty",!0);i(l,u,v,"′","\\prime");i(l,u,v,"△","\\triangle");i(l,u,v,"Γ","\\Gamma",!0);i(l,u,v,"Δ","\\Delta",!0);i(l,u,v,"Θ","\\Theta",!0);i(l,u,v,"Λ","\\Lambda",!0);i(l,u,v,"Ξ","\\Xi",!0);i(l,u,v,"Π","\\Pi",!0);i(l,u,v,"Σ","\\Sigma",!0);i(l,u,v,"Υ","\\Upsilon",!0);i(l,u,v,"Φ","\\Phi",!0);i(l,u,v,"Ψ","\\Psi",!0);i(l,u,v,"Ω","\\Omega",!0);i(l,u,v,"A","Α");i(l,u,v,"B","Β");i(l,u,v,"E","Ε");i(l,u,v,"Z","Ζ");i(l,u,v,"H","Η");i(l,u,v,"I","Ι");i(l,u,v,"K","Κ");i(l,u,v,"M","Μ");i(l,u,v,"N","Ν");i(l,u,v,"O","Ο");i(l,u,v,"P","Ρ");i(l,u,v,"T","Τ");i(l,u,v,"X","Χ");i(l,u,v,"¬","\\neg",!0);i(l,u,v,"¬","\\lnot");i(l,u,v,"⊤","\\top");i(l,u,v,"⊥","\\bot");i(l,u,v,"∅","\\emptyset");i(l,d,v,"∅","\\varnothing");i(l,u,E,"α","\\alpha",!0);i(l,u,E,"β","\\beta",!0);i(l,u,E,"γ","\\gamma",!0);i(l,u,E,"δ","\\delta",!0);i(l,u,E,"ϵ","\\epsilon",!0);i(l,u,E,"ζ","\\zeta",!0);i(l,u,E,"η","\\eta",!0);i(l,u,E,"θ","\\theta",!0);i(l,u,E,"ι","\\iota",!0);i(l,u,E,"κ","\\kappa",!0);i(l,u,E,"λ","\\lambda",!0);i(l,u,E,"μ","\\mu",!0);i(l,u,E,"ν","\\nu",!0);i(l,u,E,"ξ","\\xi",!0);i(l,u,E,"ο","\\omicron",!0);i(l,u,E,"π","\\pi",!0);i(l,u,E,"ρ","\\rho",!0);i(l,u,E,"σ","\\sigma",!0);i(l,u,E,"τ","\\tau",!0);i(l,u,E,"υ","\\upsilon",!0);i(l,u,E,"ϕ","\\phi",!0);i(l,u,E,"χ","\\chi",!0);i(l,u,E,"ψ","\\psi",!0);i(l,u,E,"ω","\\omega",!0);i(l,u,E,"ε","\\varepsilon",!0);i(l,u,E,"ϑ","\\vartheta",!0);i(l,u,E,"ϖ","\\varpi",!0);i(l,u,E,"ϱ","\\varrho",!0);i(l,u,E,"ς","\\varsigma",!0);i(l,u,E,"φ","\\varphi",!0);i(l,u,D,"∗","*",!0);i(l,u,D,"+","+");i(l,u,D,"−","-",!0);i(l,u,D,"⋅","\\cdot",!0);i(l,u,D,"∘","\\circ",!0);i(l,u,D,"÷","\\div",!0);i(l,u,D,"±","\\pm",!0);i(l,u,D,"×","\\times",!0);i(l,u,D,"∩","\\cap",!0);i(l,u,D,"∪","\\cup",!0);i(l,u,D,"∖","\\setminus",!0);i(l,u,D,"∧","\\land");i(l,u,D,"∨","\\lor");i(l,u,D,"∧","\\wedge",!0);i(l,u,D,"∨","\\vee",!0);i(l,u,v,"√","\\surd");i(l,u,h0,"⟨","\\langle",!0);i(l,u,h0,"∣","\\lvert");i(l,u,h0,"∥","\\lVert");i(l,u,i0,"?","?");i(l,u,i0,"!","!");i(l,u,i0,"⟩","\\rangle",!0);i(l,u,i0,"∣","\\rvert");i(l,u,i0,"∥","\\rVert");i(l,u,f,"=","=");i(l,u,f,":",":");i(l,u,f,"≈","\\approx",!0);i(l,u,f,"≅","\\cong",!0);i(l,u,f,"≥","\\ge");i(l,u,f,"≥","\\geq",!0);i(l,u,f,"←","\\gets");i(l,u,f,">","\\gt",!0);i(l,u,f,"∈","\\in",!0);i(l,u,f,"","\\@not");i(l,u,f,"⊂","\\subset",!0);i(l,u,f,"⊃","\\supset",!0);i(l,u,f,"⊆","\\subseteq",!0);i(l,u,f,"⊇","\\supseteq",!0);i(l,d,f,"⊈","\\nsubseteq",!0);i(l,d,f,"⊉","\\nsupseteq",!0);i(l,u,f,"⊨","\\models");i(l,u,f,"←","\\leftarrow",!0);i(l,u,f,"≤","\\le");i(l,u,f,"≤","\\leq",!0);i(l,u,f,"<","\\lt",!0);i(l,u,f,"→","\\rightarrow",!0);i(l,u,f,"→","\\to");i(l,d,f,"≱","\\ngeq",!0);i(l,d,f,"≰","\\nleq",!0);i(l,u,q0," ","\\ ");i(l,u,q0," ","\\space");i(l,u,q0," ","\\nobreakspace");i(k,u,q0," ","\\ ");i(k,u,q0," "," ");i(k,u,q0," ","\\space");i(k,u,q0," ","\\nobreakspace");i(l,u,q0,null,"\\nobreak");i(l,u,q0,null,"\\allowbreak");i(l,u,qe,",",",");i(l,u,qe,";",";");i(l,d,D,"⊼","\\barwedge",!0);i(l,d,D,"⊻","\\veebar",!0);i(l,u,D,"⊙","\\odot",!0);i(l,u,D,"⊕","\\oplus",!0);i(l,u,D,"⊗","\\otimes",!0);i(l,u,v,"∂","\\partial",!0);i(l,u,D,"⊘","\\oslash",!0);i(l,d,D,"⊚","\\circledcirc",!0);i(l,d,D,"⊡","\\boxdot",!0);i(l,u,D,"△","\\bigtriangleup");i(l,u,D,"▽","\\bigtriangledown");i(l,u,D,"†","\\dagger");i(l,u,D,"⋄","\\diamond");i(l,u,D,"⋆","\\star");i(l,u,D,"◃","\\triangleleft");i(l,u,D,"▹","\\triangleright");i(l,u,h0,"{","\\{");i(k,u,v,"{","\\{");i(k,u,v,"{","\\textbraceleft");i(l,u,i0,"}","\\}");i(k,u,v,"}","\\}");i(k,u,v,"}","\\textbraceright");i(l,u,h0,"{","\\lbrace");i(l,u,i0,"}","\\rbrace");i(l,u,h0,"[","\\lbrack",!0);i(k,u,v,"[","\\lbrack",!0);i(l,u,i0,"]","\\rbrack",!0);i(k,u,v,"]","\\rbrack",!0);i(l,u,h0,"(","\\lparen",!0);i(l,u,i0,")","\\rparen",!0);i(k,u,v,"<","\\textless",!0);i(k,u,v,">","\\textgreater",!0);i(l,u,h0,"⌊","\\lfloor",!0);i(l,u,i0,"⌋","\\rfloor",!0);i(l,u,h0,"⌈","\\lceil",!0);i(l,u,i0,"⌉","\\rceil",!0);i(l,u,v,"\\","\\backslash");i(l,u,v,"∣","|");i(l,u,v,"∣","\\vert");i(k,u,v,"|","\\textbar",!0);i(l,u,v,"∥","\\|");i(l,u,v,"∥","\\Vert");i(k,u,v,"∥","\\textbardbl");i(k,u,v,"~","\\textasciitilde");i(k,u,v,"\\","\\textbackslash");i(k,u,v,"^","\\textasciicircum");i(l,u,f,"↑","\\uparrow",!0);i(l,u,f,"⇑","\\Uparrow",!0);i(l,u,f,"↓","\\downarrow",!0);i(l,u,f,"⇓","\\Downarrow",!0);i(l,u,f,"↕","\\updownarrow",!0);i(l,u,f,"⇕","\\Updownarrow",!0);i(l,u,_,"∐","\\coprod");i(l,u,_,"⋁","\\bigvee");i(l,u,_,"⋀","\\bigwedge");i(l,u,_,"⨄","\\biguplus");i(l,u,_,"⋂","\\bigcap");i(l,u,_,"⋃","\\bigcup");i(l,u,_,"∫","\\int");i(l,u,_,"∫","\\intop");i(l,u,_,"∬","\\iint");i(l,u,_,"∭","\\iiint");i(l,u,_,"∏","\\prod");i(l,u,_,"∑","\\sum");i(l,u,_,"⨂","\\bigotimes");i(l,u,_,"⨁","\\bigoplus");i(l,u,_,"⨀","\\bigodot");i(l,u,_,"∮","\\oint");i(l,u,_,"∯","\\oiint");i(l,u,_,"∰","\\oiiint");i(l,u,_,"⨆","\\bigsqcup");i(l,u,_,"∫","\\smallint");i(k,u,te,"…","\\textellipsis");i(l,u,te,"…","\\mathellipsis");i(k,u,te,"…","\\ldots",!0);i(l,u,te,"…","\\ldots",!0);i(l,u,te,"⋯","\\@cdots",!0);i(l,u,te,"⋱","\\ddots",!0);i(l,u,v,"⋮","\\varvdots");i(l,u,W,"ˊ","\\acute");i(l,u,W,"ˋ","\\grave");i(l,u,W,"¨","\\ddot");i(l,u,W,"~","\\tilde");i(l,u,W,"ˉ","\\bar");i(l,u,W,"˘","\\breve");i(l,u,W,"ˇ","\\check");i(l,u,W,"^","\\hat");i(l,u,W,"⃗","\\vec");i(l,u,W,"˙","\\dot");i(l,u,W,"˚","\\mathring");i(l,u,E,"","\\@imath");i(l,u,E,"","\\@jmath");i(l,u,v,"ı","ı");i(l,u,v,"ȷ","ȷ");i(k,u,v,"ı","\\i",!0);i(k,u,v,"ȷ","\\j",!0);i(k,u,v,"ß","\\ss",!0);i(k,u,v,"æ","\\ae",!0);i(k,u,v,"œ","\\oe",!0);i(k,u,v,"ø","\\o",!0);i(k,u,v,"Æ","\\AE",!0);i(k,u,v,"Œ","\\OE",!0);i(k,u,v,"Ø","\\O",!0);i(k,u,W,"ˊ","\\'");i(k,u,W,"ˋ","\\`");i(k,u,W,"ˆ","\\^");i(k,u,W,"˜","\\~");i(k,u,W,"ˉ","\\=");i(k,u,W,"˘","\\u");i(k,u,W,"˙","\\.");i(k,u,W,"¸","\\c");i(k,u,W,"˚","\\r");i(k,u,W,"ˇ","\\v");i(k,u,W,"¨",'\\"');i(k,u,W,"˝","\\H");i(k,u,W,"◯","\\textcircled");var wr={"--":!0,"---":!0,"``":!0,"''":!0};i(k,u,v,"–","--",!0);i(k,u,v,"–","\\textendash");i(k,u,v,"—","---",!0);i(k,u,v,"—","\\textemdash");i(k,u,v,"‘","`",!0);i(k,u,v,"‘","\\textquoteleft");i(k,u,v,"’","'",!0);i(k,u,v,"’","\\textquoteright");i(k,u,v,"“","``",!0);i(k,u,v,"“","\\textquotedblleft");i(k,u,v,"”","''",!0);i(k,u,v,"”","\\textquotedblright");i(l,u,v,"°","\\degree",!0);i(k,u,v,"°","\\degree");i(k,u,v,"°","\\textdegree",!0);i(l,u,v,"£","\\pounds");i(l,u,v,"£","\\mathsterling",!0);i(k,u,v,"£","\\pounds");i(k,u,v,"£","\\textsterling",!0);i(l,d,v,"✠","\\maltese");i(k,d,v,"✠","\\maltese");var Pt='0123456789/@."';for(var Ye=0;Ye0)return b0(s,p,n,t,o.concat(g));if(c){var y,w;if(c==="boldsymbol"){var x=Qa(s,n,t,o,a);y=x.fontName,w=[x.fontClass]}else h?(y=Mr[c].fontName,w=[c]):(y=xe(c,t.fontWeight,t.fontShape),w=[c,t.fontWeight,t.fontShape]);if(Ee(s,y,n).metrics)return b0(s,y,n,t,o.concat(w));if(wr.hasOwnProperty(s)&&y.slice(0,10)==="Typewriter"){for(var z=[],T=0;T{if(L0(r.classes)!==L0(e.classes)||r.skew!==e.skew||r.maxFontSize!==e.maxFontSize)return!1;if(r.classes.length===1){var t=r.classes[0];if(t==="mbin"||t==="mord")return!1}for(var a in r.style)if(r.style.hasOwnProperty(a)&&r.style[a]!==e.style[a])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&r.style[n]!==e.style[n])return!1;return!0},t1=r=>{for(var e=0;et&&(t=o.height),o.depth>a&&(a=o.depth),o.maxFontSize>n&&(n=o.maxFontSize)}e.height=t,e.depth=a,e.maxFontSize=n},l0=function(e,t,a,n){var s=new he(e,t,a,n);return vt(s),s},kr=(r,e,t,a)=>new he(r,e,t,a),r1=function(e,t,a){var n=l0([e],[],t);return n.height=Math.max(a||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=A(n.height),n.maxFontSize=1,n},a1=function(e,t,a,n){var s=new pt(e,t,a,n);return vt(s),s},Sr=function(e){var t=new ue(e);return vt(t),t},n1=function(e,t){return e instanceof ue?l0([],[e],t):e},i1=function(e){if(e.positionType==="individualShift"){for(var t=e.children,a=[t[0]],n=-t[0].shift-t[0].elem.depth,s=n,o=1;o{var t=l0(["mspace"],[],e),a=K(r,e);return t.style.marginRight=A(a),t},xe=function(e,t,a){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var s;return t==="textbf"&&a==="textit"?s="BoldItalic":t==="textbf"?s="Bold":t==="textit"?s="Italic":s="Regular",n+"-"+s},Mr={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},zr={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},o1=function(e,t){var[a,n,s]=zr[e],o=new P0(a),h=new D0([o],{width:A(n),height:A(s),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),c=kr(["overlay"],[h],t);return c.height=s,c.style.height=A(s),c.style.width=A(n),c},b={fontMap:Mr,makeSymbol:b0,mathsym:Ja,makeSpan:l0,makeSvgSpan:kr,makeLineSpan:r1,makeAnchor:a1,makeFragment:Sr,wrapFragment:n1,makeVList:s1,makeOrd:_a,makeGlue:l1,staticSvg:o1,svgData:zr,tryCombineChars:t1},Z={number:3,unit:"mu"},X0={number:4,unit:"mu"},z0={number:5,unit:"mu"},u1={mord:{mop:Z,mbin:X0,mrel:z0,minner:Z},mop:{mord:Z,mop:Z,mrel:z0,minner:Z},mbin:{mord:X0,mop:X0,mopen:X0,minner:X0},mrel:{mord:z0,mop:z0,mopen:z0,minner:z0},mopen:{},mclose:{mop:Z,mbin:X0,mrel:z0,minner:Z},mpunct:{mord:Z,mop:Z,mrel:z0,mopen:Z,mclose:Z,mpunct:Z,minner:Z},minner:{mord:Z,mop:Z,mbin:X0,mrel:z0,mopen:Z,mpunct:Z,minner:Z}},h1={mord:{mop:Z},mop:{mord:Z,mop:Z},mbin:{},mrel:{},mopen:{},mclose:{mop:Z},mpunct:{},minner:{mop:Z}},Ar={},De={},Ce={};function B(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:s,mathmlBuilder:o}=r,h={type:e,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:a.allowedInMath===void 0?!0:a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:n},c=0;c{var C=T.classes[0],N=z.classes[0];C==="mbin"&&q.contains(c1,N)?T.classes[0]="mord":N==="mbin"&&q.contains(m1,C)&&(z.classes[0]="mord")},{node:y},w,x),Xt(s,(z,T)=>{var C=lt(T),N=lt(z),O=C&&N?z.hasClass("mtight")?h1[C][N]:u1[C][N]:null;if(O)return b.makeGlue(O,p)},{node:y},w,x),s},Xt=function r(e,t,a,n,s){n&&e.push(n);for(var o=0;ow=>{e.splice(y+1,0,w),o++})(o)}n&&e.pop()},Tr=function(e){return e instanceof ue||e instanceof pt||e instanceof he&&e.hasClass("enclosing")?e:null},p1=function r(e,t){var a=Tr(e);if(a){var n=a.children;if(n.length){if(t==="right")return r(n[n.length-1],"right");if(t==="left")return r(n[0],"left")}}return e},lt=function(e,t){return e?(t&&(e=p1(e,t)),f1[e.classes[0]]||null):null},oe=function(e,t){var a=["nulldelimiter"].concat(e.baseSizingClasses());return C0(t.concat(a))},P=function(e,t,a){if(!e)return C0();if(De[e.type]){var n=De[e.type](e,t);if(a&&t.size!==a.size){n=C0(t.sizingClasses(a),[n],t);var s=t.sizeMultiplier/a.sizeMultiplier;n.height*=s,n.depth*=s}return n}else throw new M("Got group of unknown type: '"+e.type+"'")};function we(r,e){var t=C0(["base"],r,e),a=C0(["strut"]);return a.style.height=A(t.height+t.depth),t.depth&&(a.style.verticalAlign=A(-t.depth)),t.children.unshift(a),t}function ot(r,e){var t=null;r.length===1&&r[0].type==="tag"&&(t=r[0].tag,r=r[0].body);var a=t0(r,e,"root"),n;a.length===2&&a[1].hasClass("tag")&&(n=a.pop());for(var s=[],o=[],h=0;h0&&(s.push(we(o,e)),o=[]),s.push(a[h]));o.length>0&&s.push(we(o,e));var p;t?(p=we(t0(t,e,!0)),p.classes=["tag"],s.push(p)):n&&s.push(n);var g=C0(["katex-html"],s);if(g.setAttribute("aria-hidden","true"),p){var y=p.children[0];y.style.height=A(g.height+g.depth),g.depth&&(y.style.verticalAlign=A(-g.depth))}return g}function Br(r){return new ue(r)}class c0{constructor(e,t,a){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=a||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=L0(this.classes));for(var a=0;a0&&(e+=' class ="'+q.escape(L0(this.classes))+'"'),e+=">";for(var a=0;a",e}toText(){return this.children.map(e=>e.toText()).join("")}}class ie{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return q.escape(this.toText())}toText(){return this.text}}class v1{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",A(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var S={MathNode:c0,TextNode:ie,SpaceNode:v1,newDocumentFragment:Br},v0=function(e,t,a){return $[t][e]&&$[t][e].replace&&e.charCodeAt(0)!==55349&&!(wr.hasOwnProperty(e)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))&&(e=$[t][e].replace),new S.TextNode(e)},gt=function(e){return e.length===1?e[0]:new S.MathNode("mrow",e)},bt=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var a=t.font;if(!a||a==="mathnormal")return null;var n=e.mode;if(a==="mathit")return"italic";if(a==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(a==="mathbf")return"bold";if(a==="mathbb")return"double-struck";if(a==="mathfrak")return"fraktur";if(a==="mathscr"||a==="mathcal")return"script";if(a==="mathsf")return"sans-serif";if(a==="mathtt")return"monospace";var s=e.text;if(q.contains(["\\imath","\\jmath"],s))return null;$[n][s]&&$[n][s].replace&&(s=$[n][s].replace);var o=b.fontMap[a].fontName;return ft(s,o,n)?b.fontMap[a].variant:null},o0=function(e,t,a){if(e.length===1){var n=X(e[0],t);return a&&n instanceof c0&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var s=[],o,h=0;h0&&(y.text=y.text.slice(0,1)+"̸"+y.text.slice(1),s.pop())}}}s.push(c),o=c}return s},G0=function(e,t,a){return gt(o0(e,t,a))},X=function(e,t){if(!e)return new S.MathNode("mrow");if(Ce[e.type]){var a=Ce[e.type](e,t);return a}else throw new M("Got group of unknown type: '"+e.type+"'")};function $t(r,e,t,a,n){var s=o0(r,t),o;s.length===1&&s[0]instanceof c0&&q.contains(["mrow","mtable"],s[0].type)?o=s[0]:o=new S.MathNode("mrow",s);var h=new S.MathNode("annotation",[new S.TextNode(e)]);h.setAttribute("encoding","application/x-tex");var c=new S.MathNode("semantics",[o,h]),p=new S.MathNode("math",[c]);p.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&p.setAttribute("display","block");var g=n?"katex":"katex-mathml";return b.makeSpan([g],[p])}var Dr=function(e){return new A0({style:e.displayMode?R.DISPLAY:R.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Cr=function(e,t){if(t.displayMode){var a=["katex-display"];t.leqno&&a.push("leqno"),t.fleqn&&a.push("fleqn"),e=b.makeSpan(a,[e])}return e},g1=function(e,t,a){var n=Dr(a),s;if(a.output==="mathml")return $t(e,t,n,a.displayMode,!0);if(a.output==="html"){var o=ot(e,n);s=b.makeSpan(["katex"],[o])}else{var h=$t(e,t,n,a.displayMode,!1),c=ot(e,n);s=b.makeSpan(["katex"],[h,c])}return Cr(s,a)},b1=function(e,t,a){var n=Dr(a),s=ot(e,n),o=b.makeSpan(["katex"],[s]);return Cr(o,a)},y1={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},x1=function(e){var t=new S.MathNode("mo",[new S.TextNode(y1[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},w1={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},k1=function(e){return e.type==="ordgroup"?e.body.length:1},S1=function(e,t){function a(){var h=4e5,c=e.label.slice(1);if(q.contains(["widehat","widecheck","widetilde","utilde"],c)){var p=e,g=k1(p.base),y,w,x;if(g>5)c==="widehat"||c==="widecheck"?(y=420,h=2364,x=.42,w=c+"4"):(y=312,h=2340,x=.34,w="tilde4");else{var z=[1,1,2,2,3,3][g];c==="widehat"||c==="widecheck"?(h=[0,1062,2364,2364,2364][z],y=[0,239,300,360,420][z],x=[0,.24,.3,.3,.36,.42][z],w=c+z):(h=[0,600,1033,2339,2340][z],y=[0,260,286,306,312][z],x=[0,.26,.286,.3,.306,.34][z],w="tilde"+z)}var T=new P0(w),C=new D0([T],{width:"100%",height:A(x),viewBox:"0 0 "+h+" "+y,preserveAspectRatio:"none"});return{span:b.makeSvgSpan([],[C],t),minWidth:0,height:x}}else{var N=[],O=w1[c],[F,V,L]=O,U=L/1e3,G=F.length,j,Y;if(G===1){var M0=O[3];j=["hide-tail"],Y=[M0]}else if(G===2)j=["halfarrow-left","halfarrow-right"],Y=["xMinYMin","xMaxYMin"];else if(G===3)j=["brace-left","brace-center","brace-right"],Y=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+G+" children.");for(var r0=0;r00&&(n.style.minWidth=A(s)),n},M1=function(e,t,a,n,s){var o,h=e.height+e.depth+a+n;if(/fbox|color|angl/.test(t)){if(o=b.makeSpan(["stretchy",t],[],s),t==="fbox"){var c=s.color&&s.getColor();c&&(o.style.borderColor=c)}}else{var p=[];/^[bx]cancel$/.test(t)&&p.push(new it({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&p.push(new it({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var g=new D0(p,{width:"100%",height:A(h)});o=b.makeSvgSpan([],[g],s)}return o.height=h,o.style.height=A(h),o},N0={encloseSpan:M1,mathMLnode:x1,svgSpan:S1};function H(r,e){if(!r||r.type!==e)throw new Error("Expected node of type "+e+", but got "+(r?"node of type "+r.type:String(r)));return r}function yt(r){var e=Re(r);if(!e)throw new Error("Expected node of symbol group type, but got "+(r?"node of type "+r.type:String(r)));return e}function Re(r){return r&&(r.type==="atom"||Za.hasOwnProperty(r.type))?r:null}var xt=(r,e)=>{var t,a,n;r&&r.type==="supsub"?(a=H(r.base,"accent"),t=a.base,r.base=t,n=Wa(P(r,e)),r.base=a):(a=H(r,"accent"),t=a.base);var s=P(t,e.havingCrampedStyle()),o=a.isShifty&&q.isCharacterBox(t),h=0;if(o){var c=q.getBaseElem(t),p=P(c,e.havingCrampedStyle());h=Lt(p).skew}var g=a.label==="\\c",y=g?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),w;if(a.isStretchy)w=N0.svgSpan(a,e),w=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:w,wrapperClasses:["svg-align"],wrapperStyle:h>0?{width:"calc(100% - "+A(2*h)+")",marginLeft:A(2*h)}:void 0}]},e);else{var x,z;a.label==="\\vec"?(x=b.staticSvg("vec",e),z=b.svgData.vec[1]):(x=b.makeOrd({mode:a.mode,text:a.label},e,"textord"),x=Lt(x),x.italic=0,z=x.width,g&&(y+=x.depth)),w=b.makeSpan(["accent-body"],[x]);var T=a.label==="\\textcircled";T&&(w.classes.push("accent-full"),y=s.height);var C=h;T||(C-=z/2),w.style.left=A(C),a.label==="\\textcircled"&&(w.style.top=".2em"),w=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-y},{type:"elem",elem:w}]},e)}var N=b.makeSpan(["mord","accent"],[w],e);return n?(n.children[0]=N,n.height=Math.max(N.height,n.height),n.classes[0]="mord",n):N},Nr=(r,e)=>{var t=r.isStretchy?N0.mathMLnode(r.label):new S.MathNode("mo",[v0(r.label,r.mode)]),a=new S.MathNode("mover",[X(r.base,e),t]);return a.setAttribute("accent","true"),a},z1=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(r=>"\\"+r).join("|"));B({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(r,e)=>{var t=Ne(e[0]),a=!z1.test(r.funcName),n=!a||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:a,isShifty:n,base:t}},htmlBuilder:xt,mathmlBuilder:Nr});B({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(r,e)=>{var t=e[0],a=r.parser.mode;return a==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:r.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:xt,mathmlBuilder:Nr});B({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"accentUnder",mode:t.mode,label:a,base:n}},htmlBuilder:(r,e)=>{var t=P(r.base,e),a=N0.svgSpan(r,e),n=r.label==="\\utilde"?.12:0,s=b.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return b.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(r,e)=>{var t=N0.mathMLnode(r.label),a=new S.MathNode("munder",[X(r.base,e),t]);return a.setAttribute("accentunder","true"),a}});var ke=r=>{var e=new S.MathNode("mpadded",r?[r]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};B({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a,funcName:n}=r;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(r,e){var t=e.style,a=e.havingStyle(t.sup()),n=b.wrapFragment(P(r.body,a,e),e),s=r.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(s+"-arrow-pad");var o;r.below&&(a=e.havingStyle(t.sub()),o=b.wrapFragment(P(r.below,a,e),e),o.classes.push(s+"-arrow-pad"));var h=N0.svgSpan(r,e),c=-e.fontMetrics().axisHeight+.5*h.height,p=-e.fontMetrics().axisHeight-.5*h.height-.111;(n.depth>.25||r.label==="\\xleftequilibrium")&&(p-=n.depth);var g;if(o){var y=-e.fontMetrics().axisHeight+o.height+.5*h.height+.111;g=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:p},{type:"elem",elem:h,shift:c},{type:"elem",elem:o,shift:y}]},e)}else g=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:p},{type:"elem",elem:h,shift:c}]},e);return g.children[0].children[0].children[1].classes.push("svg-align"),b.makeSpan(["mrel","x-arrow"],[g],e)},mathmlBuilder(r,e){var t=N0.mathMLnode(r.label);t.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var a;if(r.body){var n=ke(X(r.body,e));if(r.below){var s=ke(X(r.below,e));a=new S.MathNode("munderover",[t,s,n])}else a=new S.MathNode("mover",[t,n])}else if(r.below){var o=ke(X(r.below,e));a=new S.MathNode("munder",[t,o])}else a=ke(),a=new S.MathNode("mover",[t,a]);return a}});var A1=b.makeSpan;function qr(r,e){var t=t0(r.body,e,!0);return A1([r.mclass],t,e)}function Er(r,e){var t,a=o0(r.body,e);return r.mclass==="minner"?t=new S.MathNode("mpadded",a):r.mclass==="mord"?r.isCharacterBox?(t=a[0],t.type="mi"):t=new S.MathNode("mi",a):(r.isCharacterBox?(t=a[0],t.type="mo"):t=new S.MathNode("mo",a),r.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):r.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):r.mclass==="mopen"||r.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):r.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}B({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+a.slice(5),body:Q(n),isCharacterBox:q.isCharacterBox(n)}},htmlBuilder:qr,mathmlBuilder:Er});var Ie=r=>{var e=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};B({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(r,e){var{parser:t}=r;return{type:"mclass",mode:t.mode,mclass:Ie(e[0]),body:Q(e[1]),isCharacterBox:q.isCharacterBox(e[1])}}});B({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(r,e){var{parser:t,funcName:a}=r,n=e[1],s=e[0],o;a!=="\\stackrel"?o=Ie(n):o="mrel";var h={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:a!=="\\stackrel",body:Q(n)},c={type:"supsub",mode:s.mode,base:h,sup:a==="\\underset"?null:s,sub:a==="\\underset"?s:null};return{type:"mclass",mode:t.mode,mclass:o,body:[c],isCharacterBox:q.isCharacterBox(c)}},htmlBuilder:qr,mathmlBuilder:Er});B({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"pmb",mode:t.mode,mclass:Ie(e[0]),body:Q(e[0])}},htmlBuilder(r,e){var t=t0(r.body,e,!0),a=b.makeSpan([r.mclass],t,e);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(r,e){var t=o0(r.body,e),a=new S.MathNode("mstyle",t);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var T1={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Wt=()=>({type:"styling",body:[],mode:"math",style:"display"}),jt=r=>r.type==="textord"&&r.text==="@",B1=(r,e)=>(r.type==="mathord"||r.type==="atom")&&r.text===e;function D1(r,e,t){var a=T1[r];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(a,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:a,mode:"math",family:"rel"},o=t.callFunction("\\Big",[s],[]),h=t.callFunction("\\\\cdright",[e[1]],[]),c={type:"ordgroup",mode:"math",body:[n,o,h]};return t.callFunction("\\\\cdparent",[c],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var p={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[p],[])}default:return{type:"textord",text:" ",mode:"math"}}}function C1(r){var e=[];for(r.gullet.beginGroup(),r.gullet.macros.set("\\cr","\\\\\\relax"),r.gullet.beginGroup();;){e.push(r.parseExpression(!1,"\\\\")),r.gullet.endGroup(),r.gullet.beginGroup();var t=r.fetch().text;if(t==="&"||t==="\\\\")r.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new M("Expected \\\\ or \\cr or \\end",r.nextToken)}for(var a=[],n=[a],s=0;s-1))if("<>AV".indexOf(p)>-1)for(var y=0;y<2;y++){for(var w=!0,x=c+1;xAV=|." after @',o[c]);var z=D1(p,g,r),T={type:"styling",body:[z],mode:"math",style:"display"};a.push(T),h=Wt()}s%2===0?a.push(h):a.shift(),a=[],n.push(a)}r.gullet.endGroup(),r.gullet.endGroup();var C=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:C,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}B({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"cdlabel",mode:t.mode,side:a.slice(4),label:e[0]}},htmlBuilder(r,e){var t=e.havingStyle(e.style.sup()),a=b.wrapFragment(P(r.label,t,e),e);return a.classes.push("cd-label-"+r.side),a.style.bottom=A(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(r,e){var t=new S.MathNode("mrow",[X(r.label,e)]);return t=new S.MathNode("mpadded",[t]),t.setAttribute("width","0"),r.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new S.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});B({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(r,e){var{parser:t}=r;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(r,e){var t=b.wrapFragment(P(r.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(r,e){return new S.MathNode("mrow",[X(r.fragment,e)])}});B({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(r,e){for(var{parser:t}=r,a=H(e[0],"ordgroup"),n=a.body,s="",o=0;o=1114111)throw new M("\\@char with invalid code point "+s);return c<=65535?p=String.fromCharCode(c):(c-=65536,p=String.fromCharCode((c>>10)+55296,(c&1023)+56320)),{type:"textord",mode:t.mode,text:p}}});var Rr=(r,e)=>{var t=t0(r.body,e.withColor(r.color),!1);return b.makeFragment(t)},Ir=(r,e)=>{var t=o0(r.body,e.withColor(r.color)),a=new S.MathNode("mstyle",t);return a.setAttribute("mathcolor",r.color),a};B({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(r,e){var{parser:t}=r,a=H(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:a,body:Q(n)}},htmlBuilder:Rr,mathmlBuilder:Ir});B({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(r,e){var{parser:t,breakOnTokenText:a}=r,n=H(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var s=t.parseExpression(!0,a);return{type:"color",mode:t.mode,color:n,body:s}},htmlBuilder:Rr,mathmlBuilder:Ir});B({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(r,e,t){var{parser:a}=r,n=a.gullet.future().text==="["?a.parseSizeGroup(!0):null,s=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:s,size:n&&H(n,"size").value}},htmlBuilder(r,e){var t=b.makeSpan(["mspace"],[],e);return r.newLine&&(t.classes.push("newline"),r.size&&(t.style.marginTop=A(K(r.size,e)))),t},mathmlBuilder(r,e){var t=new S.MathNode("mspace");return r.newLine&&(t.setAttribute("linebreak","newline"),r.size&&t.setAttribute("height",A(K(r.size,e)))),t}});var ut={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Or=r=>{var e=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new M("Expected a control sequence",r);return e},N1=r=>{var e=r.gullet.popToken();return e.text==="="&&(e=r.gullet.popToken(),e.text===" "&&(e=r.gullet.popToken())),e},Fr=(r,e,t,a)=>{var n=r.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!r.gullet.isExpandable(t.text)}),r.gullet.macros.set(e,n,a)};B({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e,funcName:t}=r;e.consumeSpaces();var a=e.fetch();if(ut[a.text])return(t==="\\global"||t==="\\\\globallong")&&(a.text=ut[a.text]),H(e.parseFunction(),"internal");throw new M("Invalid token after macro prefix",a)}});B({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=e.gullet.popToken(),n=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new M("Expected a control sequence",a);for(var s=0,o,h=[[]];e.gullet.future().text!=="{";)if(a=e.gullet.popToken(),a.text==="#"){if(e.gullet.future().text==="{"){o=e.gullet.future(),h[s].push("{");break}if(a=e.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new M('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new M('Argument number "'+a.text+'" out of order');s++,h.push([])}else{if(a.text==="EOF")throw new M("Expected a macro definition");h[s].push(a.text)}var{tokens:c}=e.gullet.consumeArg();return o&&c.unshift(o),(t==="\\edef"||t==="\\xdef")&&(c=e.gullet.expandTokens(c),c.reverse()),e.gullet.macros.set(n,{tokens:c,numArgs:s,delimiters:h},t===ut[t]),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Or(e.gullet.popToken());e.gullet.consumeSpaces();var n=N1(e);return Fr(e,a,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Or(e.gullet.popToken()),n=e.gullet.popToken(),s=e.gullet.popToken();return Fr(e,a,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});var ne=function(e,t,a){var n=$.math[e]&&$.math[e].replace,s=ft(n||e,t,a);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return s},wt=function(e,t,a,n){var s=a.havingBaseStyle(t),o=b.makeSpan(n.concat(s.sizingClasses(a)),[e],a),h=s.sizeMultiplier/a.sizeMultiplier;return o.height*=h,o.depth*=h,o.maxFontSize=s.sizeMultiplier,o},Hr=function(e,t,a){var n=t.havingBaseStyle(a),s=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=A(s),e.height-=s,e.depth+=s},q1=function(e,t,a,n,s,o){var h=b.makeSymbol(e,"Main-Regular",s,n),c=wt(h,t,n,o);return a&&Hr(c,n,t),c},E1=function(e,t,a,n){return b.makeSymbol(e,"Size"+t+"-Regular",a,n)},Lr=function(e,t,a,n,s,o){var h=E1(e,t,s,n),c=wt(b.makeSpan(["delimsizing","size"+t],[h],n),R.TEXT,n,o);return a&&Hr(c,n,R.TEXT),c},je=function(e,t,a){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var s=b.makeSpan(["delimsizinginner",n],[b.makeSpan([],[b.makeSymbol(e,t,a)])]);return{type:"elem",elem:s}},Ze=function(e,t,a){var n=x0["Size4-Regular"][e.charCodeAt(0)]?x0["Size4-Regular"][e.charCodeAt(0)][4]:x0["Size1-Regular"][e.charCodeAt(0)][4],s=new P0("inner",La(e,Math.round(1e3*t))),o=new D0([s],{width:A(n),height:A(t),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),h=b.makeSvgSpan([],[o],a);return h.height=t,h.style.height=A(t),h.style.width=A(n),{type:"elem",elem:h}},ht=.008,Se={type:"kern",size:-1*ht},R1=["|","\\lvert","\\rvert","\\vert"],I1=["\\|","\\lVert","\\rVert","\\Vert"],Pr=function(e,t,a,n,s,o){var h,c,p,g,y="",w=0;h=p=g=e,c=null;var x="Size1-Regular";e==="\\uparrow"?p=g="⏐":e==="\\Uparrow"?p=g="‖":e==="\\downarrow"?h=p="⏐":e==="\\Downarrow"?h=p="‖":e==="\\updownarrow"?(h="\\uparrow",p="⏐",g="\\downarrow"):e==="\\Updownarrow"?(h="\\Uparrow",p="‖",g="\\Downarrow"):q.contains(R1,e)?(p="∣",y="vert",w=333):q.contains(I1,e)?(p="∥",y="doublevert",w=556):e==="["||e==="\\lbrack"?(h="⎡",p="⎢",g="⎣",x="Size4-Regular",y="lbrack",w=667):e==="]"||e==="\\rbrack"?(h="⎤",p="⎥",g="⎦",x="Size4-Regular",y="rbrack",w=667):e==="\\lfloor"||e==="⌊"?(p=h="⎢",g="⎣",x="Size4-Regular",y="lfloor",w=667):e==="\\lceil"||e==="⌈"?(h="⎡",p=g="⎢",x="Size4-Regular",y="lceil",w=667):e==="\\rfloor"||e==="⌋"?(p=h="⎥",g="⎦",x="Size4-Regular",y="rfloor",w=667):e==="\\rceil"||e==="⌉"?(h="⎤",p=g="⎥",x="Size4-Regular",y="rceil",w=667):e==="("||e==="\\lparen"?(h="⎛",p="⎜",g="⎝",x="Size4-Regular",y="lparen",w=875):e===")"||e==="\\rparen"?(h="⎞",p="⎟",g="⎠",x="Size4-Regular",y="rparen",w=875):e==="\\{"||e==="\\lbrace"?(h="⎧",c="⎨",g="⎩",p="⎪",x="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(h="⎫",c="⎬",g="⎭",p="⎪",x="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(h="⎧",g="⎩",p="⎪",x="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(h="⎫",g="⎭",p="⎪",x="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(h="⎧",g="⎭",p="⎪",x="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(h="⎫",g="⎩",p="⎪",x="Size4-Regular");var z=ne(h,x,s),T=z.height+z.depth,C=ne(p,x,s),N=C.height+C.depth,O=ne(g,x,s),F=O.height+O.depth,V=0,L=1;if(c!==null){var U=ne(c,x,s);V=U.height+U.depth,L=2}var G=T+F+V,j=Math.max(0,Math.ceil((t-G)/(L*N))),Y=G+j*L*N,M0=n.fontMetrics().axisHeight;a&&(M0*=n.sizeMultiplier);var r0=Y/2-M0,e0=[];if(y.length>0){var U0=Y-T-F,s0=Math.round(Y*1e3),g0=Pa(y,Math.round(U0*1e3)),E0=new P0(y,g0),W0=(w/1e3).toFixed(3)+"em",j0=(s0/1e3).toFixed(3)+"em",Le=new D0([E0],{width:W0,height:j0,viewBox:"0 0 "+w+" "+s0}),R0=b.makeSvgSpan([],[Le],n);R0.height=s0/1e3,R0.style.width=W0,R0.style.height=j0,e0.push({type:"elem",elem:R0})}else{if(e0.push(je(g,x,s)),e0.push(Se),c===null){var I0=Y-T-F+2*ht;e0.push(Ze(p,I0,n))}else{var m0=(Y-T-F-V)/2+2*ht;e0.push(Ze(p,m0,n)),e0.push(Se),e0.push(je(c,x,s)),e0.push(Se),e0.push(Ze(p,m0,n))}e0.push(Se),e0.push(je(h,x,s))}var ae=n.havingBaseStyle(R.TEXT),Pe=b.makeVList({positionType:"bottom",positionData:r0,children:e0},ae);return wt(b.makeSpan(["delimsizing","mult"],[Pe],ae),R.TEXT,n,o)},Ke=80,Je=.08,Qe=function(e,t,a,n,s){var o=Ha(e,n,a),h=new P0(e,o),c=new D0([h],{width:"400em",height:A(t),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return b.makeSvgSpan(["hide-tail"],[c],s)},O1=function(e,t){var a=t.havingBaseSizing(),n=Yr("\\surd",e*a.sizeMultiplier,Ur,a),s=a.sizeMultiplier,o=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),h,c=0,p=0,g=0,y;return n.type==="small"?(g=1e3+1e3*o+Ke,e<1?s=1:e<1.4&&(s=.7),c=(1+o+Je)/s,p=(1+o)/s,h=Qe("sqrtMain",c,g,o,t),h.style.minWidth="0.853em",y=.833/s):n.type==="large"?(g=(1e3+Ke)*se[n.size],p=(se[n.size]+o)/s,c=(se[n.size]+o+Je)/s,h=Qe("sqrtSize"+n.size,c,g,o,t),h.style.minWidth="1.02em",y=1/s):(c=e+o+Je,p=e+o,g=Math.floor(1e3*e+o)+Ke,h=Qe("sqrtTall",c,g,o,t),h.style.minWidth="0.742em",y=1.056),h.height=p,h.style.height=A(c),{span:h,advanceWidth:y,ruleWidth:(t.fontMetrics().sqrtRuleThickness+o)*s}},Gr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],F1=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],Vr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],se=[0,1.2,1.8,2.4,3],H1=function(e,t,a,n,s){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),q.contains(Gr,e)||q.contains(Vr,e))return Lr(e,t,!1,a,n,s);if(q.contains(F1,e))return Pr(e,se[t],!1,a,n,s);throw new M("Illegal delimiter: '"+e+"'")},L1=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],P1=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"stack"}],Ur=[{type:"small",style:R.SCRIPTSCRIPT},{type:"small",style:R.SCRIPT},{type:"small",style:R.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],G1=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Yr=function(e,t,a,n){for(var s=Math.min(2,3-n.style.size),o=s;ot)return a[o]}return a[a.length-1]},Xr=function(e,t,a,n,s,o){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var h;q.contains(Vr,e)?h=L1:q.contains(Gr,e)?h=Ur:h=P1;var c=Yr(e,t,h,n);return c.type==="small"?q1(e,c.style,a,n,s,o):c.type==="large"?Lr(e,c.size,a,n,s,o):Pr(e,t,a,n,s,o)},V1=function(e,t,a,n,s,o){var h=n.fontMetrics().axisHeight*n.sizeMultiplier,c=901,p=5/n.fontMetrics().ptPerEm,g=Math.max(t-h,a+h),y=Math.max(g/500*c,2*g-p);return Xr(e,y,!0,n,s,o)},B0={sqrtImage:O1,sizedDelim:H1,sizeToMaxHeight:se,customSizedDelim:Xr,leftRightDelim:V1},Zt={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},U1=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Oe(r,e){var t=Re(r);if(t&&q.contains(U1,t.text))return t;throw t?new M("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",r):new M("Invalid delimiter type '"+r.type+"'",r)}B({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(r,e)=>{var t=Oe(e[0],r);return{type:"delimsizing",mode:r.parser.mode,size:Zt[r.funcName].size,mclass:Zt[r.funcName].mclass,delim:t.text}},htmlBuilder:(r,e)=>r.delim==="."?b.makeSpan([r.mclass]):B0.sizedDelim(r.delim,r.size,e,r.mode,[r.mclass]),mathmlBuilder:r=>{var e=[];r.delim!=="."&&e.push(v0(r.delim,r.mode));var t=new S.MathNode("mo",e);r.mclass==="mopen"||r.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var a=A(B0.sizeToMaxHeight[r.size]);return t.setAttribute("minsize",a),t.setAttribute("maxsize",a),t}});function Kt(r){if(!r.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}B({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=r.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new M("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:Oe(e[0],r).text,color:t}}});B({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Oe(e[0],r),a=r.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var s=H(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:t.text,right:s.delim,rightColor:s.color}},htmlBuilder:(r,e)=>{Kt(r);for(var t=t0(r.body,e,!0,["mopen","mclose"]),a=0,n=0,s=!1,o=0;o{Kt(r);var t=o0(r.body,e);if(r.left!=="."){var a=new S.MathNode("mo",[v0(r.left,r.mode)]);a.setAttribute("fence","true"),t.unshift(a)}if(r.right!=="."){var n=new S.MathNode("mo",[v0(r.right,r.mode)]);n.setAttribute("fence","true"),r.rightColor&&n.setAttribute("mathcolor",r.rightColor),t.push(n)}return gt(t)}});B({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Oe(e[0],r);if(!r.parser.leftrightDepth)throw new M("\\middle without preceding \\left",t);return{type:"middle",mode:r.parser.mode,delim:t.text}},htmlBuilder:(r,e)=>{var t;if(r.delim===".")t=oe(e,[]);else{t=B0.sizedDelim(r.delim,1,e,r.mode,[]);var a={delim:r.delim,options:e};t.isMiddle=a}return t},mathmlBuilder:(r,e)=>{var t=r.delim==="\\vert"||r.delim==="|"?v0("|","text"):v0(r.delim,r.mode),a=new S.MathNode("mo",[t]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var kt=(r,e)=>{var t=b.wrapFragment(P(r.body,e),e),a=r.label.slice(1),n=e.sizeMultiplier,s,o=0,h=q.isCharacterBox(r.body);if(a==="sout")s=b.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/n,o=-.5*e.fontMetrics().xHeight;else if(a==="phase"){var c=K({number:.6,unit:"pt"},e),p=K({number:.35,unit:"ex"},e),g=e.havingBaseSizing();n=n/g.sizeMultiplier;var y=t.height+t.depth+c+p;t.style.paddingLeft=A(y/2+c);var w=Math.floor(1e3*y*n),x=Oa(w),z=new D0([new P0("phase",x)],{width:"400em",height:A(w/1e3),viewBox:"0 0 400000 "+w,preserveAspectRatio:"xMinYMin slice"});s=b.makeSvgSpan(["hide-tail"],[z],e),s.style.height=A(y),o=t.depth+c+p}else{/cancel/.test(a)?h||t.classes.push("cancel-pad"):a==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var T=0,C=0,N=0;/box/.test(a)?(N=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),T=e.fontMetrics().fboxsep+(a==="colorbox"?0:N),C=T):a==="angl"?(N=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),T=4*N,C=Math.max(0,.25-t.depth)):(T=h?.2:0,C=T),s=N0.encloseSpan(t,a,T,C,e),/fbox|boxed|fcolorbox/.test(a)?(s.style.borderStyle="solid",s.style.borderWidth=A(N)):a==="angl"&&N!==.049&&(s.style.borderTopWidth=A(N),s.style.borderRightWidth=A(N)),o=t.depth+C,r.backgroundColor&&(s.style.backgroundColor=r.backgroundColor,r.borderColor&&(s.style.borderColor=r.borderColor))}var O;if(r.backgroundColor)O=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:o},{type:"elem",elem:t,shift:0}]},e);else{var F=/cancel|phase/.test(a)?["svg-align"]:[];O=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:s,shift:o,wrapperClasses:F}]},e)}return/cancel/.test(a)&&(O.height=t.height,O.depth=t.depth),/cancel/.test(a)&&!h?b.makeSpan(["mord","cancel-lap"],[O],e):b.makeSpan(["mord"],[O],e)},St=(r,e)=>{var t=0,a=new S.MathNode(r.label.indexOf("colorbox")>-1?"mpadded":"menclose",[X(r.body,e)]);switch(r.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*t+"pt"),a.setAttribute("height","+"+2*t+"pt"),a.setAttribute("lspace",t+"pt"),a.setAttribute("voffset",t+"pt"),r.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(r.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&a.setAttribute("mathbackground",r.backgroundColor),a};B({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,s=H(e[0],"color-token").color,o=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:s,body:o}},htmlBuilder:kt,mathmlBuilder:St});B({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,s=H(e[0],"color-token").color,o=H(e[1],"color-token").color,h=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:o,borderColor:s,body:h}},htmlBuilder:kt,mathmlBuilder:St});B({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});B({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"enclose",mode:t.mode,label:a,body:n}},htmlBuilder:kt,mathmlBuilder:St});B({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});var $r={};function w0(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:s,mathmlBuilder:o}=r,h={type:e,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},c=0;c{var e=r.parser.settings;if(!e.displayMode)throw new M("{"+r.envName+"} can be used only in display mode.")};function Mt(r){if(r.indexOf("ed")===-1)return r.indexOf("*")===-1}function V0(r,e,t){var{hskipBeforeAndAfter:a,addJot:n,cols:s,arraystretch:o,colSeparationType:h,autoTag:c,singleRow:p,emptySingleRow:g,maxNumCols:y,leqno:w}=e;if(r.gullet.beginGroup(),p||r.gullet.macros.set("\\cr","\\\\\\relax"),!o){var x=r.gullet.expandMacroAsText("\\arraystretch");if(x==null)o=1;else if(o=parseFloat(x),!o||o<0)throw new M("Invalid \\arraystretch: "+x)}r.gullet.beginGroup();var z=[],T=[z],C=[],N=[],O=c!=null?[]:void 0;function F(){c&&r.gullet.macros.set("\\@eqnsw","1",!0)}function V(){O&&(r.gullet.macros.get("\\df@tag")?(O.push(r.subparse([new f0("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):O.push(!!c&&r.gullet.macros.get("\\@eqnsw")==="1"))}for(F(),N.push(Jt(r));;){var L=r.parseExpression(!1,p?"\\end":"\\\\");r.gullet.endGroup(),r.gullet.beginGroup(),L={type:"ordgroup",mode:r.mode,body:L},t&&(L={type:"styling",mode:r.mode,style:t,body:[L]}),z.push(L);var U=r.fetch().text;if(U==="&"){if(y&&z.length===y){if(p||h)throw new M("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else if(U==="\\end"){V(),z.length===1&&L.type==="styling"&&L.body[0].body.length===0&&(T.length>1||!g)&&T.pop(),N.length0&&(F+=.25),p.push({pos:F,isDashed:fe[pe]})}for(V(o[0]),a=0;a0&&(r0+=O,Gfe))for(a=0;a=h)){var K0=void 0;(n>0||e.hskipBeforeAndAfter)&&(K0=q.deflt(m0.pregap,w),K0!==0&&(g0=b.makeSpan(["arraycolsep"],[]),g0.style.width=A(K0),s0.push(g0)));var J0=[];for(a=0;a0){for(var ma=b.makeLineSpan("hline",t,g),ca=b.makeLineSpan("hdashline",t,g),Ge=[{type:"elem",elem:c,shift:0}];p.length>0;){var Et=p.pop(),Rt=Et.pos-e0;Et.isDashed?Ge.push({type:"elem",elem:ca,shift:Rt}):Ge.push({type:"elem",elem:ma,shift:Rt})}c=b.makeVList({positionType:"individualShift",children:Ge},t)}if(W0.length===0)return b.makeSpan(["mord"],[c],t);var Ve=b.makeVList({positionType:"individualShift",children:W0},t);return Ve=b.makeSpan(["tag"],[Ve],t),b.makeFragment([c,Ve])},Y1={c:"center ",l:"left ",r:"right "},S0=function(e,t){for(var a=[],n=new S.MathNode("mtd",[],["mtr-glue"]),s=new S.MathNode("mtd",[],["mml-eqn-num"]),o=0;o0){var z=e.cols,T="",C=!1,N=0,O=z.length;z[0].type==="separator"&&(w+="top ",N=1),z[z.length-1].type==="separator"&&(w+="bottom ",O-=1);for(var F=N;F0?"left ":"",w+=j[j.length-1].length>0?"right ":"";for(var Y=1;Y-1?"alignat":"align",s=e.envName==="split",o=V0(e.parser,{cols:a,addJot:!0,autoTag:s?void 0:Mt(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),h,c=0,p={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var g="",y=0;y0&&x&&(C=1),a[z]={type:"align",align:T,pregap:C,postgap:0}}return o.colSeparationType=x?"align":"alignat",o};w0({type:"array",names:["array","darray"],props:{numArgs:1},handler(r,e){var t=Re(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(o){var h=yt(o),c=h.text;if("lcr".indexOf(c)!==-1)return{type:"align",align:c};if(c==="|")return{type:"separator",separator:"|"};if(c===":")return{type:"separator",separator:":"};throw new M("Unknown column alignment: "+c,o)}),s={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return V0(r.parser,s,zt(r.envName))},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(r){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],t="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(r.envName.charAt(r.envName.length-1)==="*"){var n=r.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new M("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:t}]}}var s=V0(r.parser,a,zt(r.envName)),o=Math.max(0,...s.body.map(h=>h.length));return s.cols=new Array(o).fill({type:"align",align:t}),e?{type:"leftright",mode:r.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(r){var e={arraystretch:.5},t=V0(r.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["subarray"],props:{numArgs:1},handler(r,e){var t=Re(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(o){var h=yt(o),c=h.text;if("lc".indexOf(c)!==-1)return{type:"align",align:c};throw new M("Unknown column alignment: "+c,o)});if(n.length>1)throw new M("{subarray} can contain only one column");var s={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=V0(r.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new M("{subarray} can contain only one column");return s},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(r){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=V0(r.parser,e,zt(r.envName));return{type:"leftright",mode:r.mode,body:[t],left:r.envName.indexOf("r")>-1?".":"\\{",right:r.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:jr,htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(r){q.contains(["gather","gather*"],r.envName)&&Fe(r);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Mt(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return V0(r.parser,e,"display")},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:jr,htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(r){Fe(r);var e={autoTag:Mt(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return V0(r.parser,e,"display")},htmlBuilder:k0,mathmlBuilder:S0});w0({type:"array",names:["CD"],props:{numArgs:0},handler(r){return Fe(r),C1(r.parser)},htmlBuilder:k0,mathmlBuilder:S0});m("\\nonumber","\\gdef\\@eqnsw{0}");m("\\notag","\\nonumber");B({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(r,e){throw new M(r.funcName+" valid only within array environment")}});var Qt=$r;B({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];if(n.type!=="ordgroup")throw new M("Invalid environment name",n);for(var s="",o=0;o{var t=r.font,a=e.withFont(t);return P(r.body,a)},Kr=(r,e)=>{var t=r.font,a=e.withFont(t);return X(r.body,a)},_t={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};B({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=Ne(e[0]),s=a;return s in _t&&(s=_t[s]),{type:"font",mode:t.mode,font:s.slice(1),body:n}},htmlBuilder:Zr,mathmlBuilder:Kr});B({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(r,e)=>{var{parser:t}=r,a=e[0],n=q.isCharacterBox(a);return{type:"mclass",mode:t.mode,mclass:Ie(a),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:a}],isCharacterBox:n}}});B({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a,breakOnTokenText:n}=r,{mode:s}=t,o=t.parseExpression(!0,n),h="math"+a.slice(1);return{type:"font",mode:s,font:h,body:{type:"ordgroup",mode:t.mode,body:o}}},htmlBuilder:Zr,mathmlBuilder:Kr});var Jr=(r,e)=>{var t=e;return r==="display"?t=t.id>=R.SCRIPT.id?t.text():R.DISPLAY:r==="text"&&t.size===R.DISPLAY.size?t=R.TEXT:r==="script"?t=R.SCRIPT:r==="scriptscript"&&(t=R.SCRIPTSCRIPT),t},At=(r,e)=>{var t=Jr(r.size,e.style),a=t.fracNum(),n=t.fracDen(),s;s=e.havingStyle(a);var o=P(r.numer,s,e);if(r.continued){var h=8.5/e.fontMetrics().ptPerEm,c=3.5/e.fontMetrics().ptPerEm;o.height=o.height0?z=3*w:z=7*w,T=e.fontMetrics().denom1):(y>0?(x=e.fontMetrics().num2,z=w):(x=e.fontMetrics().num3,z=3*w),T=e.fontMetrics().denom2);var C;if(g){var O=e.fontMetrics().axisHeight;x-o.depth-(O+.5*y){var t=new S.MathNode("mfrac",[X(r.numer,e),X(r.denom,e)]);if(!r.hasBarLine)t.setAttribute("linethickness","0px");else if(r.barSize){var a=K(r.barSize,e);t.setAttribute("linethickness",A(a))}var n=Jr(r.size,e.style);if(n.size!==e.style.size){t=new S.MathNode("mstyle",[t]);var s=n.size===R.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",s),t.setAttribute("scriptlevel","0")}if(r.leftDelim!=null||r.rightDelim!=null){var o=[];if(r.leftDelim!=null){var h=new S.MathNode("mo",[new S.TextNode(r.leftDelim.replace("\\",""))]);h.setAttribute("fence","true"),o.push(h)}if(o.push(t),r.rightDelim!=null){var c=new S.MathNode("mo",[new S.TextNode(r.rightDelim.replace("\\",""))]);c.setAttribute("fence","true"),o.push(c)}return gt(o)}return t};B({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=e[1],o,h=null,c=null,p="auto";switch(a){case"\\dfrac":case"\\frac":case"\\tfrac":o=!0;break;case"\\\\atopfrac":o=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":o=!1,h="(",c=")";break;case"\\\\bracefrac":o=!1,h="\\{",c="\\}";break;case"\\\\brackfrac":o=!1,h="[",c="]";break;default:throw new Error("Unrecognized genfrac command")}switch(a){case"\\dfrac":case"\\dbinom":p="display";break;case"\\tfrac":case"\\tbinom":p="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:s,hasBarLine:o,leftDelim:h,rightDelim:c,size:p,barSize:null}},htmlBuilder:At,mathmlBuilder:Tt});B({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});B({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(r){var{parser:e,funcName:t,token:a}=r,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:a}}});var er=["display","text","script","scriptscript"],tr=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};B({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(r,e){var{parser:t}=r,a=e[4],n=e[5],s=Ne(e[0]),o=s.type==="atom"&&s.family==="open"?tr(s.text):null,h=Ne(e[1]),c=h.type==="atom"&&h.family==="close"?tr(h.text):null,p=H(e[2],"size"),g,y=null;p.isBlank?g=!0:(y=p.value,g=y.number>0);var w="auto",x=e[3];if(x.type==="ordgroup"){if(x.body.length>0){var z=H(x.body[0],"textord");w=er[Number(z.text)]}}else x=H(x,"textord"),w=er[Number(x.text)];return{type:"genfrac",mode:t.mode,numer:a,denom:n,continued:!1,hasBarLine:g,barSize:y,leftDelim:o,rightDelim:c,size:w}},htmlBuilder:At,mathmlBuilder:Tt});B({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(r,e){var{parser:t,funcName:a,token:n}=r;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:H(e[0],"size").value,token:n}}});B({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],s=wa(H(e[1],"infix").size),o=e[2],h=s.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:o,continued:!1,hasBarLine:h,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:At,mathmlBuilder:Tt});var Qr=(r,e)=>{var t=e.style,a,n;r.type==="supsub"?(a=r.sup?P(r.sup,e.havingStyle(t.sup()),e):P(r.sub,e.havingStyle(t.sub()),e),n=H(r.base,"horizBrace")):n=H(r,"horizBrace");var s=P(n.base,e.havingBaseStyle(R.DISPLAY)),o=N0.svgSpan(n,e),h;if(n.isOver?(h=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},e),h.children[0].children[0].children[1].classes.push("svg-align")):(h=b.makeVList({positionType:"bottom",positionData:s.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},e),h.children[0].children[0].children[0].classes.push("svg-align")),a){var c=b.makeSpan(["mord",n.isOver?"mover":"munder"],[h],e);n.isOver?h=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"kern",size:.2},{type:"elem",elem:a}]},e):h=b.makeVList({positionType:"bottom",positionData:c.depth+.2+a.height+a.depth,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:c}]},e)}return b.makeSpan(["mord",n.isOver?"mover":"munder"],[h],e)},X1=(r,e)=>{var t=N0.mathMLnode(r.label);return new S.MathNode(r.isOver?"mover":"munder",[X(r.base,e),t])};B({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"horizBrace",mode:t.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:Qr,mathmlBuilder:X1});B({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[1],n=H(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:Q(a)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(r,e)=>{var t=t0(r.body,e,!1);return b.makeAnchor(r.href,[],t,e)},mathmlBuilder:(r,e)=>{var t=G0(r.body,e);return t instanceof c0||(t=new c0("mrow",[t])),t.setAttribute("href",r.href),t}});B({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=H(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:a}))return t.formatUnsupportedCmd("\\url");for(var n=[],s=0;s{var{parser:t,funcName:a,token:n}=r,s=H(e[0],"raw").string,o=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h,c={};switch(a){case"\\htmlClass":c.class=s,h={command:"\\htmlClass",class:s};break;case"\\htmlId":c.id=s,h={command:"\\htmlId",id:s};break;case"\\htmlStyle":c.style=s,h={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var p=s.split(","),g=0;g{var t=t0(r.body,e,!1),a=["enclosing"];r.attributes.class&&a.push(...r.attributes.class.trim().split(/\s+/));var n=b.makeSpan(a,t,e);for(var s in r.attributes)s!=="class"&&r.attributes.hasOwnProperty(s)&&n.setAttribute(s,r.attributes[s]);return n},mathmlBuilder:(r,e)=>G0(r.body,e)});B({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"htmlmathml",mode:t.mode,html:Q(e[0]),mathml:Q(e[1])}},htmlBuilder:(r,e)=>{var t=t0(r.html,e,!1);return b.makeFragment(t)},mathmlBuilder:(r,e)=>G0(r.mathml,e)});var _e=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new M("Invalid size: '"+e+"' in \\includegraphics");var a={number:+(t[1]+t[2]),unit:t[3]};if(!gr(a))throw new M("Invalid unit: '"+a.unit+"' in \\includegraphics.");return a};B({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(r,e,t)=>{var{parser:a}=r,n={number:0,unit:"em"},s={number:.9,unit:"em"},o={number:0,unit:"em"},h="";if(t[0])for(var c=H(t[0],"raw").string,p=c.split(","),g=0;g{var t=K(r.height,e),a=0;r.totalheight.number>0&&(a=K(r.totalheight,e)-t);var n=0;r.width.number>0&&(n=K(r.width,e));var s={height:A(t+a)};n>0&&(s.width=A(n)),a>0&&(s.verticalAlign=A(-a));var o=new Xa(r.src,r.alt,s);return o.height=t,o.depth=a,o},mathmlBuilder:(r,e)=>{var t=new S.MathNode("mglyph",[]);t.setAttribute("alt",r.alt);var a=K(r.height,e),n=0;if(r.totalheight.number>0&&(n=K(r.totalheight,e)-a,t.setAttribute("valign",A(-n))),t.setAttribute("height",A(a+n)),r.width.number>0){var s=K(r.width,e);t.setAttribute("width",A(s))}return t.setAttribute("src",r.src),t}});B({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=H(e[0],"size");if(t.settings.strict){var s=a[1]==="m",o=n.value.unit==="mu";s?(o||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):o&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(r,e){return b.makeGlue(r.dimension,e)},mathmlBuilder(r,e){var t=K(r.dimension,e);return new S.SpaceNode(t)}});B({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"lap",mode:t.mode,alignment:a.slice(5),body:n}},htmlBuilder:(r,e)=>{var t;r.alignment==="clap"?(t=b.makeSpan([],[P(r.body,e)]),t=b.makeSpan(["inner"],[t],e)):t=b.makeSpan(["inner"],[P(r.body,e)]);var a=b.makeSpan(["fix"],[]),n=b.makeSpan([r.alignment],[t,a],e),s=b.makeSpan(["strut"]);return s.style.height=A(n.height+n.depth),n.depth&&(s.style.verticalAlign=A(-n.depth)),n.children.unshift(s),n=b.makeSpan(["thinbox"],[n],e),b.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(r,e)=>{var t=new S.MathNode("mpadded",[X(r.body,e)]);if(r.alignment!=="rlap"){var a=r.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",a+"width")}return t.setAttribute("width","0px"),t}});B({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){var{funcName:t,parser:a}=r,n=a.mode;a.switchMode("math");var s=t==="\\("?"\\)":"$",o=a.parseExpression(!1,s);return a.expect(s),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:o}}});B({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){throw new M("Mismatched "+r.funcName)}});var rr=(r,e)=>{switch(e.style.size){case R.DISPLAY.size:return r.display;case R.TEXT.size:return r.text;case R.SCRIPT.size:return r.script;case R.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};B({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"mathchoice",mode:t.mode,display:Q(e[0]),text:Q(e[1]),script:Q(e[2]),scriptscript:Q(e[3])}},htmlBuilder:(r,e)=>{var t=rr(r,e),a=t0(t,e,!1);return b.makeFragment(a)},mathmlBuilder:(r,e)=>{var t=rr(r,e);return G0(t,e)}});var _r=(r,e,t,a,n,s,o)=>{r=b.makeSpan([],[r]);var h=t&&q.isCharacterBox(t),c,p;if(e){var g=P(e,a.havingStyle(n.sup()),a);p={elem:g,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-g.depth)}}if(t){var y=P(t,a.havingStyle(n.sub()),a);c={elem:y,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-y.height)}}var w;if(p&&c){var x=a.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+r.depth+o;w=b.makeVList({positionType:"bottom",positionData:x,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-s)},{type:"kern",size:c.kern},{type:"elem",elem:r},{type:"kern",size:p.kern},{type:"elem",elem:p.elem,marginLeft:A(s)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(c){var z=r.height-o;w=b.makeVList({positionType:"top",positionData:z,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-s)},{type:"kern",size:c.kern},{type:"elem",elem:r}]},a)}else if(p){var T=r.depth+o;w=b.makeVList({positionType:"bottom",positionData:T,children:[{type:"elem",elem:r},{type:"kern",size:p.kern},{type:"elem",elem:p.elem,marginLeft:A(s)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else return r;var C=[w];if(c&&s!==0&&!h){var N=b.makeSpan(["mspace"],[],a);N.style.marginRight=A(s),C.unshift(N)}return b.makeSpan(["mop","op-limits"],C,a)},ea=["\\smallint"],re=(r,e)=>{var t,a,n=!1,s;r.type==="supsub"?(t=r.sup,a=r.sub,s=H(r.base,"op"),n=!0):s=H(r,"op");var o=e.style,h=!1;o.size===R.DISPLAY.size&&s.symbol&&!q.contains(ea,s.name)&&(h=!0);var c;if(s.symbol){var p=h?"Size2-Regular":"Size1-Regular",g="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(g=s.name.slice(1),s.name=g==="oiint"?"\\iint":"\\iiint"),c=b.makeSymbol(s.name,p,"math",e,["mop","op-symbol",h?"large-op":"small-op"]),g.length>0){var y=c.italic,w=b.staticSvg(g+"Size"+(h?"2":"1"),e);c=b.makeVList({positionType:"individualShift",children:[{type:"elem",elem:c,shift:0},{type:"elem",elem:w,shift:h?.08:0}]},e),s.name="\\"+g,c.classes.unshift("mop"),c.italic=y}}else if(s.body){var x=t0(s.body,e,!0);x.length===1&&x[0]instanceof p0?(c=x[0],c.classes[0]="mop"):c=b.makeSpan(["mop"],x,e)}else{for(var z=[],T=1;T{var t;if(r.symbol)t=new c0("mo",[v0(r.name,r.mode)]),q.contains(ea,r.name)&&t.setAttribute("largeop","false");else if(r.body)t=new c0("mo",o0(r.body,e));else{t=new c0("mi",[new ie(r.name.slice(1))]);var a=new c0("mo",[v0("⁡","text")]);r.parentIsSupSub?t=new c0("mrow",[t,a]):t=Br([t,a])}return t},$1={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};B({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=a;return n.length===1&&(n=$1[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:re,mathmlBuilder:me});B({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Q(a)}},htmlBuilder:re,mathmlBuilder:me});var W1={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};B({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:re,mathmlBuilder:me});B({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:re,mathmlBuilder:me});B({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r,a=t;return a.length===1&&(a=W1[a]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:re,mathmlBuilder:me});var ta=(r,e)=>{var t,a,n=!1,s;r.type==="supsub"?(t=r.sup,a=r.sub,s=H(r.base,"operatorname"),n=!0):s=H(r,"operatorname");var o;if(s.body.length>0){for(var h=s.body.map(y=>{var w=y.text;return typeof w=="string"?{type:"textord",mode:y.mode,text:w}:y}),c=t0(h,e.withFont("mathrm"),!0),p=0;p{for(var t=o0(r.body,e.withFont("mathrm")),a=!0,n=0;ng.toText()).join("");t=[new S.TextNode(h)]}var c=new S.MathNode("mi",t);c.setAttribute("mathvariant","normal");var p=new S.MathNode("mo",[v0("⁡","text")]);return r.parentIsSupSub?new S.MathNode("mrow",[c,p]):S.newDocumentFragment([c,p])};B({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"operatorname",mode:t.mode,body:Q(n),alwaysHandleSupSub:a==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:ta,mathmlBuilder:j1});m("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");$0({type:"ordgroup",htmlBuilder(r,e){return r.semisimple?b.makeFragment(t0(r.body,e,!1)):b.makeSpan(["mord"],t0(r.body,e,!0),e)},mathmlBuilder(r,e){return G0(r.body,e,!0)}});B({type:"overline",names:["\\overline"],props:{numArgs:1},handler(r,e){var{parser:t}=r,a=e[0];return{type:"overline",mode:t.mode,body:a}},htmlBuilder(r,e){var t=P(r.body,e.havingCrampedStyle()),a=b.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,s=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]},e);return b.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(r,e){var t=new S.MathNode("mo",[new S.TextNode("‾")]);t.setAttribute("stretchy","true");var a=new S.MathNode("mover",[X(r.body,e),t]);return a.setAttribute("accent","true"),a}});B({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"phantom",mode:t.mode,body:Q(a)}},htmlBuilder:(r,e)=>{var t=t0(r.body,e.withPhantom(),!1);return b.makeFragment(t)},mathmlBuilder:(r,e)=>{var t=o0(r.body,e);return new S.MathNode("mphantom",t)}});B({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"hphantom",mode:t.mode,body:a}},htmlBuilder:(r,e)=>{var t=b.makeSpan([],[P(r.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var a=0;a{var t=o0(Q(r.body),e),a=new S.MathNode("mphantom",t),n=new S.MathNode("mpadded",[a]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}});B({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"vphantom",mode:t.mode,body:a}},htmlBuilder:(r,e)=>{var t=b.makeSpan(["inner"],[P(r.body,e.withPhantom())]),a=b.makeSpan(["fix"],[]);return b.makeSpan(["mord","rlap"],[t,a],e)},mathmlBuilder:(r,e)=>{var t=o0(Q(r.body),e),a=new S.MathNode("mphantom",t),n=new S.MathNode("mpadded",[a]);return n.setAttribute("width","0px"),n}});B({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r,a=H(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:a,body:n}},htmlBuilder(r,e){var t=P(r.body,e),a=K(r.dy,e);return b.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){var t=new S.MathNode("mpadded",[X(r.body,e)]),a=r.dy.number+r.dy.unit;return t.setAttribute("voffset",a),t}});B({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e}=r;return{type:"internal",mode:e.mode}}});B({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(r,e,t){var{parser:a}=r,n=t[0],s=H(e[0],"size"),o=H(e[1],"size");return{type:"rule",mode:a.mode,shift:n&&H(n,"size").value,width:s.value,height:o.value}},htmlBuilder(r,e){var t=b.makeSpan(["mord","rule"],[],e),a=K(r.width,e),n=K(r.height,e),s=r.shift?K(r.shift,e):0;return t.style.borderRightWidth=A(a),t.style.borderTopWidth=A(n),t.style.bottom=A(s),t.width=a,t.height=n+s,t.depth=-s,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(r,e){var t=K(r.width,e),a=K(r.height,e),n=r.shift?K(r.shift,e):0,s=e.color&&e.getColor()||"black",o=new S.MathNode("mspace");o.setAttribute("mathbackground",s),o.setAttribute("width",A(t)),o.setAttribute("height",A(a));var h=new S.MathNode("mpadded",[o]);return n>=0?h.setAttribute("height",A(n)):(h.setAttribute("height",A(n)),h.setAttribute("depth",A(-n))),h.setAttribute("voffset",A(n)),h}});function ra(r,e,t){for(var a=t0(r,e,!1),n=e.sizeMultiplier/t.sizeMultiplier,s=0;s{var t=e.havingSize(r.size);return ra(r.body,t,e)};B({type:"sizing",names:ar,props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{breakOnTokenText:t,funcName:a,parser:n}=r,s=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:ar.indexOf(a)+1,body:s}},htmlBuilder:Z1,mathmlBuilder:(r,e)=>{var t=e.havingSize(r.size),a=o0(r.body,t),n=new S.MathNode("mstyle",a);return n.setAttribute("mathsize",A(t.sizeMultiplier)),n}});B({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(r,e,t)=>{var{parser:a}=r,n=!1,s=!1,o=t[0]&&H(t[0],"ordgroup");if(o)for(var h="",c=0;c{var t=b.makeSpan([],[P(r.body,e)]);if(!r.smashHeight&&!r.smashDepth)return t;if(r.smashHeight&&(t.height=0,t.children))for(var a=0;a{var t=new S.MathNode("mpadded",[X(r.body,e)]);return r.smashHeight&&t.setAttribute("height","0px"),r.smashDepth&&t.setAttribute("depth","0px"),t}});B({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a}=r,n=t[0],s=e[0];return{type:"sqrt",mode:a.mode,body:s,index:n}},htmlBuilder(r,e){var t=P(r.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=b.wrapFragment(t,e);var a=e.fontMetrics(),n=a.defaultRuleThickness,s=n;e.style.idt.height+t.depth+o&&(o=(o+y-t.height-t.depth)/2);var w=c.height-t.height-o-p;t.style.paddingLeft=A(g);var x=b.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+w)},{type:"elem",elem:c},{type:"kern",size:p}]},e);if(r.index){var z=e.havingStyle(R.SCRIPTSCRIPT),T=P(r.index,z,e),C=.6*(x.height-x.depth),N=b.makeVList({positionType:"shift",positionData:-C,children:[{type:"elem",elem:T}]},e),O=b.makeSpan(["root"],[N]);return b.makeSpan(["mord","sqrt"],[O,x],e)}else return b.makeSpan(["mord","sqrt"],[x],e)},mathmlBuilder(r,e){var{body:t,index:a}=r;return a?new S.MathNode("mroot",[X(t,e),X(a,e)]):new S.MathNode("msqrt",[X(t,e)])}});var nr={display:R.DISPLAY,text:R.TEXT,script:R.SCRIPT,scriptscript:R.SCRIPTSCRIPT};B({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r,e){var{breakOnTokenText:t,funcName:a,parser:n}=r,s=n.parseExpression(!0,t),o=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:o,body:s}},htmlBuilder(r,e){var t=nr[r.style],a=e.havingStyle(t).withFont("");return ra(r.body,a,e)},mathmlBuilder(r,e){var t=nr[r.style],a=e.havingStyle(t),n=o0(r.body,a),s=new S.MathNode("mstyle",n),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},h=o[r.style];return s.setAttribute("scriptlevel",h[0]),s.setAttribute("displaystyle",h[1]),s}});var K1=function(e,t){var a=e.base;if(a)if(a.type==="op"){var n=a.limits&&(t.style.size===R.DISPLAY.size||a.alwaysHandleSupSub);return n?re:null}else if(a.type==="operatorname"){var s=a.alwaysHandleSupSub&&(t.style.size===R.DISPLAY.size||a.limits);return s?ta:null}else{if(a.type==="accent")return q.isCharacterBox(a.base)?xt:null;if(a.type==="horizBrace"){var o=!e.sub;return o===a.isOver?Qr:null}else return null}else return null};$0({type:"supsub",htmlBuilder(r,e){var t=K1(r,e);if(t)return t(r,e);var{base:a,sup:n,sub:s}=r,o=P(a,e),h,c,p=e.fontMetrics(),g=0,y=0,w=a&&q.isCharacterBox(a);if(n){var x=e.havingStyle(e.style.sup());h=P(n,x,e),w||(g=o.height-x.fontMetrics().supDrop*x.sizeMultiplier/e.sizeMultiplier)}if(s){var z=e.havingStyle(e.style.sub());c=P(s,z,e),w||(y=o.depth+z.fontMetrics().subDrop*z.sizeMultiplier/e.sizeMultiplier)}var T;e.style===R.DISPLAY?T=p.sup1:e.style.cramped?T=p.sup3:T=p.sup2;var C=e.sizeMultiplier,N=A(.5/p.ptPerEm/C),O=null;if(c){var F=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(o instanceof p0||F)&&(O=A(-o.italic))}var V;if(h&&c){g=Math.max(g,T,h.depth+.25*p.xHeight),y=Math.max(y,p.sub2);var L=p.defaultRuleThickness,U=4*L;if(g-h.depth-(c.height-y)0&&(g+=G,y-=G)}var j=[{type:"elem",elem:c,shift:y,marginRight:N,marginLeft:O},{type:"elem",elem:h,shift:-g,marginRight:N}];V=b.makeVList({positionType:"individualShift",children:j},e)}else if(c){y=Math.max(y,p.sub1,c.height-.8*p.xHeight);var Y=[{type:"elem",elem:c,marginLeft:O,marginRight:N}];V=b.makeVList({positionType:"shift",positionData:y,children:Y},e)}else if(h)g=Math.max(g,T,h.depth+.25*p.xHeight),V=b.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:h,marginRight:N}]},e);else throw new Error("supsub must have either sup or sub.");var M0=lt(o,"right")||"mord";return b.makeSpan([M0],[o,b.makeSpan(["msupsub"],[V])],e)},mathmlBuilder(r,e){var t=!1,a,n;r.base&&r.base.type==="horizBrace"&&(n=!!r.sup,n===r.base.isOver&&(t=!0,a=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var s=[X(r.base,e)];r.sub&&s.push(X(r.sub,e)),r.sup&&s.push(X(r.sup,e));var o;if(t)o=a?"mover":"munder";else if(r.sub)if(r.sup){var p=r.base;p&&p.type==="op"&&p.limits&&e.style===R.DISPLAY||p&&p.type==="operatorname"&&p.alwaysHandleSupSub&&(e.style===R.DISPLAY||p.limits)?o="munderover":o="msubsup"}else{var c=r.base;c&&c.type==="op"&&c.limits&&(e.style===R.DISPLAY||c.alwaysHandleSupSub)||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(c.limits||e.style===R.DISPLAY)?o="munder":o="msub"}else{var h=r.base;h&&h.type==="op"&&h.limits&&(e.style===R.DISPLAY||h.alwaysHandleSupSub)||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(h.limits||e.style===R.DISPLAY)?o="mover":o="msup"}return new S.MathNode(o,s)}});$0({type:"atom",htmlBuilder(r,e){return b.mathsym(r.text,r.mode,e,["m"+r.family])},mathmlBuilder(r,e){var t=new S.MathNode("mo",[v0(r.text,r.mode)]);if(r.family==="bin"){var a=bt(r,e);a==="bold-italic"&&t.setAttribute("mathvariant",a)}else r.family==="punct"?t.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&t.setAttribute("stretchy","false");return t}});var aa={mi:"italic",mn:"normal",mtext:"normal"};$0({type:"mathord",htmlBuilder(r,e){return b.makeOrd(r,e,"mathord")},mathmlBuilder(r,e){var t=new S.MathNode("mi",[v0(r.text,r.mode,e)]),a=bt(r,e)||"italic";return a!==aa[t.type]&&t.setAttribute("mathvariant",a),t}});$0({type:"textord",htmlBuilder(r,e){return b.makeOrd(r,e,"textord")},mathmlBuilder(r,e){var t=v0(r.text,r.mode,e),a=bt(r,e)||"normal",n;return r.mode==="text"?n=new S.MathNode("mtext",[t]):/[0-9]/.test(r.text)?n=new S.MathNode("mn",[t]):r.text==="\\prime"?n=new S.MathNode("mo",[t]):n=new S.MathNode("mi",[t]),a!==aa[n.type]&&n.setAttribute("mathvariant",a),n}});var et={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},tt={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};$0({type:"spacing",htmlBuilder(r,e){if(tt.hasOwnProperty(r.text)){var t=tt[r.text].className||"";if(r.mode==="text"){var a=b.makeOrd(r,e,"textord");return a.classes.push(t),a}else return b.makeSpan(["mspace",t],[b.mathsym(r.text,r.mode,e)],e)}else{if(et.hasOwnProperty(r.text))return b.makeSpan(["mspace",et[r.text]],[],e);throw new M('Unknown type of space "'+r.text+'"')}},mathmlBuilder(r,e){var t;if(tt.hasOwnProperty(r.text))t=new S.MathNode("mtext",[new S.TextNode(" ")]);else{if(et.hasOwnProperty(r.text))return new S.MathNode("mspace");throw new M('Unknown type of space "'+r.text+'"')}return t}});var ir=()=>{var r=new S.MathNode("mtd",[]);return r.setAttribute("width","50%"),r};$0({type:"tag",mathmlBuilder(r,e){var t=new S.MathNode("mtable",[new S.MathNode("mtr",[ir(),new S.MathNode("mtd",[G0(r.body,e)]),ir(),new S.MathNode("mtd",[G0(r.tag,e)])])]);return t.setAttribute("width","100%"),t}});var sr={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},lr={"\\textbf":"textbf","\\textmd":"textmd"},J1={"\\textit":"textit","\\textup":"textup"},or=(r,e)=>{var t=r.font;if(t){if(sr[t])return e.withTextFontFamily(sr[t]);if(lr[t])return e.withTextFontWeight(lr[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(J1[t])};B({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"text",mode:t.mode,body:Q(n),font:a}},htmlBuilder(r,e){var t=or(r,e),a=t0(r.body,t,!0);return b.makeSpan(["mord","text"],a,t)},mathmlBuilder(r,e){var t=or(r,e);return G0(r.body,t)}});B({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=P(r.body,e),a=b.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,s=b.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return b.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(r,e){var t=new S.MathNode("mo",[new S.TextNode("‾")]);t.setAttribute("stretchy","true");var a=new S.MathNode("munder",[X(r.body,e),t]);return a.setAttribute("accentunder","true"),a}});B({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=P(r.body,e),a=e.fontMetrics().axisHeight,n=.5*(t.height-a-(t.depth+a));return b.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){return new S.MathNode("mpadded",[X(r.body,e)],["vcenter"])}});B({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(r,e,t){throw new M("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){for(var t=ur(r),a=[],n=e.havingStyle(e.style.text()),s=0;sr.body.replace(/ /g,r.star?"␣":" "),H0=Ar,na=`[ \r + ]`,Q1="\\\\[a-zA-Z@]+",_1="\\\\[^\uD800-\uDFFF]",e4="("+Q1+")"+na+"*",t4=`\\\\( +|[ \r ]+ +?)[ \r ]*`,mt="[̀-ͯ]",r4=new RegExp(mt+"+$"),a4="("+na+"+)|"+(t4+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(mt+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(mt+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+e4)+("|"+_1+")");class hr{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(a4,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new f0("EOF",new u0(this,t,t));var a=this.tokenRegex.exec(e);if(a===null||a.index!==t)throw new M("Unexpected character: '"+e[t]+"'",new f0(e[t],new u0(this,t,t+1)));var n=a[6]||a[3]||(a[2]?"\\ ":" ");if(this.catcodes[n]===14){var s=e.indexOf(` +`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=s+1,this.lex()}return new f0(n,new u0(this,t,this.tokenRegex.lastIndex))}}class n4{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new M("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,a){if(a===void 0&&(a=!1),a){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}}var i4=Wr;m("\\noexpand",function(r){var e=r.popToken();return r.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});m("\\expandafter",function(r){var e=r.popToken();return r.expandOnce(!0),{tokens:[e],numArgs:0}});m("\\@firstoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[0],numArgs:0}});m("\\@secondoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[1],numArgs:0}});m("\\@ifnextchar",function(r){var e=r.consumeArgs(3);r.consumeSpaces();var t=r.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});m("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");m("\\TextOrMath",function(r){var e=r.consumeArgs(2);return r.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var mr={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};m("\\char",function(r){var e=r.popToken(),t,a="";if(e.text==="'")t=8,e=r.popToken();else if(e.text==='"')t=16,e=r.popToken();else if(e.text==="`")if(e=r.popToken(),e.text[0]==="\\")a=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new M("\\char` missing argument");a=e.text.charCodeAt(0)}else t=10;if(t){if(a=mr[e.text],a==null||a>=t)throw new M("Invalid base-"+t+" digit "+e.text);for(var n;(n=mr[r.future().text])!=null&&n{var a=r.consumeArg().tokens;if(a.length!==1)throw new M("\\newcommand's first argument must be a macro name");var n=a[0].text,s=r.isDefined(n);if(s&&!e)throw new M("\\newcommand{"+n+"} attempting to redefine "+(n+"; use \\renewcommand"));if(!s&&!t)throw new M("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var o=0;if(a=r.consumeArg().tokens,a.length===1&&a[0].text==="["){for(var h="",c=r.expandNextToken();c.text!=="]"&&c.text!=="EOF";)h+=c.text,c=r.expandNextToken();if(!h.match(/^\s*[0-9]+\s*$/))throw new M("Invalid number of arguments: "+h);o=parseInt(h),a=r.consumeArg().tokens}return r.macros.set(n,{tokens:a,numArgs:o}),""};m("\\newcommand",r=>Bt(r,!1,!0));m("\\renewcommand",r=>Bt(r,!0,!1));m("\\providecommand",r=>Bt(r,!0,!0));m("\\message",r=>{var e=r.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});m("\\errmessage",r=>{var e=r.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});m("\\show",r=>{var e=r.popToken(),t=e.text;return console.log(e,r.macros.get(t),H0[t],$.math[t],$.text[t]),""});m("\\bgroup","{");m("\\egroup","}");m("~","\\nobreakspace");m("\\lq","`");m("\\rq","'");m("\\aa","\\r a");m("\\AA","\\r A");m("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");m("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");m("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");m("ℬ","\\mathscr{B}");m("ℰ","\\mathscr{E}");m("ℱ","\\mathscr{F}");m("ℋ","\\mathscr{H}");m("ℐ","\\mathscr{I}");m("ℒ","\\mathscr{L}");m("ℳ","\\mathscr{M}");m("ℛ","\\mathscr{R}");m("ℭ","\\mathfrak{C}");m("ℌ","\\mathfrak{H}");m("ℨ","\\mathfrak{Z}");m("\\Bbbk","\\Bbb{k}");m("·","\\cdotp");m("\\llap","\\mathllap{\\textrm{#1}}");m("\\rlap","\\mathrlap{\\textrm{#1}}");m("\\clap","\\mathclap{\\textrm{#1}}");m("\\mathstrut","\\vphantom{(}");m("\\underbar","\\underline{\\text{#1}}");m("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');m("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");m("\\ne","\\neq");m("≠","\\neq");m("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");m("∉","\\notin");m("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");m("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");m("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");m("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");m("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");m("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");m("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");m("⟂","\\perp");m("‼","\\mathclose{!\\mkern-0.8mu!}");m("∌","\\notni");m("⌜","\\ulcorner");m("⌝","\\urcorner");m("⌞","\\llcorner");m("⌟","\\lrcorner");m("©","\\copyright");m("®","\\textregistered");m("️","\\textregistered");m("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');m("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');m("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');m("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');m("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");m("⋮","\\vdots");m("\\varGamma","\\mathit{\\Gamma}");m("\\varDelta","\\mathit{\\Delta}");m("\\varTheta","\\mathit{\\Theta}");m("\\varLambda","\\mathit{\\Lambda}");m("\\varXi","\\mathit{\\Xi}");m("\\varPi","\\mathit{\\Pi}");m("\\varSigma","\\mathit{\\Sigma}");m("\\varUpsilon","\\mathit{\\Upsilon}");m("\\varPhi","\\mathit{\\Phi}");m("\\varPsi","\\mathit{\\Psi}");m("\\varOmega","\\mathit{\\Omega}");m("\\substack","\\begin{subarray}{c}#1\\end{subarray}");m("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");m("\\boxed","\\fbox{$\\displaystyle{#1}$}");m("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");m("\\implies","\\DOTSB\\;\\Longrightarrow\\;");m("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var cr={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};m("\\dots",function(r){var e="\\dotso",t=r.expandAfterFuture().text;return t in cr?e=cr[t]:(t.slice(0,4)==="\\not"||t in $.math&&q.contains(["bin","rel"],$.math[t].group))&&(e="\\dotsb"),e});var Dt={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};m("\\dotso",function(r){var e=r.future().text;return e in Dt?"\\ldots\\,":"\\ldots"});m("\\dotsc",function(r){var e=r.future().text;return e in Dt&&e!==","?"\\ldots\\,":"\\ldots"});m("\\cdots",function(r){var e=r.future().text;return e in Dt?"\\@cdots\\,":"\\@cdots"});m("\\dotsb","\\cdots");m("\\dotsm","\\cdots");m("\\dotsi","\\!\\cdots");m("\\dotsx","\\ldots\\,");m("\\DOTSI","\\relax");m("\\DOTSB","\\relax");m("\\DOTSX","\\relax");m("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");m("\\,","\\tmspace+{3mu}{.1667em}");m("\\thinspace","\\,");m("\\>","\\mskip{4mu}");m("\\:","\\tmspace+{4mu}{.2222em}");m("\\medspace","\\:");m("\\;","\\tmspace+{5mu}{.2777em}");m("\\thickspace","\\;");m("\\!","\\tmspace-{3mu}{.1667em}");m("\\negthinspace","\\!");m("\\negmedspace","\\tmspace-{4mu}{.2222em}");m("\\negthickspace","\\tmspace-{5mu}{.277em}");m("\\enspace","\\kern.5em ");m("\\enskip","\\hskip.5em\\relax");m("\\quad","\\hskip1em\\relax");m("\\qquad","\\hskip2em\\relax");m("\\tag","\\@ifstar\\tag@literal\\tag@paren");m("\\tag@paren","\\tag@literal{({#1})}");m("\\tag@literal",r=>{if(r.macros.get("\\df@tag"))throw new M("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});m("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");m("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");m("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");m("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");m("\\newline","\\\\\\relax");m("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var ia=A(x0["Main-Regular"][84][1]-.7*x0["Main-Regular"][65][1]);m("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+ia+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");m("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+ia+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");m("\\hspace","\\@ifstar\\@hspacer\\@hspace");m("\\@hspace","\\hskip #1\\relax");m("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");m("\\ordinarycolon",":");m("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");m("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');m("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');m("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');m("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');m("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');m("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');m("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');m("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');m("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');m("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');m("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');m("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');m("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');m("∷","\\dblcolon");m("∹","\\eqcolon");m("≔","\\coloneqq");m("≕","\\eqqcolon");m("⩴","\\Coloneqq");m("\\ratio","\\vcentcolon");m("\\coloncolon","\\dblcolon");m("\\colonequals","\\coloneqq");m("\\coloncolonequals","\\Coloneqq");m("\\equalscolon","\\eqqcolon");m("\\equalscoloncolon","\\Eqqcolon");m("\\colonminus","\\coloneq");m("\\coloncolonminus","\\Coloneq");m("\\minuscolon","\\eqcolon");m("\\minuscoloncolon","\\Eqcolon");m("\\coloncolonapprox","\\Colonapprox");m("\\coloncolonsim","\\Colonsim");m("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");m("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");m("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");m("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");m("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");m("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");m("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");m("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");m("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");m("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");m("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");m("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");m("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");m("\\nleqq","\\html@mathml{\\@nleqq}{≰}");m("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");m("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");m("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");m("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");m("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");m("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");m("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");m("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");m("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");m("\\imath","\\html@mathml{\\@imath}{ı}");m("\\jmath","\\html@mathml{\\@jmath}{ȷ}");m("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");m("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");m("⟦","\\llbracket");m("⟧","\\rrbracket");m("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");m("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");m("⦃","\\lBrace");m("⦄","\\rBrace");m("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");m("⦵","\\minuso");m("\\darr","\\downarrow");m("\\dArr","\\Downarrow");m("\\Darr","\\Downarrow");m("\\lang","\\langle");m("\\rang","\\rangle");m("\\uarr","\\uparrow");m("\\uArr","\\Uparrow");m("\\Uarr","\\Uparrow");m("\\N","\\mathbb{N}");m("\\R","\\mathbb{R}");m("\\Z","\\mathbb{Z}");m("\\alef","\\aleph");m("\\alefsym","\\aleph");m("\\Alpha","\\mathrm{A}");m("\\Beta","\\mathrm{B}");m("\\bull","\\bullet");m("\\Chi","\\mathrm{X}");m("\\clubs","\\clubsuit");m("\\cnums","\\mathbb{C}");m("\\Complex","\\mathbb{C}");m("\\Dagger","\\ddagger");m("\\diamonds","\\diamondsuit");m("\\empty","\\emptyset");m("\\Epsilon","\\mathrm{E}");m("\\Eta","\\mathrm{H}");m("\\exist","\\exists");m("\\harr","\\leftrightarrow");m("\\hArr","\\Leftrightarrow");m("\\Harr","\\Leftrightarrow");m("\\hearts","\\heartsuit");m("\\image","\\Im");m("\\infin","\\infty");m("\\Iota","\\mathrm{I}");m("\\isin","\\in");m("\\Kappa","\\mathrm{K}");m("\\larr","\\leftarrow");m("\\lArr","\\Leftarrow");m("\\Larr","\\Leftarrow");m("\\lrarr","\\leftrightarrow");m("\\lrArr","\\Leftrightarrow");m("\\Lrarr","\\Leftrightarrow");m("\\Mu","\\mathrm{M}");m("\\natnums","\\mathbb{N}");m("\\Nu","\\mathrm{N}");m("\\Omicron","\\mathrm{O}");m("\\plusmn","\\pm");m("\\rarr","\\rightarrow");m("\\rArr","\\Rightarrow");m("\\Rarr","\\Rightarrow");m("\\real","\\Re");m("\\reals","\\mathbb{R}");m("\\Reals","\\mathbb{R}");m("\\Rho","\\mathrm{P}");m("\\sdot","\\cdot");m("\\sect","\\S");m("\\spades","\\spadesuit");m("\\sub","\\subset");m("\\sube","\\subseteq");m("\\supe","\\supseteq");m("\\Tau","\\mathrm{T}");m("\\thetasym","\\vartheta");m("\\weierp","\\wp");m("\\Zeta","\\mathrm{Z}");m("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");m("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");m("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");m("\\bra","\\mathinner{\\langle{#1}|}");m("\\ket","\\mathinner{|{#1}\\rangle}");m("\\braket","\\mathinner{\\langle{#1}\\rangle}");m("\\Bra","\\left\\langle#1\\right|");m("\\Ket","\\left|#1\\right\\rangle");var sa=r=>e=>{var t=e.consumeArg().tokens,a=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,o=e.macros.get("|"),h=e.macros.get("\\|");e.macros.beginGroup();var c=y=>w=>{r&&(w.macros.set("|",o),n.length&&w.macros.set("\\|",h));var x=y;if(!y&&n.length){var z=w.future();z.text==="|"&&(w.popToken(),x=!0)}return{tokens:x?n:a,numArgs:0}};e.macros.set("|",c(!1)),n.length&&e.macros.set("\\|",c(!0));var p=e.consumeArg().tokens,g=e.expandTokens([...s,...p,...t]);return e.macros.endGroup(),{tokens:g.reverse(),numArgs:0}};m("\\bra@ket",sa(!1));m("\\bra@set",sa(!0));m("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");m("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");m("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");m("\\angln","{\\angl n}");m("\\blue","\\textcolor{##6495ed}{#1}");m("\\orange","\\textcolor{##ffa500}{#1}");m("\\pink","\\textcolor{##ff00af}{#1}");m("\\red","\\textcolor{##df0030}{#1}");m("\\green","\\textcolor{##28ae7b}{#1}");m("\\gray","\\textcolor{gray}{#1}");m("\\purple","\\textcolor{##9d38bd}{#1}");m("\\blueA","\\textcolor{##ccfaff}{#1}");m("\\blueB","\\textcolor{##80f6ff}{#1}");m("\\blueC","\\textcolor{##63d9ea}{#1}");m("\\blueD","\\textcolor{##11accd}{#1}");m("\\blueE","\\textcolor{##0c7f99}{#1}");m("\\tealA","\\textcolor{##94fff5}{#1}");m("\\tealB","\\textcolor{##26edd5}{#1}");m("\\tealC","\\textcolor{##01d1c1}{#1}");m("\\tealD","\\textcolor{##01a995}{#1}");m("\\tealE","\\textcolor{##208170}{#1}");m("\\greenA","\\textcolor{##b6ffb0}{#1}");m("\\greenB","\\textcolor{##8af281}{#1}");m("\\greenC","\\textcolor{##74cf70}{#1}");m("\\greenD","\\textcolor{##1fab54}{#1}");m("\\greenE","\\textcolor{##0d923f}{#1}");m("\\goldA","\\textcolor{##ffd0a9}{#1}");m("\\goldB","\\textcolor{##ffbb71}{#1}");m("\\goldC","\\textcolor{##ff9c39}{#1}");m("\\goldD","\\textcolor{##e07d10}{#1}");m("\\goldE","\\textcolor{##a75a05}{#1}");m("\\redA","\\textcolor{##fca9a9}{#1}");m("\\redB","\\textcolor{##ff8482}{#1}");m("\\redC","\\textcolor{##f9685d}{#1}");m("\\redD","\\textcolor{##e84d39}{#1}");m("\\redE","\\textcolor{##bc2612}{#1}");m("\\maroonA","\\textcolor{##ffbde0}{#1}");m("\\maroonB","\\textcolor{##ff92c6}{#1}");m("\\maroonC","\\textcolor{##ed5fa6}{#1}");m("\\maroonD","\\textcolor{##ca337c}{#1}");m("\\maroonE","\\textcolor{##9e034e}{#1}");m("\\purpleA","\\textcolor{##ddd7ff}{#1}");m("\\purpleB","\\textcolor{##c6b9fc}{#1}");m("\\purpleC","\\textcolor{##aa87ff}{#1}");m("\\purpleD","\\textcolor{##7854ab}{#1}");m("\\purpleE","\\textcolor{##543b78}{#1}");m("\\mintA","\\textcolor{##f5f9e8}{#1}");m("\\mintB","\\textcolor{##edf2df}{#1}");m("\\mintC","\\textcolor{##e0e5cc}{#1}");m("\\grayA","\\textcolor{##f6f7f7}{#1}");m("\\grayB","\\textcolor{##f0f1f2}{#1}");m("\\grayC","\\textcolor{##e3e5e6}{#1}");m("\\grayD","\\textcolor{##d6d8da}{#1}");m("\\grayE","\\textcolor{##babec2}{#1}");m("\\grayF","\\textcolor{##888d93}{#1}");m("\\grayG","\\textcolor{##626569}{#1}");m("\\grayH","\\textcolor{##3b3e40}{#1}");m("\\grayI","\\textcolor{##21242c}{#1}");m("\\kaBlue","\\textcolor{##314453}{#1}");m("\\kaGreen","\\textcolor{##71B307}{#1}");var la={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class s4{constructor(e,t,a){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new n4(i4,t.macros),this.mode=a,this.stack=[]}feed(e){this.lexer=new hr(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,a,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:a}=this.consumeArg(["]"])}else({tokens:n,start:t,end:a}=this.consumeArg());return this.pushToken(new f0("EOF",a.loc)),this.pushTokens(n),t.range(a,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],a=e&&e.length>0;a||this.consumeSpaces();var n=this.future(),s,o=0,h=0;do{if(s=this.popToken(),t.push(s),s.text==="{")++o;else if(s.text==="}"){if(--o,o===-1)throw new M("Extra }",s)}else if(s.text==="EOF")throw new M("Unexpected end of input in a macro argument, expected '"+(e&&a?e[h]:"}")+"'",s);if(e&&a)if((o===0||o===1&&e[h]==="{")&&s.text===e[h]){if(++h,h===e.length){t.splice(-h,h);break}}else h=0}while(o!==0||a);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new M("The length of delimiters doesn't match the number of args!");for(var a=t[0],n=0;nthis.settings.maxExpand)throw new M("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),a=t.text,n=t.noexpand?null:this._getExpansion(a);if(n==null||e&&n.unexpandable){if(e&&n==null&&a[0]==="\\"&&!this.isDefined(a))throw new M("Undefined control sequence: "+a);return this.pushToken(t),!1}this.countExpansion(1);var s=n.tokens,o=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){s=s.slice();for(var h=s.length-1;h>=0;--h){var c=s[h];if(c.text==="#"){if(h===0)throw new M("Incomplete placeholder at end of macro body",c);if(c=s[--h],c.text==="#")s.splice(h+1,1);else if(/^[1-9]$/.test(c.text))s.splice(h,2,...o[+c.text-1]);else throw new M("Not a valid argument number",c)}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new f0(e)]):void 0}expandTokens(e){var t=[],a=this.stack.length;for(this.pushTokens(e);this.stack.length>a;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(a=>a.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var a=this.lexer.catcodes[e];if(a!=null&&a!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var s=0;if(n.indexOf("#")!==-1)for(var o=n.replace(/##/g,"");o.indexOf("#"+(s+1))!==-1;)++s;for(var h=new hr(n,this.settings),c=[],p=h.lex();p.text!=="EOF";)c.push(p),p=h.lex();c.reverse();var g={tokens:c,numArgs:s};return g}return n}isDefined(e){return this.macros.has(e)||H0.hasOwnProperty(e)||$.math.hasOwnProperty(e)||$.text.hasOwnProperty(e)||la.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:H0.hasOwnProperty(e)&&!H0[e].primitive}}var dr=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Me=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),rt={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},fr={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class He{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new s4(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new M("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new f0("}")),this.gullet.pushTokens(e);var a=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,a}parseExpression(e,t){for(var a=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(He.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&H0[n.text]&&H0[n.text].infix)break;var s=this.parseAtom(t);if(s){if(s.type==="internal")continue}else break;a.push(s)}return this.mode==="text"&&this.formLigatures(a),this.handleInfixNodes(a)}handleInfixNodes(e){for(var t=-1,a,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var h=$[this.mode][t].group,c=u0.range(e),p;if(ja.hasOwnProperty(h)){var g=h;p={type:"atom",mode:this.mode,family:g,loc:c,text:t}}else p={type:h,mode:this.mode,loc:c,text:t};o=p}else if(t.charCodeAt(0)>=128)this.settings.strict&&(vr(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),o={type:"textord",mode:"text",loc:u0.range(e),text:t};else return null;if(this.consume(),s)for(var y=0;y2?e[2]:void 0;for(i&&B(e[0],e[1],i)&&(t=1);++r-1?i[o?e[a]:a]:void 0}}var Ne=Math.max;function Le(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:we(r);return i<0&&(i=Ne(t+i,0)),Un(n,L(e),i)}var K=ye(Le);function Rn(n,e){var r=-1,t=_n(n)?Array(n.length):[];return Hn(n,function(i,o,a){t[++r]=e(i,o,a)}),t}function m(n,e){var r=Z(n)?P:Rn;return r(n,L(e))}function _e(n,e){return n==null?n:ee(n,xn(e),Ln)}function Ce(n,e){return n&&En(n,xn(e))}function Ie(n,e){return n>e}function Tn(n,e){return ne||o&&a&&d&&!u&&!f||t&&a&&d||!r&&d||!i)return 1;if(!t&&!o&&!f&&n=u)return d;var f=r[t];return d*(f=="desc"?-1:1)}}return n.index-e.index}function Se(n,e,r){e.length?e=P(e,function(o){return Z(o)?function(a){return yn(a,o.length===1?o[0]:o)}:o}):e=[J];var t=-1;e=P(e,ie(L));var i=Rn(n,function(o,a,u){var d=P(e,function(f){return f(o)});return{criteria:d,index:++t,value:o}});return Me(i,function(o,a){return Pe(o,a,r)})}function Fe(n,e){return Te(n,e,function(r,t){return Zn(n,t)})}var V=me(function(n,e){return n==null?{}:Fe(n,e)}),Ae=Math.ceil,Be=Math.max;function Ge(n,e,r,t){for(var i=-1,o=Be(Ae((e-n)/(r||1)),0),a=Array(o);o--;)a[++i]=n,n+=r;return a}function Ve(n){return function(e,r,t){return t&&typeof t!="number"&&B(e,r,t)&&(r=t=void 0),e=S(e),r===void 0?(r=e,e=0):r=S(r),t=t===void 0?e1&&B(n,e[0],e[1])?e=[]:r>2&&B(e[0],e[1],e[2])&&(e=[e[0]]),Se(n,gn(e),[])}),Ye=0;function en(n){var e=++Ye;return Jn(n)+e}function $e(n,e,r){for(var t=-1,i=n.length,o=e.length,a={};++t0;--u)if(a=e[u].dequeue(),a){t=t.concat(q(n,e,r,a,!0));break}}}return t}function q(n,e,r,t,i){var o=i?[]:void 0;return s(n.inEdges(t.v),function(a){var u=n.edge(a),d=n.node(a.v);i&&o.push({v:a.v,w:a.w}),d.out-=u,j(e,r,d)}),s(n.outEdges(t.v),function(a){var u=n.edge(a),d=a.w,f=n.node(d);f.in-=u,j(e,r,f)}),n.removeNode(t.v),o}function He(n,e){var r=new x,t=0,i=0;s(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),s(n.edges(),function(u){var d=r.edge(u.v,u.w)||0,f=e(u),c=d+f;r.setEdge(u.v,u.w,c),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var o=N(i+t+3).map(function(){return new qe}),a=t+1;return s(r.nodes(),function(u){j(o,a,r.node(u))}),{graph:r,buckets:o,zeroIdx:a}}function j(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function je(n){var e=n.graph().acyclicer==="greedy"?Xe(n,r(n)):Ze(n);s(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,en("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function Ze(n){var e=[],r={},t={};function i(o){w(t,o)||(t[o]=!0,r[o]=!0,s(n.outEdges(o),function(a){w(r,a.w)?e.push(a):i(a.w)}),delete r[o])}return s(n.nodes(),i),e}function Je(n){s(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function C(n,e,r,t){var i;do i=en(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function Ke(n){var e=new x().setGraph(n.graph());return s(n.nodes(),function(r){e.setNode(r,n.node(r))}),s(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function Mn(n){var e=new x({multigraph:n.isMultigraph()}).setGraph(n.graph());return s(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),s(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function sn(n,e){var r=n.x,t=n.y,i=e.x-r,o=e.y-t,a=n.width/2,u=n.height/2;if(!i&&!o)throw new Error("Not possible to find intersection inside of the rectangle");var d,f;return Math.abs(o)*a>Math.abs(i)*u?(o<0&&(u=-u),d=u*i/o,f=u):(i<0&&(a=-a),d=a,f=a*o/i),{x:r+d,y:t+f}}function D(n){var e=m(N(On(n)+1),function(){return[]});return s(n.nodes(),function(r){var t=n.node(r),i=t.rank;g(i)||(e[i][t.order]=r)}),e}function Qe(n){var e=R(m(n.nodes(),function(r){return n.node(r).rank}));s(n.nodes(),function(r){var t=n.node(r);w(t,"rank")&&(t.rank-=e)})}function nr(n){var e=R(m(n.nodes(),function(o){return n.node(o).rank})),r=[];s(n.nodes(),function(o){var a=n.node(o).rank-e;r[a]||(r[a]=[]),r[a].push(o)});var t=0,i=n.graph().nodeRankFactor;s(r,function(o,a){g(o)&&a%i!==0?--t:t&&s(o,function(u){n.node(u).rank+=t})})}function cn(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),C(n,"border",i,e)}function On(n){return E(m(n.nodes(),function(e){var r=n.node(e).rank;if(!g(r))return r}))}function er(n,e){var r={lhs:[],rhs:[]};return s(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function rr(n,e){return e()}function tr(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&s(t,e),w(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var o=i.minRank,a=i.maxRank+1;oa.lim&&(u=a,d=!0);var f=M(e.edges(),function(c){return d===vn(n,n.node(c.v),u)&&d!==vn(n,n.node(c.w),u)});return nn(f,function(c){return T(e,c)})}function $n(n,e,r,t){var i=r.v,o=r.w;n.removeEdge(i,o),n.setEdge(t.v,t.w,{}),an(n),tn(n,e),br(n,e)}function br(n,e){var r=K(n.nodes(),function(i){return!e.node(i).parent}),t=wr(n,r);t=t.slice(1),s(t,function(i){var o=n.node(i).parent,a=e.edge(i,o),u=!1;a||(a=e.edge(o,i),u=!0),e.node(i).rank=e.node(o).rank+(u?a.minlen:-a.minlen)})}function gr(n,e,r){return n.hasEdge(e,r)}function vn(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function xr(n){switch(n.graph().ranker){case"network-simplex":pn(n);break;case"tight-tree":kr(n);break;case"longest-path":Er(n);break;default:pn(n)}}var Er=rn;function kr(n){rn(n),Sn(n)}function pn(n){k(n)}function yr(n){var e=C(n,"root",{},"_root"),r=Nr(n),t=E(y(r))-1,i=2*t+1;n.graph().nestingRoot=e,s(n.edges(),function(a){n.edge(a).minlen*=i});var o=Lr(n)+1;s(n.children(),function(a){Dn(n,e,i,o,t,r,a)}),n.graph().nodeRankFactor=i}function Dn(n,e,r,t,i,o,a){var u=n.children(a);if(!u.length){a!==e&&n.setEdge(e,a,{weight:0,minlen:r});return}var d=cn(n,"_bt"),f=cn(n,"_bb"),c=n.node(a);n.setParent(d,a),c.borderTop=d,n.setParent(f,a),c.borderBottom=f,s(u,function(h){Dn(n,e,r,t,i,o,h);var l=n.node(h),v=l.borderTop?l.borderTop:h,p=l.borderBottom?l.borderBottom:h,b=l.borderTop?t:2*t,I=v!==p?1:i-o[a]+1;n.setEdge(d,v,{weight:b,minlen:I,nestingEdge:!0}),n.setEdge(p,f,{weight:b,minlen:I,nestingEdge:!0})}),n.parent(a)||n.setEdge(e,d,{weight:0,minlen:i+o[a]})}function Nr(n){var e={};function r(t,i){var o=n.children(t);o&&o.length&&s(o,function(a){r(a,i+1)}),e[t]=i}return s(n.children(),function(t){r(t,1)}),e}function Lr(n){return Y(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function _r(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,s(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Cr(n,e,r){var t={},i;s(r,function(o){for(var a=n.parent(o),u,d;a;){if(u=n.parent(a),u?(d=t[u],t[u]=a):(d=i,i=a),d&&d!==a){e.setEdge(d,a);return}a=u}})}function Ir(n,e,r){var t=Rr(n),i=new x({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(o){return n.node(o)});return s(n.nodes(),function(o){var a=n.node(o),u=n.parent(o);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(o),i.setParent(o,u||t),s(n[r](o),function(d){var f=d.v===o?d.w:d.v,c=i.edge(f,o),h=g(c)?0:c.weight;i.setEdge(f,o,{weight:n.edge(d).weight+h})}),w(a,"minRank")&&i.setNode(o,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function Rr(n){for(var e;n.hasNode(e=en("_root")););return e}function Tr(n,e){for(var r=0,t=1;t0;)c%2&&(h+=u[c+1]),c=c-1>>1,u[c]+=f.weight;d+=f.weight*h})),d}function Or(n){var e={},r=M(n.nodes(),function(u){return!n.children(u).length}),t=E(m(r,function(u){return n.node(u).rank})),i=m(N(t+1),function(){return[]});function o(u){if(!w(e,u)){e[u]=!0;var d=n.node(u);i[d.rank].push(u),s(n.successors(u),o)}}var a=O(r,function(u){return n.node(u).rank});return s(a,o),i}function Pr(n,e){return m(e,function(r){var t=n.inEdges(r);if(t.length){var i=Y(t,function(o,a){var u=n.edge(a),d=n.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function Sr(n,e){var r={};s(n,function(i,o){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};g(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),s(e.edges(),function(i){var o=r[i.v],a=r[i.w];!g(o)&&!g(a)&&(a.indegree++,o.out.push(r[i.w]))});var t=M(r,function(i){return!i.indegree});return Fr(t)}function Fr(n){var e=[];function r(o){return function(a){a.merged||(g(a.barycenter)||g(o.barycenter)||a.barycenter>=o.barycenter)&&Ar(o,a)}}function t(o){return function(a){a.in.push(o),--a.indegree===0&&n.push(a)}}for(;n.length;){var i=n.pop();e.push(i),s(i.in.reverse(),r(i)),s(i.out,t(i))}return m(M(e,function(o){return!o.merged}),function(o){return V(o,["vs","i","barycenter","weight"])})}function Ar(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function Br(n,e){var r=er(n,function(c){return w(c,"barycenter")}),t=r.lhs,i=O(r.rhs,function(c){return-c.i}),o=[],a=0,u=0,d=0;t.sort(Gr(!!e)),d=wn(o,i,d),s(t,function(c){d+=c.vs.length,o.push(c.vs),a+=c.barycenter*c.weight,u+=c.weight,d=wn(o,i,d)});var f={vs:_(o)};return u&&(f.barycenter=a/u,f.weight=u),f}function wn(n,e,r){for(var t;e.length&&(t=G(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function Gr(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function qn(n,e,r,t){var i=n.children(e),o=n.node(e),a=o?o.borderLeft:void 0,u=o?o.borderRight:void 0,d={};a&&(i=M(i,function(p){return p!==a&&p!==u}));var f=Pr(n,i);s(f,function(p){if(n.children(p.v).length){var b=qn(n,p.v,r,t);d[p.v]=b,w(b,"barycenter")&&Yr(p,b)}});var c=Sr(f,r);Vr(c,d);var h=Br(c,t);if(a&&(h.vs=_([a,h.vs,u]),n.predecessors(a).length)){var l=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(u)[0]);w(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+v.order)/(h.weight+2),h.weight+=2}return h}function Vr(n,e){s(n,function(r){r.vs=_(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function Yr(n,e){g(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function $r(n){var e=On(n),r=mn(n,N(1,e+1),"inEdges"),t=mn(n,N(e-1,-1,-1),"outEdges"),i=Or(n);bn(n,i);for(var o=Number.POSITIVE_INFINITY,a,u=0,d=0;d<4;++u,++d){Dr(u%2?r:t,u%4>=2),i=D(n);var f=Tr(n,i);fa||u>e[d].lim));for(f=d,d=t;(d=n.parent(d))!==f;)o.push(d);return{path:i.concat(o.reverse()),lca:f}}function zr(n){var e={},r=0;function t(i){var o=r;s(n.children(i),t),e[i]={low:o,lim:r++}}return s(n.children(),t),e}function Xr(n,e){var r={};function t(i,o){var a=0,u=0,d=i.length,f=G(o);return s(o,function(c,h){var l=Hr(n,c),v=l?n.node(l).order:d;(l||c===f)&&(s(o.slice(u,h+1),function(p){s(n.predecessors(p),function(b){var I=n.node(b),on=I.order;(onf)&&Wn(r,l,c)})})}function i(o,a){var u=-1,d,f=0;return s(a,function(c,h){if(n.node(c).dummy==="border"){var l=n.predecessors(c);l.length&&(d=n.node(l[0]).order,t(a,f,h,u,d),f=h,u=d)}t(a,f,a.length,d,o.length)}),a}return Y(e,i),r}function Hr(n,e){if(n.node(e).dummy)return K(n.predecessors(e),function(r){return n.node(r).dummy})}function Wn(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function jr(n,e,r){if(e>r){var t=e;e=r,r=t}return w(n[e],r)}function Zr(n,e,r,t){var i={},o={},a={};return s(e,function(u){s(u,function(d,f){i[d]=d,o[d]=d,a[d]=f})}),s(e,function(u){var d=-1;s(u,function(f){var c=t(f);if(c.length){c=O(c,function(b){return a[b]});for(var h=(c.length-1)/2,l=Math.floor(h),v=Math.ceil(h);l<=v;++l){var p=c[l];o[f]===f&&dt?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=$,e=(u,c)=>$(n(u),c),r=(u,c)=>n(u)-c):(t=n===$||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_($),dn=sn.right;_(ln).center;const gn=Math.sqrt(50),yn=Math.sqrt(10),Mn=Math.sqrt(2);function E(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=gn?10:f>=yn?5:f>=Mn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function R(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=R(Math.abs(n)),n?n[1]:NaN}function jn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function Pn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var zn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=zn.exec(n)))throw new Error("invalid format: "+n);var t;return new G({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=G.prototype;function G(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}G.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function $n(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+R(n,Math.max(0,t+f-1))[0]}function Y(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Z={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:bn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Y(n*100,t),r:Y,s:$n,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:jn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:Pn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,I=h.comma,w=h.precision,B=h.trim,d=h.type;d==="n"?(I=!0,d="g"):Z[d]||(w===void 0&&(w=12),B=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=Z[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),B&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}I&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var F,tn,rn;Rn({thousands:",",grouping:[3],currency:["$",""]});function Rn(n){return F=En(n),tn=F.format,rn=F.formatPrefix,F}function Dn(n){return Math.max(0,-v(Math.abs(n)))}function In(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Tn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function Ln(n){return function(){return n}}function qn(n){return+n}var W=[0,1];function A(n){return n}function q(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:Ln(isNaN(t)?NaN:.5)}function Cn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?Bn:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),T)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,qn),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=Sn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Xn(){return Vn()(A,A)}function Hn(n,t,e,r){var i=wn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=In(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Tn(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Dn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Un(n){var t=n.domain;return n.ticks=function(e){var r=t();return pn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Hn(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=L(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Yn(){var n=Xn();return n.copy=function(){return On(n,Yn())},cn.apply(n,arguments),Un(n)}export{On as a,_ as b,Xn as c,Yn as l,wn as t}; diff --git a/assets/mermaid.core-Bc1j4tiv.js b/assets/mermaid.core-Bc1j4tiv.js new file mode 100644 index 00000000..31d89989 --- /dev/null +++ b/assets/mermaid.core-Bc1j4tiv.js @@ -0,0 +1,91 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/c4Diagram-ae766693-Cwq3C8UU.js","assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js","assets/app-Ca-A-iaw.js","assets/flowDiagram-b222e15a-DarGeLKH.js","assets/flowDb-c1833063-Dab_m0tb.js","assets/graph-DkiqFSuU.js","assets/layout-BZLwH4ql.js","assets/styles-483fbfea-DnQzRaYr.js","assets/index-01f381cb-wllKWk9M.js","assets/clone-CH2yQtrO.js","assets/edges-066a5561-CYMTSPpJ.js","assets/createText-ca0c5216-bYdpW0Zp.js","assets/line-DS2p6aKt.js","assets/array-BKyUJesY.js","assets/path-CbwjOpE9.js","assets/channel-BQsRZjn0.js","assets/flowDiagram-v2-13329dc7-B5Y-44JY.js","assets/erDiagram-09d1c15f-kySp2mgy.js","assets/gitGraphDiagram-942e62fe-B3EvEA8b.js","assets/ganttDiagram-b62c793e-DZKZndxq.js","assets/linear-BnGacGIF.js","assets/init-Gi6I4Gst.js","assets/infoDiagram-94cd232f-CmPJgRj5.js","assets/pieDiagram-bb1d19e5-BQhQYyps.js","assets/arc-BDtf7cdN.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-c759a472-ChaDXyQS.js","assets/xychartDiagram-f11f50a6-B4uqsceT.js","assets/requirementDiagram-87253d64-Dkgz-B9P.js","assets/sequenceDiagram-6894f283-8w1yt_A5.js","assets/classDiagram-fb54d2a0-B6KDNP-K.js","assets/styles-b83b31c9-AroU2Phi.js","assets/classDiagram-v2-a2b738ad-BzrN1-EV.js","assets/stateDiagram-5dee940d-QdyITvZy.js","assets/styles-0784dbeb-Bh_1Vl1K.js","assets/stateDiagram-v2-1992cada-BYeiqQmL.js","assets/journeyDiagram-6625b456-C95pQKsn.js","assets/flowchart-elk-definition-ae0efee6-D2n0UGGT.js","assets/timeline-definition-bf702344-BdCHgPg4.js","assets/mindmap-definition-307c710a-DdlwPr3Y.js","assets/sankeyDiagram-707fac0f-BXumW6Uv.js","assets/Tableau10-B-NsZVaP.js","assets/blockDiagram-9f4a6865-CCynznDb.js"])))=>i.map(i=>d[i]); +import{_ as K}from"./app-Ca-A-iaw.js";function yh(t){for(var e=[],i=1;i=T?M:""+Array(T+1-w.length).join(y)+M},N={s:U,z:function(M){var T=-M.utcOffset(),y=Math.abs(T),w=Math.floor(y/60),x=y%60;return(T<=0?"+":"-")+U(w,2,"0")+":"+U(x,2,"0")},m:function M(T,y){if(T.date()1)return M(D[0])}else{var $=T.name;G[$]=T,x=$}return!w&&x&&(j=x),x||!w&&j},Z=function(M,T){if(Jt(M))return M.clone();var y=typeof T=="object"?T:{};return y.date=M,y.args=arguments,new St(y)},R=N;R.l=Qt,R.i=Jt,R.w=function(M,T){return Z(M,{locale:T.$L,utc:T.$u,x:T.$x,$offset:T.$offset})};var St=function(){function M(y){this.$L=Qt(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[W]=!0}var T=M.prototype;return T.parse=function(y){this.$d=function(w){var x=w.date,F=w.utc;if(x===null)return new Date(NaN);if(R.u(x))return new Date;if(x instanceof Date)return new Date(x);if(typeof x=="string"&&!/Z$/i.test(x)){var D=x.match(k);if(D){var $=D[2]-1||0,X=(D[7]||"0").substring(0,3);return F?new Date(Date.UTC(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,X)):new Date(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,X)}}return new Date(x)}(y),this.init()},T.init=function(){var y=this.$d;this.$y=y.getFullYear(),this.$M=y.getMonth(),this.$D=y.getDate(),this.$W=y.getDay(),this.$H=y.getHours(),this.$m=y.getMinutes(),this.$s=y.getSeconds(),this.$ms=y.getMilliseconds()},T.$utils=function(){return R},T.isValid=function(){return this.$d.toString()!==b},T.isSame=function(y,w){var x=Z(y);return this.startOf(w)<=x&&x<=this.endOf(w)},T.isAfter=function(y,w){return Z(y)-1}function l(u){var f=u.replace(n,"");return f.replace(i,function(c,p){return String.fromCharCode(p)})}function h(u){if(!u)return t.BLANK_URL;var f=l(u).replace(r,"").replace(n,"").trim();if(!f)return t.BLANK_URL;if(a(f))return f;var c=f.match(o);if(!c)return f;var p=c[0];return e.test(p)?t.BLANK_URL:f}t.sanitizeUrl=h})(Hs);var vh={value:()=>{}};function js(){for(var t=0,e=arguments.length,i={},r;t=0&&(r=i.slice(n+1),i=i.slice(0,n)),i&&!e.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}Pi.prototype=js.prototype={constructor:Pi,on:function(t,e){var i=this._,r=kh(t+"",i),n,o=-1,s=r.length;if(arguments.length<2){for(;++o0)for(var i=new Array(n),r=0,n,o;r=0&&(e=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),Ao.hasOwnProperty(e)?{space:Ao[e],local:t}:t}function wh(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===nn&&e.documentElement.namespaceURI===nn?e.createElement(t):e.createElementNS(i,t)}}function Bh(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Us(t){var e=mr(t);return(e.local?Bh:wh)(e)}function Ah(){}function Sn(t){return t==null?Ah:function(){return this.querySelector(t)}}function Lh(t){typeof t!="function"&&(t=Sn(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n=U&&(U=v+1);!(j=k[U])&&++U<_;);N._next=j||null}}return s=new _t(s,r),s._enter=a,s._exit=l,s}function Xh(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Kh(){return new _t(this._exit||this._groups.map(Xs),this._parents)}function Zh(t,e,i){var r=this.enter(),n=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(n=e(n),n&&(n=n.selection())),i==null?o.remove():i(o),r&&n?r.merge(n).order():n}function Jh(t){for(var e=t.selection?t.selection():t,i=this._groups,r=e._groups,n=i.length,o=r.length,s=Math.min(n,o),a=new Array(n),l=0;l=0;)(s=r[n])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function tc(t){t||(t=ec);function e(f,c){return f&&c?t(f.__data__,c.__data__):!f-!c}for(var i=this._groups,r=i.length,n=new Array(r),o=0;oe?1:t>=e?0:NaN}function ic(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function rc(){return Array.from(this)}function nc(){for(var t=this._groups,e=0,i=t.length;e1?this.each((e==null?gc:typeof e=="function"?_c:mc)(t,e,i??"")):Me(this.node(),t)}function Me(t,e){return t.style.getPropertyValue(e)||Ks(t).getComputedStyle(t,null).getPropertyValue(e)}function Cc(t){return function(){delete this[t]}}function xc(t,e){return function(){this[t]=e}}function bc(t,e){return function(){var i=e.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function Tc(t,e){return arguments.length>1?this.each((e==null?Cc:typeof e=="function"?bc:xc)(t,e)):this.node()[t]}function Zs(t){return t.trim().split(/^|\s+/)}function wn(t){return t.classList||new Js(t)}function Js(t){this._node=t,this._names=Zs(t.getAttribute("class")||"")}Js.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Qs(t,e){for(var i=wn(t),r=-1,n=e.length;++r=0&&(i=e.slice(r+1),e=e.slice(0,r)),{type:e,name:i}})}function Kc(t){return function(){var e=this.__on;if(e){for(var i=0,r=-1,n=e.length,o;i>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):i===8?Oi(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):i===4?Oi(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ou.exec(t))?new gt(e[1],e[2],e[3],1):(e=su.exec(t))?new gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=au.exec(t))?Oi(e[1],e[2],e[3],e[4]):(e=lu.exec(t))?Oi(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=hu.exec(t))?$o(e[1],e[2]/100,e[3]/100,1):(e=cu.exec(t))?$o(e[1],e[2]/100,e[3]/100,e[4]):Lo.hasOwnProperty(t)?Oo(Lo[t]):t==="transparent"?new gt(NaN,NaN,NaN,0):null}function Oo(t){return new gt(t>>16&255,t>>8&255,t&255,1)}function Oi(t,e,i,r){return r<=0&&(t=e=i=NaN),new gt(t,e,i,r)}function du(t){return t instanceof Ti||(t=di(t)),t?(t=t.rgb(),new gt(t.r,t.g,t.b,t.opacity)):new gt}function on(t,e,i,r){return arguments.length===1?du(t):new gt(t,e,i,r??1)}function gt(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}Bn(gt,on,ra(Ti,{brighter(t){return t=t==null?Xi:Math.pow(Xi,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gt(ge(this.r),ge(this.g),ge(this.b),Ki(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Mo,formatHex:Mo,formatHex8:pu,formatRgb:Io,toString:Io}));function Mo(){return`#${de(this.r)}${de(this.g)}${de(this.b)}`}function pu(){return`#${de(this.r)}${de(this.g)}${de(this.b)}${de((isNaN(this.opacity)?1:this.opacity)*255)}`}function Io(){const t=Ki(this.opacity);return`${t===1?"rgb(":"rgba("}${ge(this.r)}, ${ge(this.g)}, ${ge(this.b)}${t===1?")":`, ${t})`}`}function Ki(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ge(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function de(t){return t=ge(t),(t<16?"0":"")+t.toString(16)}function $o(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Ft(t,e,i,r)}function na(t){if(t instanceof Ft)return new Ft(t.h,t.s,t.l,t.opacity);if(t instanceof Ti||(t=di(t)),!t)return new Ft;if(t instanceof Ft)return t;t=t.rgb();var e=t.r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),s=NaN,a=o-n,l=(o+n)/2;return a?(e===o?s=(i-r)/a+(i0&&l<1?0:s,new Ft(s,a,l,t.opacity)}function gu(t,e,i,r){return arguments.length===1?na(t):new Ft(t,e,i,r??1)}function Ft(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}Bn(Ft,gu,ra(Ti,{brighter(t){return t=t==null?Xi:Math.pow(Xi,t),new Ft(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new Ft(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new gt(zr(t>=240?t-240:t+120,n,r),zr(t,n,r),zr(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new Ft(Do(this.h),Mi(this.s),Mi(this.l),Ki(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ki(this.opacity);return`${t===1?"hsl(":"hsla("}${Do(this.h)}, ${Mi(this.s)*100}%, ${Mi(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Do(t){return t=(t||0)%360,t<0?t+360:t}function Mi(t){return Math.max(0,Math.min(1,t||0))}function zr(t,e,i){return(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)*255}const An=t=>()=>t;function oa(t,e){return function(i){return t+i*e}}function mu(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}function bb(t,e){var i=e-t;return i?oa(t,i>180||i<-180?i-360*Math.round(i/360):i):An(isNaN(t)?e:t)}function _u(t){return(t=+t)==1?sa:function(e,i){return i-e?mu(e,i,t):An(isNaN(e)?i:e)}}function sa(t,e){var i=e-t;return i?oa(t,i):An(isNaN(t)?e:t)}const No=function t(e){var i=_u(e);function r(n,o){var s=i((n=on(n)).r,(o=on(o)).r),a=i(n.g,o.g),l=i(n.b,o.b),h=sa(n.opacity,o.opacity);return function(u){return n.r=s(u),n.g=a(u),n.b=l(u),n.opacity=h(u),n+""}}return r.gamma=t,r}(1);function ne(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var sn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wr=new RegExp(sn.source,"g");function yu(t){return function(){return t}}function Cu(t){return function(e){return t(e)+""}}function xu(t,e){var i=sn.lastIndex=Wr.lastIndex=0,r,n,o,s=-1,a=[],l=[];for(t=t+"",e=e+"";(r=sn.exec(t))&&(n=Wr.exec(e));)(o=n.index)>i&&(o=e.slice(i,o),a[s]?a[s]+=o:a[++s]=o),(r=r[0])===(n=n[0])?a[s]?a[s]+=n:a[++s]=n:(a[++s]=null,l.push({i:s,x:ne(r,n)})),i=Wr.lastIndex;return i180?u+=360:u-h>180&&(h+=360),c.push({i:f.push(n(f)+"rotate(",null,r)-2,x:ne(h,u)})):u&&f.push(n(f)+"rotate("+u+r)}function a(h,u,f,c){h!==u?c.push({i:f.push(n(f)+"skewX(",null,r)-2,x:ne(h,u)}):u&&f.push(n(f)+"skewX("+u+r)}function l(h,u,f,c,p,_){if(h!==f||u!==c){var b=p.push(n(p)+"scale(",null,",",null,")");_.push({i:b-4,x:ne(h,f)},{i:b-2,x:ne(u,c)})}else(f!==1||c!==1)&&p.push(n(p)+"scale("+f+","+c+")")}return function(h,u){var f=[],c=[];return h=t(h),u=t(u),o(h.translateX,h.translateY,u.translateX,u.translateY,f,c),s(h.rotate,u.rotate,f,c),a(h.skewX,u.skewX,f,c),l(h.scaleX,h.scaleY,u.scaleX,u.scaleY,f,c),h=u=null,function(p){for(var _=-1,b=c.length,k;++_=0&&t._call.call(void 0,e),t=t._next;--Ie}function Po(){_e=(Ji=pi.now())+_r,Ie=ei=0;try{wu()}finally{Ie=0,Au(),_e=0}}function Bu(){var t=pi.now(),e=t-Ji;e>ha&&(_r-=e,Ji=t)}function Au(){for(var t,e=Zi,i,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(i=e._next,e._next=null,e=t?t._next=i:Zi=i);ii=t,ln(r)}function ln(t){if(!Ie){ei&&(ei=clearTimeout(ei));var e=t-_e;e>24?(t<1/0&&(ei=setTimeout(Po,t-pi.now()-_r)),Ge&&(Ge=clearInterval(Ge))):(Ge||(Ji=pi.now(),Ge=setInterval(Bu,ha)),Ie=1,ca(Po))}}function qo(t,e,i){var r=new Qi;return e=e==null?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,i),r}var Lu=js("start","end","cancel","interrupt"),Fu=[],fa=0,zo=1,hn=2,qi=3,Wo=4,cn=5,zi=6;function yr(t,e,i,r,n,o){var s=t.__transition;if(!s)t.__transition={};else if(i in s)return;Eu(t,i,{name:e,index:r,group:n,on:Lu,tween:Fu,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:fa})}function Fn(t,e){var i=Mt(t,e);if(i.state>fa)throw new Error("too late; already scheduled");return i}function zt(t,e){var i=Mt(t,e);if(i.state>qi)throw new Error("too late; already running");return i}function Mt(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function Eu(t,e,i){var r=t.__transition,n;r[e]=i,i.timer=ua(o,0,i.time);function o(h){i.state=zo,i.timer.restart(s,i.delay,i.time),i.delay<=h&&s(h-i.delay)}function s(h){var u,f,c,p;if(i.state!==zo)return l();for(u in r)if(p=r[u],p.name===i.name){if(p.state===qi)return qo(s);p.state===Wo?(p.state=zi,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[u]):+uhn&&r.state=0&&(e=e.slice(0,i)),!e||e==="start"})}function hf(t,e,i){var r,n,o=lf(e)?Fn:zt;return function(){var s=o(this,t),a=s.on;a!==r&&(n=(r=a).copy()).on(e,i),s.on=n}}function cf(t,e){var i=this._id;return arguments.length<2?Mt(this.node(),i).on.on(t):this.each(hf(i,t,e))}function uf(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}function ff(){return this.on("end.remove",uf(this._id))}function df(t){var e=this._name,i=this._id;typeof t!="function"&&(t=Sn(t));for(var r=this._groups,n=r.length,o=new Array(n),s=0;s1?0:t<-1?On:Math.acos(t)}function Eb(t){return t>=1?jo:t<=-1?-jo:Math.asin(t)}function ma(t){this._context=t}ma.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Rf(t){return new ma(t)}class _a{constructor(e,i){this._context=e,this._x=i}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,i){switch(e=+e,i=+i,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,i):this._context.moveTo(e,i);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,i,e,i):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+i)/2,e,this._y0,e,i);break}}this._x0=e,this._y0=i}}function Pf(t){return new _a(t,!0)}function qf(t){return new _a(t,!1)}function ae(){}function tr(t,e,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+i)/6)}function Cr(t){this._context=t}Cr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:tr(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function zf(t){return new Cr(t)}function ya(t){this._context=t}ya.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Wf(t){return new ya(t)}function Ca(t){this._context=t}Ca.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:tr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Hf(t){return new Ca(t)}function xa(t,e){this._basis=new Cr(t),this._beta=e}xa.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r=t[0],n=e[0],o=t[i]-r,s=e[i]-n,a=-1,l;++a<=i;)l=a/i,this._basis.point(this._beta*t[a]+(1-this._beta)*(r+l*o),this._beta*e[a]+(1-this._beta)*(n+l*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const jf=function t(e){function i(r){return e===1?new Cr(r):new xa(r,e)}return i.beta=function(r){return t(+r)},i}(.85);function er(t,e,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function Mn(t,e){this._context=t,this._k=(1-e)/6}Mn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:er(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Uf=function t(e){function i(r){return new Mn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function In(t,e){this._context=t,this._k=(1-e)/6}In.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Yf=function t(e){function i(r){return new In(r,e)}return i.tension=function(r){return t(+r)},i}(0);function $n(t,e){this._context=t,this._k=(1-e)/6}$n.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:er(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Vf=function t(e){function i(r){return new $n(r,e)}return i.tension=function(r){return t(+r)},i}(0);function Dn(t,e,i){var r=t._x1,n=t._y1,o=t._x2,s=t._y2;if(t._l01_a>Ho){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Ho){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*h+t._x1*t._l23_2a-e*t._l12_2a)/u,s=(s*h+t._y1*t._l23_2a-i*t._l12_2a)/u}t._context.bezierCurveTo(r,n,o,s,t._x2,t._y2)}function ba(t,e){this._context=t,this._alpha=e}ba.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Gf=function t(e){function i(r){return e?new ba(r,e):new Mn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function Ta(t,e){this._context=t,this._alpha=e}Ta.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Xf=function t(e){function i(r){return e?new Ta(r,e):new In(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function va(t,e){this._context=t,this._alpha=e}va.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Dn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Kf=function t(e){function i(r){return e?new va(r,e):new $n(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function ka(t){this._context=t}ka.prototype={areaStart:ae,areaEnd:ae,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Zf(t){return new ka(t)}function Uo(t){return t<0?-1:1}function Yo(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),s=(i-t._y1)/(n||r<0&&-0),a=(o*n+s*r)/(r+n);return(Uo(o)+Uo(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(a))||0}function Vo(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Hr(t,e,i){var r=t._x0,n=t._y0,o=t._x1,s=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,n+a*e,o-a,s-a*i,o,s)}function ir(t){this._context=t}ir.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Hr(this,this._t0,Vo(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Hr(this,Vo(this,i=Yo(this,t,e)),i);break;default:Hr(this,this._t0,i=Yo(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}};function Sa(t){this._context=new wa(t)}(Sa.prototype=Object.create(ir.prototype)).point=function(t,e){ir.prototype.point.call(this,e,t)};function wa(t){this._context=t}wa.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}};function Jf(t){return new ir(t)}function Qf(t){return new Sa(t)}function Ba(t){this._context=t}Ba.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),i===2)this._context.lineTo(t[1],e[1]);else for(var r=Go(t),n=Go(e),o=0,s=1;s=0;--e)n[e]=(s[e]-n[e+1])/o[e];for(o[i-1]=(t[i]+n[i-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}break}}this._x=t,this._y=e}};function ed(t){return new xr(t,.5)}function id(t){return new xr(t,0)}function rd(t){return new xr(t,1)}function ri(t,e,i){this.k=t,this.x=e,this.y=i}ri.prototype={constructor:ri,scale:function(t){return t===1?this:new ri(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ri(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};ri.prototype;/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */const{entries:Aa,setPrototypeOf:Xo,isFrozen:nd,getPrototypeOf:od,getOwnPropertyDescriptor:sd}=Object;let{freeze:ft,seal:vt,create:La}=Object,{apply:un,construct:fn}=typeof Reflect<"u"&&Reflect;ft||(ft=function(e){return e});vt||(vt=function(e){return e});un||(un=function(e,i,r){return e.apply(i,r)});fn||(fn=function(e,i){return new e(...i)});const $i=yt(Array.prototype.forEach),Ko=yt(Array.prototype.pop),Xe=yt(Array.prototype.push),Wi=yt(String.prototype.toLowerCase),jr=yt(String.prototype.toString),Zo=yt(String.prototype.match),Ke=yt(String.prototype.replace),ad=yt(String.prototype.indexOf),ld=yt(String.prototype.trim),Lt=yt(Object.prototype.hasOwnProperty),ht=yt(RegExp.prototype.test),Ze=hd(TypeError);function yt(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:Wi;Xo&&Xo(t,null);let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){const o=i(n);o!==n&&(nd(e)||(e[r]=o),n=o)}t[n]=!0}return t}function cd(t){for(let e=0;e/gm),gd=vt(/\${[\w\W]*}/gm),md=vt(/^data-[\-\w.\u00B7-\uFFFF]/),_d=vt(/^aria-[\-\w]+$/),Fa=vt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),yd=vt(/^(?:\w+script|data):/i),Cd=vt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ea=vt(/^html$/i),xd=vt(/^[a-z][.\w]*(-[.\w]+)+$/i);var is=Object.freeze({__proto__:null,MUSTACHE_EXPR:dd,ERB_EXPR:pd,TMPLIT_EXPR:gd,DATA_ATTR:md,ARIA_ATTR:_d,IS_ALLOWED_URI:Fa,IS_SCRIPT_OR_DATA:yd,ATTR_WHITESPACE:Cd,DOCTYPE_NAME:Ea,CUSTOM_ELEMENT:xd});const Qe={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},bd=function(){return typeof window>"u"?null:window},Td=function(e,i){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const n="data-tt-policy-suffix";i&&i.hasAttribute(n)&&(r=i.getAttribute(n));const o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function Oa(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:bd();const e=B=>Oa(B);if(e.version="3.1.7",e.removed=[],!t||!t.document||t.document.nodeType!==Qe.document)return e.isSupported=!1,e;let{document:i}=t;const r=i,n=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:s,Node:a,Element:l,NodeFilter:h,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:f,DOMParser:c,trustedTypes:p}=t,_=l.prototype,b=Je(_,"cloneNode"),k=Je(_,"remove"),P=Je(_,"nextSibling"),v=Je(_,"childNodes"),U=Je(_,"parentNode");if(typeof s=="function"){const B=i.createElement("template");B.content&&B.content.ownerDocument&&(i=B.content.ownerDocument)}let N,j="";const{implementation:G,createNodeIterator:W,createDocumentFragment:Jt,getElementsByTagName:Qt}=i,{importNode:Z}=r;let R={};e.isSupported=typeof Aa=="function"&&typeof U=="function"&&G&&G.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:St,ERB_EXPR:te,TMPLIT_EXPR:M,DATA_ATTR:T,ARIA_ATTR:y,IS_SCRIPT_OR_DATA:w,ATTR_WHITESPACE:x,CUSTOM_ELEMENT:F}=is;let{IS_ALLOWED_URI:D}=is,$=null;const X=z({},[...Jo,...Ur,...Yr,...Vr,...Qo]);let q=null;const tt=z({},[...ts,...Gr,...es,...Di]);let H=Object.seal(La(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ct=null,wt=null,ee=!0,Bt=!0,it=!1,At=!0,xt=!1,ie=!0,ce=!1,Ir=!1,$r=!1,ve=!1,Bi=!1,Ai=!1,oo=!0,so=!1;const ch="user-content-";let Dr=!0,Ue=!1,ke={},Se=null;const ao=z({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let lo=null;const ho=z({},["audio","video","img","source","image","track"]);let Nr=null;const co=z({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Li="http://www.w3.org/1998/Math/MathML",Fi="http://www.w3.org/2000/svg",Ht="http://www.w3.org/1999/xhtml";let we=Ht,Rr=!1,Pr=null;const uh=z({},[Li,Fi,Ht],jr);let Ye=null;const fh=["application/xhtml+xml","text/html"],dh="text/html";let et=null,Be=null;const ph=i.createElement("form"),uo=function(d){return d instanceof RegExp||d instanceof Function},qr=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Be&&Be===d)){if((!d||typeof d!="object")&&(d={}),d=ue(d),Ye=fh.indexOf(d.PARSER_MEDIA_TYPE)===-1?dh:d.PARSER_MEDIA_TYPE,et=Ye==="application/xhtml+xml"?jr:Wi,$=Lt(d,"ALLOWED_TAGS")?z({},d.ALLOWED_TAGS,et):X,q=Lt(d,"ALLOWED_ATTR")?z({},d.ALLOWED_ATTR,et):tt,Pr=Lt(d,"ALLOWED_NAMESPACES")?z({},d.ALLOWED_NAMESPACES,jr):uh,Nr=Lt(d,"ADD_URI_SAFE_ATTR")?z(ue(co),d.ADD_URI_SAFE_ATTR,et):co,lo=Lt(d,"ADD_DATA_URI_TAGS")?z(ue(ho),d.ADD_DATA_URI_TAGS,et):ho,Se=Lt(d,"FORBID_CONTENTS")?z({},d.FORBID_CONTENTS,et):ao,Ct=Lt(d,"FORBID_TAGS")?z({},d.FORBID_TAGS,et):{},wt=Lt(d,"FORBID_ATTR")?z({},d.FORBID_ATTR,et):{},ke=Lt(d,"USE_PROFILES")?d.USE_PROFILES:!1,ee=d.ALLOW_ARIA_ATTR!==!1,Bt=d.ALLOW_DATA_ATTR!==!1,it=d.ALLOW_UNKNOWN_PROTOCOLS||!1,At=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xt=d.SAFE_FOR_TEMPLATES||!1,ie=d.SAFE_FOR_XML!==!1,ce=d.WHOLE_DOCUMENT||!1,ve=d.RETURN_DOM||!1,Bi=d.RETURN_DOM_FRAGMENT||!1,Ai=d.RETURN_TRUSTED_TYPE||!1,$r=d.FORCE_BODY||!1,oo=d.SANITIZE_DOM!==!1,so=d.SANITIZE_NAMED_PROPS||!1,Dr=d.KEEP_CONTENT!==!1,Ue=d.IN_PLACE||!1,D=d.ALLOWED_URI_REGEXP||Fa,we=d.NAMESPACE||Ht,H=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&uo(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&uo(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xt&&(Bt=!1),Bi&&(ve=!0),ke&&($=z({},Qo),q=[],ke.html===!0&&(z($,Jo),z(q,ts)),ke.svg===!0&&(z($,Ur),z(q,Gr),z(q,Di)),ke.svgFilters===!0&&(z($,Yr),z(q,Gr),z(q,Di)),ke.mathMl===!0&&(z($,Vr),z(q,es),z(q,Di))),d.ADD_TAGS&&($===X&&($=ue($)),z($,d.ADD_TAGS,et)),d.ADD_ATTR&&(q===tt&&(q=ue(q)),z(q,d.ADD_ATTR,et)),d.ADD_URI_SAFE_ATTR&&z(Nr,d.ADD_URI_SAFE_ATTR,et),d.FORBID_CONTENTS&&(Se===ao&&(Se=ue(Se)),z(Se,d.FORBID_CONTENTS,et)),Dr&&($["#text"]=!0),ce&&z($,["html","head","body"]),$.table&&(z($,["tbody"]),delete Ct.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');N=d.TRUSTED_TYPES_POLICY,j=N.createHTML("")}else N===void 0&&(N=Td(p,n)),N!==null&&typeof j=="string"&&(j=N.createHTML(""));ft&&ft(d),Be=d}},fo=z({},["mi","mo","mn","ms","mtext"]),po=z({},["annotation-xml"]),gh=z({},["title","style","font","a","script"]),go=z({},[...Ur,...Yr,...ud]),mo=z({},[...Vr,...fd]),mh=function(d){let m=U(d);(!m||!m.tagName)&&(m={namespaceURI:we,tagName:"template"});const S=Wi(d.tagName),Y=Wi(m.tagName);return Pr[d.namespaceURI]?d.namespaceURI===Fi?m.namespaceURI===Ht?S==="svg":m.namespaceURI===Li?S==="svg"&&(Y==="annotation-xml"||fo[Y]):!!go[S]:d.namespaceURI===Li?m.namespaceURI===Ht?S==="math":m.namespaceURI===Fi?S==="math"&&po[Y]:!!mo[S]:d.namespaceURI===Ht?m.namespaceURI===Fi&&!po[Y]||m.namespaceURI===Li&&!fo[Y]?!1:!mo[S]&&(gh[S]||!go[S]):!!(Ye==="application/xhtml+xml"&&Pr[d.namespaceURI]):!1},It=function(d){Xe(e.removed,{element:d});try{U(d).removeChild(d)}catch{k(d)}},Ei=function(d,m){try{Xe(e.removed,{attribute:m.getAttributeNode(d),from:m})}catch{Xe(e.removed,{attribute:null,from:m})}if(m.removeAttribute(d),d==="is"&&!q[d])if(ve||Bi)try{It(m)}catch{}else try{m.setAttribute(d,"")}catch{}},_o=function(d){let m=null,S=null;if($r)d=""+d;else{const rt=Zo(d,/^[\r\n\t ]+/);S=rt&&rt[0]}Ye==="application/xhtml+xml"&&we===Ht&&(d=''+d+"");const Y=N?N.createHTML(d):d;if(we===Ht)try{m=new c().parseFromString(Y,Ye)}catch{}if(!m||!m.documentElement){m=G.createDocument(we,"template",null);try{m.documentElement.innerHTML=Rr?j:Y}catch{}}const nt=m.body||m.documentElement;return d&&S&&nt.insertBefore(i.createTextNode(S),nt.childNodes[0]||null),we===Ht?Qt.call(m,ce?"html":"body")[0]:ce?m.documentElement:nt},yo=function(d){return W.call(d.ownerDocument||d,d,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},Co=function(d){return d instanceof f&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof u)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},xo=function(d){return typeof a=="function"&&d instanceof a},jt=function(d,m,S){R[d]&&$i(R[d],Y=>{Y.call(e,m,S,Be)})},bo=function(d){let m=null;if(jt("beforeSanitizeElements",d,null),Co(d))return It(d),!0;const S=et(d.nodeName);if(jt("uponSanitizeElement",d,{tagName:S,allowedTags:$}),d.hasChildNodes()&&!xo(d.firstElementChild)&&ht(/<[/\w]/g,d.innerHTML)&&ht(/<[/\w]/g,d.textContent)||d.nodeType===Qe.progressingInstruction||ie&&d.nodeType===Qe.comment&&ht(/<[/\w]/g,d.data))return It(d),!0;if(!$[S]||Ct[S]){if(!Ct[S]&&vo(S)&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,S)||H.tagNameCheck instanceof Function&&H.tagNameCheck(S)))return!1;if(Dr&&!Se[S]){const Y=U(d)||d.parentNode,nt=v(d)||d.childNodes;if(nt&&Y){const rt=nt.length;for(let dt=rt-1;dt>=0;--dt){const $t=b(nt[dt],!0);$t.__removalCount=(d.__removalCount||0)+1,Y.insertBefore($t,P(d))}}}return It(d),!0}return d instanceof l&&!mh(d)||(S==="noscript"||S==="noembed"||S==="noframes")&&ht(/<\/no(script|embed|frames)/i,d.innerHTML)?(It(d),!0):(xt&&d.nodeType===Qe.text&&(m=d.textContent,$i([St,te,M],Y=>{m=Ke(m,Y," ")}),d.textContent!==m&&(Xe(e.removed,{element:d.cloneNode()}),d.textContent=m)),jt("afterSanitizeElements",d,null),!1)},To=function(d,m,S){if(oo&&(m==="id"||m==="name")&&(S in i||S in ph))return!1;if(!(Bt&&!wt[m]&&ht(T,m))){if(!(ee&&ht(y,m))){if(!q[m]||wt[m]){if(!(vo(d)&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,d)||H.tagNameCheck instanceof Function&&H.tagNameCheck(d))&&(H.attributeNameCheck instanceof RegExp&&ht(H.attributeNameCheck,m)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(m))||m==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&ht(H.tagNameCheck,S)||H.tagNameCheck instanceof Function&&H.tagNameCheck(S))))return!1}else if(!Nr[m]){if(!ht(D,Ke(S,x,""))){if(!((m==="src"||m==="xlink:href"||m==="href")&&d!=="script"&&ad(S,"data:")===0&&lo[d])){if(!(it&&!ht(w,Ke(S,x,"")))){if(S)return!1}}}}}}return!0},vo=function(d){return d!=="annotation-xml"&&Zo(d,F)},ko=function(d){jt("beforeSanitizeAttributes",d,null);const{attributes:m}=d;if(!m)return;const S={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:q};let Y=m.length;for(;Y--;){const nt=m[Y],{name:rt,namespaceURI:dt,value:$t}=nt,Ve=et(rt);let lt=rt==="value"?$t:ld($t);if(S.attrName=Ve,S.attrValue=lt,S.keepAttr=!0,S.forceKeepAttr=void 0,jt("uponSanitizeAttribute",d,S),lt=S.attrValue,S.forceKeepAttr||(Ei(rt,d),!S.keepAttr))continue;if(!At&&ht(/\/>/i,lt)){Ei(rt,d);continue}xt&&$i([St,te,M],wo=>{lt=Ke(lt,wo," ")});const So=et(d.nodeName);if(To(So,Ve,lt)){if(so&&(Ve==="id"||Ve==="name")&&(Ei(rt,d),lt=ch+lt),ie&&ht(/((--!?|])>)|<\/(style|title)/i,lt)){Ei(rt,d);continue}if(N&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!dt)switch(p.getAttributeType(So,Ve)){case"TrustedHTML":{lt=N.createHTML(lt);break}case"TrustedScriptURL":{lt=N.createScriptURL(lt);break}}try{dt?d.setAttributeNS(dt,rt,lt):d.setAttribute(rt,lt),Co(d)?It(d):Ko(e.removed)}catch{}}}jt("afterSanitizeAttributes",d,null)},_h=function B(d){let m=null;const S=yo(d);for(jt("beforeSanitizeShadowDOM",d,null);m=S.nextNode();)jt("uponSanitizeShadowNode",m,null),!bo(m)&&(m.content instanceof o&&B(m.content),ko(m));jt("afterSanitizeShadowDOM",d,null)};return e.sanitize=function(B){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=null,S=null,Y=null,nt=null;if(Rr=!B,Rr&&(B=""),typeof B!="string"&&!xo(B))if(typeof B.toString=="function"){if(B=B.toString(),typeof B!="string")throw Ze("dirty is not a string, aborting")}else throw Ze("toString is not a function");if(!e.isSupported)return B;if(Ir||qr(d),e.removed=[],typeof B=="string"&&(Ue=!1),Ue){if(B.nodeName){const $t=et(B.nodeName);if(!$[$t]||Ct[$t])throw Ze("root node is forbidden and cannot be sanitized in-place")}}else if(B instanceof a)m=_o(""),S=m.ownerDocument.importNode(B,!0),S.nodeType===Qe.element&&S.nodeName==="BODY"||S.nodeName==="HTML"?m=S:m.appendChild(S);else{if(!ve&&!xt&&!ce&&B.indexOf("<")===-1)return N&&Ai?N.createHTML(B):B;if(m=_o(B),!m)return ve?null:Ai?j:""}m&&$r&&It(m.firstChild);const rt=yo(Ue?B:m);for(;Y=rt.nextNode();)bo(Y)||(Y.content instanceof o&&_h(Y.content),ko(Y));if(Ue)return B;if(ve){if(Bi)for(nt=Jt.call(m.ownerDocument);m.firstChild;)nt.appendChild(m.firstChild);else nt=m;return(q.shadowroot||q.shadowrootmode)&&(nt=Z.call(r,nt,!0)),nt}let dt=ce?m.outerHTML:m.innerHTML;return ce&&$["!doctype"]&&m.ownerDocument&&m.ownerDocument.doctype&&m.ownerDocument.doctype.name&&ht(Ea,m.ownerDocument.doctype.name)&&(dt=" +`+dt),xt&&$i([St,te,M],$t=>{dt=Ke(dt,$t," ")}),N&&Ai?N.createHTML(dt):dt},e.setConfig=function(){let B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qr(B),Ir=!0},e.clearConfig=function(){Be=null,Ir=!1},e.isValidAttribute=function(B,d,m){Be||qr({});const S=et(B),Y=et(d);return To(S,Y,m)},e.addHook=function(B,d){typeof d=="function"&&(R[B]=R[B]||[],Xe(R[B],d))},e.removeHook=function(B){if(R[B])return Ko(R[B])},e.removeHooks=function(B){R[B]&&(R[B]=[])},e.removeAllHooks=function(){R={}},e}var $e=Oa();const Hi={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+(e-t)*6*i:i<1/2?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},r)=>{if(!e)return i*2.55;t/=360,e/=100,i/=100;const n=i<.5?i*(1+e):i+e-i*e,o=2*i-n;switch(r){case"r":return Hi.hue2rgb(o,n,t+1/3)*255;case"g":return Hi.hue2rgb(o,n,t)*255;case"b":return Hi.hue2rgb(o,n,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),o=Math.min(t,e,i),s=(n+o)/2;if(r==="l")return s*100;if(n===o)return 0;const a=n-o,l=s>.5?a/(2-n-o):a/(n+o);if(r==="s")return l*100;switch(n){case t:return((e-i)/a+(ee>i?Math.min(e,Math.max(i,t)):Math.min(i,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},kd={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},I={channel:Hi,lang:vd,unit:kd},re={};for(let t=0;t<=255;t++)re[t]=I.unit.dec2hex(t);const ot={ALL:0,RGB:1,HSL:2};class Sd{constructor(){this.type=ot.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=ot.ALL}is(e){return this.type===e}}class wd{constructor(e,i){this.color=i,this.changed=!1,this.data=e,this.type=new Sd}set(e,i){return this.color=i,this.changed=!1,this.data=e,this.type.type=ot.ALL,this}_ensureHSL(){const e=this.data,{h:i,s:r,l:n}=e;i===void 0&&(e.h=I.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=I.channel.rgb2hsl(e,"s")),n===void 0&&(e.l=I.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:i,g:r,b:n}=e;i===void 0&&(e.r=I.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=I.channel.hsl2rgb(e,"g")),n===void 0&&(e.b=I.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,i=e.r;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,i=e.g;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,i=e.b;return!this.type.is(ot.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,i=e.h;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,i=e.s;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,i=e.l;return!this.type.is(ot.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(ot.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(ot.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(ot.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(ot.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(ot.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(ot.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const br=new wd({r:0,g:0,b:0,a:0},"transparent"),Oe={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(Oe.re);if(!e)return;const i=e[1],r=parseInt(i,16),n=i.length,o=n%4===0,s=n>4,a=s?1:17,l=s?8:4,h=o?0:-1,u=s?255:15;return br.set({r:(r>>l*(h+3)&u)*a,g:(r>>l*(h+2)&u)*a,b:(r>>l*(h+1)&u)*a,a:o?(r&u)*a/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`#${re[Math.round(e)]}${re[Math.round(i)]}${re[Math.round(r)]}${re[Math.round(n*255)]}`:`#${re[Math.round(e)]}${re[Math.round(i)]}${re[Math.round(r)]}`}},pe={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(pe.hueRe);if(e){const[,i,r]=e;switch(r){case"grad":return I.channel.clamp.h(parseFloat(i)*.9);case"rad":return I.channel.clamp.h(parseFloat(i)*180/Math.PI);case"turn":return I.channel.clamp.h(parseFloat(i)*360)}}return I.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const i=t.match(pe.re);if(!i)return;const[,r,n,o,s,a]=i;return br.set({h:pe._hue2deg(r),s:I.channel.clamp.s(parseFloat(n)),l:I.channel.clamp.l(parseFloat(o)),a:s?I.channel.clamp.a(a?parseFloat(s)/100:parseFloat(s)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%, ${n})`:`hsl(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%)`}},oi={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=oi.colors[t];if(e)return Oe.parse(e)},stringify:t=>{const e=Oe.stringify(t);for(const i in oi.colors)if(oi.colors[i]===e)return i}},ni={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const i=t.match(ni.re);if(!i)return;const[,r,n,o,s,a,l,h,u]=i;return br.set({r:I.channel.clamp.r(n?parseFloat(r)*2.55:parseFloat(r)),g:I.channel.clamp.g(s?parseFloat(o)*2.55:parseFloat(o)),b:I.channel.clamp.b(l?parseFloat(a)*2.55:parseFloat(a)),a:h?I.channel.clamp.a(u?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)}, ${I.lang.round(n)})`:`rgb(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)})`}},Pt={format:{keyword:oi,hex:Oe,rgb:ni,rgba:ni,hsl:pe,hsla:pe},parse:t=>{if(typeof t!="string")return t;const e=Oe.parse(t)||ni.parse(t)||pe.parse(t)||oi.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(ot.HSL)||t.data.r===void 0?pe.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ni.stringify(t):Oe.stringify(t)},Ma=(t,e)=>{const i=Pt.parse(t);for(const r in e)i[r]=I.channel.clamp[r](e[r]);return Pt.stringify(i)},si=(t,e,i=0,r=1)=>{if(typeof t!="number")return Ma(t,{a:e});const n=br.set({r:I.channel.clamp.r(t),g:I.channel.clamp.g(e),b:I.channel.clamp.b(i),a:I.channel.clamp.a(r)});return Pt.stringify(n)},Bd=t=>{const{r:e,g:i,b:r}=Pt.parse(t),n=.2126*I.channel.toLinear(e)+.7152*I.channel.toLinear(i)+.0722*I.channel.toLinear(r);return I.lang.round(n)},Ad=t=>Bd(t)>=.5,vi=t=>!Ad(t),Ia=(t,e,i)=>{const r=Pt.parse(t),n=r[e],o=I.channel.clamp[e](n+i);return n!==o&&(r[e]=o),Pt.stringify(r)},A=(t,e)=>Ia(t,"l",e),O=(t,e)=>Ia(t,"l",-e),g=(t,e)=>{const i=Pt.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return Ma(t,r)},Ld=(t,e,i=50)=>{const{r,g:n,b:o,a:s}=Pt.parse(t),{r:a,g:l,b:h,a:u}=Pt.parse(e),f=i/100,c=f*2-1,p=s-u,b=((c*p===-1?c:(c+p)/(1+c*p))+1)/2,k=1-b,P=r*b+a*k,v=n*b+l*k,U=o*b+h*k,N=s*f+u*(1-f);return si(P,v,U,N)},C=(t,e=100)=>{const i=Pt.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,Ld(i,t,e)};var $a=typeof global=="object"&&global&&global.Object===Object&&global,Fd=typeof self=="object"&&self&&self.Object===Object&&self,Wt=$a||Fd||Function("return this")(),rr=Wt.Symbol,Da=Object.prototype,Ed=Da.hasOwnProperty,Od=Da.toString,ti=rr?rr.toStringTag:void 0;function Md(t){var e=Ed.call(t,ti),i=t[ti];try{t[ti]=void 0;var r=!0}catch{}var n=Od.call(t);return r&&(e?t[ti]=i:delete t[ti]),n}var Id=Object.prototype,$d=Id.toString;function Dd(t){return $d.call(t)}var Nd="[object Null]",Rd="[object Undefined]",rs=rr?rr.toStringTag:void 0;function We(t){return t==null?t===void 0?Rd:Nd:rs&&rs in Object(t)?Md(t):Dd(t)}function xe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Pd="[object AsyncFunction]",qd="[object Function]",zd="[object GeneratorFunction]",Wd="[object Proxy]";function Nn(t){if(!xe(t))return!1;var e=We(t);return e==qd||e==zd||e==Pd||e==Wd}var Xr=Wt["__core-js_shared__"],ns=function(){var t=/[^.]+$/.exec(Xr&&Xr.keys&&Xr.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Hd(t){return!!ns&&ns in t}var jd=Function.prototype,Ud=jd.toString;function be(t){if(t!=null){try{return Ud.call(t)}catch{}try{return t+""}catch{}}return""}var Yd=/[\\^$.*+?()[\]{}|]/g,Vd=/^\[object .+?Constructor\]$/,Gd=Function.prototype,Xd=Object.prototype,Kd=Gd.toString,Zd=Xd.hasOwnProperty,Jd=RegExp("^"+Kd.call(Zd).replace(Yd,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Qd(t){if(!xe(t)||Hd(t))return!1;var e=Nn(t)?Jd:Vd;return e.test(be(t))}function tp(t,e){return t==null?void 0:t[e]}function Te(t,e){var i=tp(t,e);return Qd(i)?i:void 0}var gi=Te(Object,"create");function ep(){this.__data__=gi?gi(null):{},this.size=0}function ip(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var rp="__lodash_hash_undefined__",np=Object.prototype,op=np.hasOwnProperty;function sp(t){var e=this.__data__;if(gi){var i=e[t];return i===rp?void 0:i}return op.call(e,t)?e[t]:void 0}var ap=Object.prototype,lp=ap.hasOwnProperty;function hp(t){var e=this.__data__;return gi?e[t]!==void 0:lp.call(e,t)}var cp="__lodash_hash_undefined__";function up(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=gi&&e===void 0?cp:e,this}function ye(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1}function yp(t,e){var i=this.__data__,r=vr(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Zt(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=Up}function wr(t){return t!=null&&za(t.length)&&!Nn(t)}function Yp(t){return Si(t)&&wr(t)}function Vp(){return!1}var Wa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,us=Wa&&typeof module=="object"&&module&&!module.nodeType&&module,Gp=us&&us.exports===Wa,fs=Gp?Wt.Buffer:void 0,Xp=fs?fs.isBuffer:void 0,Pn=Xp||Vp,Kp="[object Object]",Zp=Function.prototype,Jp=Object.prototype,Ha=Zp.toString,Qp=Jp.hasOwnProperty,tg=Ha.call(Object);function eg(t){if(!Si(t)||We(t)!=Kp)return!1;var e=Pa(t);if(e===null)return!0;var i=Qp.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Ha.call(i)==tg}var ig="[object Arguments]",rg="[object Array]",ng="[object Boolean]",og="[object Date]",sg="[object Error]",ag="[object Function]",lg="[object Map]",hg="[object Number]",cg="[object Object]",ug="[object RegExp]",fg="[object Set]",dg="[object String]",pg="[object WeakMap]",gg="[object ArrayBuffer]",mg="[object DataView]",_g="[object Float32Array]",yg="[object Float64Array]",Cg="[object Int8Array]",xg="[object Int16Array]",bg="[object Int32Array]",Tg="[object Uint8Array]",vg="[object Uint8ClampedArray]",kg="[object Uint16Array]",Sg="[object Uint32Array]",V={};V[_g]=V[yg]=V[Cg]=V[xg]=V[bg]=V[Tg]=V[vg]=V[kg]=V[Sg]=!0;V[ig]=V[rg]=V[gg]=V[ng]=V[mg]=V[og]=V[sg]=V[ag]=V[lg]=V[hg]=V[cg]=V[ug]=V[fg]=V[dg]=V[pg]=!1;function wg(t){return Si(t)&&za(t.length)&&!!V[We(t)]}function Bg(t){return function(e){return t(e)}}var ja=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ai=ja&&typeof module=="object"&&module&&!module.nodeType&&module,Ag=ai&&ai.exports===ja,Kr=Ag&&$a.process,ds=function(){try{var t=ai&&ai.require&&ai.require("util").types;return t||Kr&&Kr.binding&&Kr.binding("util")}catch{}}(),ps=ds&&ds.isTypedArray,qn=ps?Bg(ps):wg;function pn(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var Lg=Object.prototype,Fg=Lg.hasOwnProperty;function Eg(t,e,i){var r=t[e];(!(Fg.call(t,e)&&Tr(r,i))||i===void 0&&!(e in t))&&Rn(t,e,i)}function Og(t,e,i,r){var n=!i;i||(i={});for(var o=-1,s=e.length;++o-1&&t%1==0&&t0){if(++e>=Xg)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Qg=Jg(Gg);function tm(t,e){return Qg(Yg(t,e,Ga),t+"")}function em(t,e,i){if(!xe(i))return!1;var r=typeof e;return(r=="number"?wr(i)&&Ua(e,i.length):r=="string"&&e in i)?Tr(i[e],t):!1}function im(t){return tm(function(e,i){var r=-1,n=i.length,o=n>1?i[n-1]:void 0,s=n>2?i[2]:void 0;for(o=t.length>3&&typeof o=="function"?(n--,o):void 0,s&&em(i[0],i[1],s)&&(o=n<3?void 0:o,n=1),e=Object(e);++r0?_i(je,--kt):0,Ne--,J===10&&(Ne=1,Br--),J}function Et(){return J=kt2||yi(J)>3?"":" "}function pm(t,e){for(;--e&&Et()&&!(J<48||J>102||J>57&&J<65||J>70&&J<97););return Ar(t,Ui()+(e<6&&oe()==32&&Et()==32))}function gn(t){for(;Et();)switch(J){case t:return kt;case 34:case 39:t!==34&&t!==39&&gn(J);break;case 40:t===41&&gn(t);break;case 92:Et();break}return kt}function gm(t,e){for(;Et()&&t+J!==57;)if(t+J===84&&oe()===47)break;return"/*"+Ar(e,kt-1)+"*"+zn(t===47?t:Et())}function mm(t){for(;!yi(oe());)Et();return Ar(t,kt)}function _m(t){return fm(Yi("",null,null,null,[""],t=um(t),0,[0],t))}function Yi(t,e,i,r,n,o,s,a,l){for(var h=0,u=0,f=s,c=0,p=0,_=0,b=1,k=1,P=1,v=0,U="",N=n,j=o,G=r,W=U;k;)switch(_=v,v=Et()){case 40:if(_!=108&&_i(W,f-1)==58){am(W+=ji(Zr(v),"&","&\f"),"&\f",Ja(h?a[h-1]:0))!=-1&&(P=-1);break}case 34:case 39:case 91:W+=Zr(v);break;case 9:case 10:case 13:case 32:W+=dm(_);break;case 92:W+=pm(Ui()-1,7);continue;case 47:switch(oe()){case 42:case 47:Ni(ym(gm(Et(),Ui()),e,i,l),l),(yi(_||1)==5||yi(oe()||1)==5)&&Dt(W)&&De(W,-1,void 0)!==" "&&(W+=" ");break;default:W+="/"}break;case 123*b:a[h++]=Dt(W)*P;case 125*b:case 59:case 0:switch(v){case 0:case 125:k=0;case 59+u:P==-1&&(W=ji(W,/\f/g,"")),p>0&&(Dt(W)-f||b===0&&_===47)&&Ni(p>32?_s(W+";",r,i,f-1,l):_s(ji(W," ","")+";",r,i,f-2,l),l);break;case 59:W+=";";default:if(Ni(G=ms(W,e,i,h,u,n,a,U,N=[],j=[],f,o),o),v===123)if(u===0)Yi(W,e,G,G,N,o,f,a,j);else switch(c===99&&_i(W,3)===110?100:c){case 100:case 108:case 109:case 115:Yi(t,G,G,r&&Ni(ms(t,G,G,0,0,n,a,U,n,N=[],f,j),j),n,j,f,a,r?N:j);break;default:Yi(W,G,G,G,[""],j,0,a,j)}}h=u=p=0,b=P=1,U=W="",f=s;break;case 58:f=1+Dt(W),p=_;default:if(b<1){if(v==123)--b;else if(v==125&&b++==0&&cm()==125)continue}switch(W+=zn(v),v*b){case 38:P=u>0?1:(W+="\f",-1);break;case 44:a[h++]=(Dt(W)-1)*P,P=1;break;case 64:oe()===45&&(W+=Zr(Et())),c=oe(),u=f=Dt(U=W+=mm(Ui())),v++;break;case 45:_===45&&Dt(W)==2&&(b=0)}}return o}function ms(t,e,i,r,n,o,s,a,l,h,u,f){for(var c=n-1,p=n===0?o:[""],_=lm(p),b=0,k=0,P=0;b0?p[v]+" "+U:ji(U,/&\f/g,p[v])))&&(l[P++]=N);return Wn(t,e,i,n===0?Ka:a,l,h,u,f)}function ym(t,e,i,r){return Wn(t,e,i,Xa,zn(hm()),De(t,2,-2),0,r)}function _s(t,e,i,r,n){return Wn(t,e,i,Za,De(t,0,r),De(t,r+1,-1),r,n)}function mn(t,e){for(var i="",r=0;r{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Hn=function(t="fatal"){let e=Yt.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Yt&&(e=Yt[t])):typeof t=="number"&&(e=t),E.trace=()=>{},E.debug=()=>{},E.info=()=>{},E.warn=()=>{},E.error=()=>{},E.fatal=()=>{},e<=Yt.fatal&&(E.fatal=console.error?console.error.bind(console,bt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bt("FATAL"))),e<=Yt.error&&(E.error=console.error?console.error.bind(console,bt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bt("ERROR"))),e<=Yt.warn&&(E.warn=console.warn?console.warn.bind(console,bt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bt("WARN"))),e<=Yt.info&&(E.info=console.info?console.info.bind(console,bt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bt("INFO"))),e<=Yt.debug&&(E.debug=console.debug?console.debug.bind(console,bt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("DEBUG"))),e<=Yt.trace&&(E.trace=console.debug?console.debug.bind(console,bt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("TRACE")))},bt=t=>`%c${Th().format("ss.SSS")} : ${t} : `,wi=//gi,Im=t=>t?il(t).replace(/\\n/g,"#br#").split("#br#"):[""],$m=(()=>{let t=!1;return()=>{t||(Dm(),t=!0)}})();function Dm(){const t="data-temp-href-target";$e.addHook("beforeSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")||"")}),$e.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)||""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}const el=t=>($m(),$e.sanitize(t)),vs=(t,e)=>{var i;if(((i=e.flowchart)==null?void 0:i.htmlLabels)!==!1){const r=e.securityLevel;r==="antiscript"||r==="strict"?t=el(t):r!=="loose"&&(t=il(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=qm(t))}return t},Ci=(t,e)=>t&&(e.dompurifyConfig?t=$e.sanitize(vs(t,e),e.dompurifyConfig).toString():t=$e.sanitize(vs(t,e),{FORBID_TAGS:["style"]}).toString(),t),Nm=(t,e)=>typeof t=="string"?Ci(t,e):t.flat().map(i=>Ci(i,e)),Rm=t=>wi.test(t),Pm=t=>t.split(wi),qm=t=>t.replace(/#br#/g,"
    "),il=t=>t.replace(wi,"#br#"),zm=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},rl=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),Wm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.max(...e)},Hm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.min(...e)},Ob=function(t){const e=t.split(/(,)/),i=[];for(let r=0;r0&&r+1Math.max(0,t.split(e).length-1),jm=(t,e)=>{const i=bn(t,"~"),r=bn(e,"~");return i===1&&r===1},Um=t=>{const e=bn(t,"~");let i=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),i=!0);const r=[...t];let n=r.indexOf("~"),o=r.lastIndexOf("~");for(;n!==-1&&o!==-1&&n!==o;)r[n]="<",r[o]=">",n=r.indexOf("~"),o=r.lastIndexOf("~");return i&&r.unshift("~"),r.join("")},ks=()=>window.MathMLElement!==void 0,Tn=/\$\$(.*)\$\$/g,Ss=t=>{var e;return(((e=t.match(Tn))==null?void 0:e.length)??0)>0},Mb=async(t,e)=>{t=await Ym(t,e);const i=document.createElement("div");i.innerHTML=t,i.id="katex-temp",i.style.visibility="hidden",i.style.position="absolute",i.style.top="0";const r=document.querySelector("body");r==null||r.insertAdjacentElement("beforeend",i);const n={width:i.clientWidth,height:i.clientHeight};return i.remove(),n},Ym=async(t,e)=>{if(!Ss(t))return t;if(!ks()&&!e.legacyMathML)return t.replace(Tn,"MathML is unsupported in this environment.");const{default:i}=await K(async()=>{const{default:r}=await import("./katex-CvgdMzdh.js");return{default:r}},[]);return t.split(wi).map(r=>Ss(r)?` +
    + ${r} +
    + `:`
    ${r}
    `).join("").replace(Tn,(r,n)=>i.renderToString(n,{throwOnError:!0,displayMode:!0,output:ks()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},jn={getRows:Im,sanitizeText:Ci,sanitizeTextOrArray:Nm,hasBreaks:Rm,splitBreaks:Pm,lineBreakRegex:wi,removeScript:el,getUrl:zm,evaluate:rl,getMax:Wm,getMin:Hm},ut=(t,e)=>e?g(t,{s:-40,l:10}):g(t,{s:-40,l:-10}),Lr="#ffffff",Fr="#f2f2f2";let Vm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ut(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ut(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||C(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||C(this.tertiaryColor),this.lineColor=this.lineColor||C(this.background),this.arrowheadColor=this.arrowheadColor||C(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?O(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||O(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||C(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||A(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let p=0;p{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Gm=t=>{const e=new Vm;return e.calculate(t),e};let Xm=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=A(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=C(this.background),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=A(C("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=si(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=O("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=O(this.sectionBkgColor,10),this.taskBorderColor=si(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=si(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=A(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=A(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=A(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Km=t=>{const e=new Xm;return e.calculate(t),e};let Zm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=si(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Jm=t=>{const e=new Zm;return e.calculate(t),e};let Qm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=A("#cde498",10),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.primaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.actorBorder=O(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const t0=t=>{const e=new Qm;return e.calculate(t),e};class e0{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=A(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ut(this.primaryColor,this.darkMode),this.secondaryBorderColor=ut(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ut(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=A(this.contrast,55),this.border2=this.contrast,this.actorBorder=A(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}}const i0=t=>{const e=new e0;return e.calculate(t),e},Xt={base:{getThemeVariables:Gm},dark:{getThemeVariables:Km},default:{getThemeVariables:Jm},forest:{getThemeVariables:t0},neutral:{getThemeVariables:i0}},Vt={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},nl={...Vt,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Xt.default.getThemeVariables(),sequence:{...Vt.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Vt.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Vt.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Vt.pie,useWidth:984},xyChart:{...Vt.xyChart,useWidth:void 0},requirement:{...Vt.requirement,useWidth:void 0},gitGraph:{...Vt.gitGraph,useMaxWidth:!1},sankey:{...Vt.sankey,useMaxWidth:!1}},ol=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:typeof t[r]=="object"&&t[r]!==null?[...i,e+r,...ol(t[r],"")]:[...i,e+r],[]),r0=new Set(ol(nl,"")),n0=nl,ar=t=>{if(E.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>ar(e));return}for(const e of Object.keys(t)){if(E.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!r0.has(e)||t[e]==null){E.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){E.debug("sanitizing object",e),ar(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(E.debug("sanitizing css option",e),t[e]=o0(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];i!=null&&i.match&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}E.debug("After sanitization",t)}},o0=t=>{let e=0,i=0;for(const r of t){if(e{for(const{id:e,detector:i,loader:r}of t)hl(e,i,r)},hl=(t,e,i)=>{Re[t]?E.error(`Detector with key ${t} already exists`):Re[t]={detector:e,loader:i},E.debug(`Detector with key ${t} added${i?" with loader":""}`)},a0=t=>Re[t].loader,vn=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(o=>vn(t,o,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(o=>{t.includes(o)||t.push(o)}),t):t===void 0||i<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(o=>{typeof e[o]=="object"&&(t[o]===void 0||typeof t[o]=="object")?(t[o]===void 0&&(t[o]=Array.isArray(e[o])?[]:{}),t[o]=vn(t[o],e[o],{depth:i-1,clobber:r})):(r||typeof t[o]!="object"&&typeof e[o]!="object")&&(t[o]=e[o])}),t)},st=vn,l0="​",h0={curveBasis:zf,curveBasisClosed:Wf,curveBasisOpen:Hf,curveBumpX:Pf,curveBumpY:qf,curveBundle:jf,curveCardinalClosed:Yf,curveCardinalOpen:Vf,curveCardinal:Uf,curveCatmullRomClosed:Xf,curveCatmullRomOpen:Kf,curveCatmullRom:Gf,curveLinear:Rf,curveLinearClosed:Zf,curveMonotoneX:Jf,curveMonotoneY:Qf,curveNatural:td,curveStep:ed,curveStepAfter:rd,curveStepBefore:id},c0=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,u0=function(t,e){const i=cl(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const s=i.map(a=>a.args);ar(s),r=st(r,[...s])}else r=i.args;if(!r)return;let n=Er(t,e);const o="config";return r[o]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),r[n]=r[o],delete r[o]),r},cl=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${c0.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),E.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=li.exec(t))!==null;)if(r.index===li.lastIndex&&li.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const o=r[1]?r[1]:r[2],s=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:o,args:s})}return n.length===0?{type:t,args:null}:n.length===1?n[0]:n}catch(i){return E.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},f0=function(t){return t.replace(li,"")},d0=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function p0(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return h0[i]??e}function g0(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Hs.sanitizeUrl(i):i}const m0=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let s=0;s{i+=ul(n,e),e=n});const r=i/2;return Un(t,r)}function y0(t){return t.length===1?t[0]:_0(t)}const ws=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},Un=(t,e)=>{let i,r=e;for(const n of t){if(i){const o=ul(n,i);if(o=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:ws((1-s)*i.x+s*n.x,5),y:ws((1-s)*i.y+s*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")},C0=(t,e,i)=>{E.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const n=Un(e,25),o=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),a={x:0,y:0};return a.x=Math.sin(s)*o+(e[0].x+n.x)/2,a.y=-Math.cos(s)*o+(e[0].y+n.y)/2,a};function x0(t,e,i){const r=structuredClone(i);E.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const n=25+t,o=Un(r,n),s=10+t*.5,a=Math.atan2(r[0].y-o.y,r[0].x-o.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(a+Math.PI)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a+Math.PI)*s+(r[0].y+o.y)/2):e==="end_right"?(l.x=Math.sin(a-Math.PI)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a-Math.PI)*s+(r[0].y+o.y)/2-5):e==="end_left"?(l.x=Math.sin(a)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2-5):(l.x=Math.sin(a)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2),l}function b0(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let Bs=0;const T0=()=>(Bs++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Bs);function v0(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nv0(t.length),S0=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},w0=function(t,e){const i=e.text.replace(jn.lineBreakRegex," "),[,r]=Vn(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+e.textMargin*2),o.attr("fill",e.fill),o.text(i),n},B0=ki((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},i),jn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let o="";return r.forEach((s,a)=>{const l=lr(`${s} `,i),h=lr(o,i);if(l>e){const{hyphenatedStrings:c,remainingWord:p}=A0(s,e,"-",i);n.push(o,...c),o=p}else h+l>=e?(n.push(o),o=s):o=[o,s].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(s=>s!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),A0=ki((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let s="";return n.forEach((a,l)=>{const h=`${s}${a}`;if(lr(h,r)>=e){const f=l+1,c=n.length===f,p=`${h}${i}`;o.push(c?h:p),s=""}else s=h}),{hyphenatedStrings:o,remainingWord:s}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function L0(t,e){return Yn(t,e).height}function lr(t,e){return Yn(t,e).width}const Yn=ki((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=Vn(i),s=["sans-serif",r],a=t.split(jn.lineBreakRegex),l=[],h=Tt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const c of s){let p=0;const _={width:0,height:0,lineHeight:0};for(const b of a){const k=S0();k.text=b||l0;const P=w0(u,k).style("font-size",o).style("font-weight",n).style("font-family",c),v=(P._groups||P)[0][0].getBBox();if(v.width===0&&v.height===0)throw new Error("svg element not in render tree");_.width=Math.round(Math.max(_.width,v.width)),p=Math.round(v.height),_.height+=p,_.lineHeight=Math.round(Math.max(_.lineHeight,p))}l.push(_)}u.remove();const f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`);class F0{constructor(e=!1,i){this.count=0,this.count=i?i.length:0,this.next=e?()=>this.count++:()=>Date.now()}}let Ri;const E0=function(t){return Ri=Ri||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Ri.innerHTML=t,unescape(Ri.textContent)};function fl(t){return"str"in t}const O0=(t,e,i,r)=>{var n;if(!r)return;const o=(n=t.node())==null?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},Vn=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function dl(t,e){return rm({},t,e)}const hi={assignWithDepth:st,wrapLabel:B0,calculateTextHeight:L0,calculateTextWidth:lr,calculateTextDimensions:Yn,cleanAndMerge:dl,detectInit:u0,detectDirective:cl,isSubstringInArray:d0,interpolateToCurve:p0,calcLabelPosition:y0,calcCardinalityPosition:C0,calcTerminalLabelPosition:x0,formatUrl:g0,getStylesFromArray:b0,generateId:T0,random:k0,runFunc:m0,entityDecode:E0,insertTitle:O0,parseFontSize:Vn,InitIDGenerator:F0},M0=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},I0=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},As="10.9.1",Pe=Object.freeze(n0);let pt=st({},Pe),pl,qe=[],ci=st({},Pe);const Or=(t,e)=>{let i=st({},t),r={};for(const n of e)_l(n),r=st(r,n);if(i=st(i,r),r.theme&&r.theme in Xt){const n=st({},pl),o=st(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Xt&&(i.themeVariables=Xt[i.theme].getThemeVariables(o))}return ci=i,yl(ci),ci},$0=t=>(pt=st({},Pe),pt=st(pt,t),t.theme&&Xt[t.theme]&&(pt.themeVariables=Xt[t.theme].getThemeVariables(t.themeVariables)),Or(pt,qe),pt),D0=t=>{pl=st({},t)},N0=t=>(pt=st(pt,t),Or(pt,qe),pt),gl=()=>st({},pt),ml=t=>(yl(t),st(ci,t),qt()),qt=()=>st({},ci),_l=t=>{t&&(["secure",...pt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(E.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&_l(t[e])}))},R0=t=>{ar(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),qe.push(t),Or(pt,qe)},hr=(t=pt)=>{qe=[],Or(t,qe)},P0={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Ls={},q0=t=>{Ls[t]||(E.warn(P0[t]),Ls[t]=!0)},yl=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&q0("LAZY_LOAD_DEPRECATED")},Cl="c4",z0=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),W0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./c4Diagram-ae766693-Cwq3C8UU.js");return{diagram:e}},__vite__mapDeps([0,1,2]));return{id:Cl,diagram:t}},H0={id:Cl,detector:z0,loader:W0},j0=H0,xl="flowchart",U0=(t,e)=>{var i,r;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},Y0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowDiagram-b222e15a-DarGeLKH.js");return{diagram:e}},__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,2]));return{id:xl,diagram:t}},V0={id:xl,detector:U0,loader:Y0},G0=V0,bl="flowchart-v2",X0=(t,e)=>{var i,r,n;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},K0=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowDiagram-v2-13329dc7-B5Y-44JY.js");return{diagram:e}},__vite__mapDeps([16,4,7,5,8,6,9,10,11,12,13,14,15,2]));return{id:bl,diagram:t}},Z0={id:bl,detector:X0,loader:K0},J0=Z0,Tl="er",Q0=t=>/^\s*erDiagram/.test(t),t_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./erDiagram-09d1c15f-kySp2mgy.js");return{diagram:e}},__vite__mapDeps([17,5,6,12,13,14,2]));return{id:Tl,diagram:t}},e_={id:Tl,detector:Q0,loader:t_},i_=e_,vl="gitGraph",r_=t=>/^\s*gitGraph/.test(t),n_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./gitGraphDiagram-942e62fe-B3EvEA8b.js");return{diagram:e}},__vite__mapDeps([18,2]));return{id:vl,diagram:t}},o_={id:vl,detector:r_,loader:n_},s_=o_,kl="gantt",a_=t=>/^\s*gantt/.test(t),l_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./ganttDiagram-b62c793e-DZKZndxq.js");return{diagram:e}},__vite__mapDeps([19,20,21,2]));return{id:kl,diagram:t}},h_={id:kl,detector:a_,loader:l_},c_=h_,Sl="info",u_=t=>/^\s*info/.test(t),f_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./infoDiagram-94cd232f-CmPJgRj5.js");return{diagram:e}},__vite__mapDeps([22,2]));return{id:Sl,diagram:t}},d_={id:Sl,detector:u_,loader:f_},wl="pie",p_=t=>/^\s*pie/.test(t),g_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./pieDiagram-bb1d19e5-BQhQYyps.js");return{diagram:e}},__vite__mapDeps([23,24,14,25,21,13,2]));return{id:wl,diagram:t}},m_={id:wl,detector:p_,loader:g_},Bl="quadrantChart",__=t=>/^\s*quadrantChart/.test(t),y_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./quadrantDiagram-c759a472-ChaDXyQS.js");return{diagram:e}},__vite__mapDeps([26,20,21,2]));return{id:Bl,diagram:t}},C_={id:Bl,detector:__,loader:y_},x_=C_,Al="xychart",b_=t=>/^\s*xychart-beta/.test(t),T_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./xychartDiagram-f11f50a6-B4uqsceT.js");return{diagram:e}},__vite__mapDeps([27,11,21,25,20,12,13,14,2]));return{id:Al,diagram:t}},v_={id:Al,detector:b_,loader:T_},k_=v_,Ll="requirement",S_=t=>/^\s*requirement(Diagram)?/.test(t),w_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./requirementDiagram-87253d64-Dkgz-B9P.js");return{diagram:e}},__vite__mapDeps([28,5,6,12,13,14,2]));return{id:Ll,diagram:t}},B_={id:Ll,detector:S_,loader:w_},A_=B_,Fl="sequence",L_=t=>/^\s*sequenceDiagram/.test(t),F_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./sequenceDiagram-6894f283-8w1yt_A5.js");return{diagram:e}},__vite__mapDeps([29,1,2]));return{id:Fl,diagram:t}},E_={id:Fl,detector:L_,loader:F_},O_=E_,El="class",M_=(t,e)=>{var i;return((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},I_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./classDiagram-fb54d2a0-B6KDNP-K.js");return{diagram:e}},__vite__mapDeps([30,31,5,6,12,13,14,2]));return{id:El,diagram:t}},$_={id:El,detector:M_,loader:I_},D_=$_,Ol="classDiagram",N_=(t,e)=>{var i;return/^\s*classDiagram/.test(t)&&((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},R_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./classDiagram-v2-a2b738ad-BzrN1-EV.js");return{diagram:e}},__vite__mapDeps([32,31,5,8,6,9,10,11,12,13,14,2]));return{id:Ol,diagram:t}},P_={id:Ol,detector:N_,loader:R_},q_=P_,Ml="state",z_=(t,e)=>{var i;return((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},W_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./stateDiagram-5dee940d-QdyITvZy.js");return{diagram:e}},__vite__mapDeps([33,34,5,6,12,13,14,2]));return{id:Ml,diagram:t}},H_={id:Ml,detector:z_,loader:W_},j_=H_,Il="stateDiagram",U_=(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper")},Y_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./stateDiagram-v2-1992cada-BYeiqQmL.js");return{diagram:e}},__vite__mapDeps([35,34,5,8,6,9,10,11,12,13,14,2]));return{id:Il,diagram:t}},V_={id:Il,detector:U_,loader:Y_},G_=V_,$l="journey",X_=t=>/^\s*journey/.test(t),K_=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./journeyDiagram-6625b456-C95pQKsn.js");return{diagram:e}},__vite__mapDeps([36,1,24,14,2]));return{id:$l,diagram:t}},Z_={id:$l,detector:X_,loader:K_},J_=Z_,Q_=function(t,e){for(let i of e)t.attr(i[0],i[1])},ty=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},Dl=function(t,e,i,r){const n=ty(e,i,r);Q_(t,n)},ey=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,s=n.height;E.info(`SVG bounds: ${o}x${s}`,n);let a=0,l=0;E.info(`Graph bounds: ${a}x${l}`,t),a=o+i*2,l=s+i*2,E.info(`Calculated bounds: ${a}x${l}`),Dl(e,l,a,r);const h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},Vi={},iy=(t,e,i)=>{let r="";return t in Vi&&Vi[t]?r=Vi[t](i):E.warn(`No theme found for ${t}`),` & { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + fill: ${i.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${i.errorBkgColor}; + } + & .error-text { + fill: ${i.errorTextColor}; + stroke: ${i.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + } + & .marker.cross { + stroke: ${i.lineColor}; + } + + & svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + ${r} + + ${e} +`},ry=(t,e)=>{e!==void 0&&(Vi[t]=e)},ny=iy;let Gn="",Xn="",Kn="";const Zn=t=>Ci(t,qt()),oy=()=>{Gn="",Kn="",Xn=""},sy=t=>{Gn=Zn(t).replace(/^\s+/g,"")},ay=()=>Gn,ly=t=>{Kn=Zn(t).replace(/\n\s+/g,` +`)},hy=()=>Kn,cy=t=>{Xn=Zn(t)},uy=()=>Xn,fy=Object.freeze(Object.defineProperty({__proto__:null,clear:oy,getAccDescription:hy,getAccTitle:ay,getDiagramTitle:uy,setAccDescription:ly,setAccTitle:sy,setDiagramTitle:cy},Symbol.toStringTag,{value:"Module"})),dy=E,py=Hn,Jn=qt,Rb=ml,Pb=Pe,gy=t=>Ci(t,Jn()),my=ey,_y=()=>fy,cr={},ur=(t,e,i)=>{var r;if(cr[t])throw new Error(`Diagram ${t} already registered.`);cr[t]=e,i&&hl(t,i),ry(t,e.styles),(r=e.injectUtils)==null||r.call(e,dy,py,Jn,gy,my,_y(),()=>{})},Qn=t=>{if(t in cr)return cr[t];throw new yy(t)};class yy extends Error{constructor(e){super(`Diagram ${e} not found.`)}}const Cy=t=>{var e;const{securityLevel:i}=Jn();let r=Tt("body");if(i==="sandbox"){const s=((e=Tt(`#i${t}`).node())==null?void 0:e.contentDocument)??document;r=Tt(s.body)}return r.select(`#${t}`)},xy=(t,e,i)=>{E.debug(`rendering svg for syntax error +`);const r=Cy(e),n=r.append("g");r.attr("viewBox","0 0 2412 512"),Dl(r,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)},Nl={draw:xy},by=Nl,Ty={db:{},renderer:Nl,parser:{parser:{yy:{}},parse:()=>{}}},vy=Ty,Rl="flowchart-elk",ky=(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="elk")},Sy=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./flowchart-elk-definition-ae0efee6-D2n0UGGT.js");return{diagram:e}},__vite__mapDeps([37,4,10,11,12,13,14,2]));return{id:Rl,diagram:t}},wy={id:Rl,detector:ky,loader:Sy},By=wy,Pl="timeline",Ay=t=>/^\s*timeline/.test(t),Ly=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./timeline-definition-bf702344-BdCHgPg4.js");return{diagram:e}},__vite__mapDeps([38,24,14,2]));return{id:Pl,diagram:t}},Fy={id:Pl,detector:Ay,loader:Ly},Ey=Fy,ql="mindmap",Oy=t=>/^\s*mindmap/.test(t),My=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./mindmap-definition-307c710a-DdlwPr3Y.js");return{diagram:e}},__vite__mapDeps([39,11,2]));return{id:ql,diagram:t}},Iy={id:ql,detector:Oy,loader:My},$y=Iy,zl="sankey",Dy=t=>/^\s*sankey-beta/.test(t),Ny=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./sankeyDiagram-707fac0f-BXumW6Uv.js");return{diagram:e}},__vite__mapDeps([40,25,21,41,2]));return{id:zl,diagram:t}},Ry={id:zl,detector:Dy,loader:Ny},Py=Ry,Wl="block",qy=t=>/^\s*block-beta/.test(t),zy=async()=>{const{diagram:t}=await K(async()=>{const{diagram:e}=await import("./blockDiagram-9f4a6865-CCynznDb.js");return{diagram:e}},__vite__mapDeps([42,9,5,10,11,12,13,14,25,21,15,41,2]));return{id:Wl,diagram:t}},Wy={id:Wl,detector:qy,loader:zy},Hy=Wy;let Fs=!1;const to=()=>{Fs||(Fs=!0,ur("error",vy,t=>t.toLowerCase().trim()==="error"),ur("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),ll(j0,q_,D_,i_,c_,d_,m_,A_,O_,By,J0,G0,$y,Ey,s_,G_,j_,J_,x_,Py,k_,Hy))};class Hl{constructor(e,i={}){this.text=e,this.metadata=i,this.type="graph",this.text=M0(e),this.text+=` +`;const r=qt();try{this.type=Er(e,r)}catch(o){this.type="error",this.detectError=o}const n=Qn(this.type);E.debug("Type "+this.type),this.db=n.db,this.renderer=n.renderer,this.parser=n.parser,this.parser.parser.yy=this.db,this.init=n.init,this.parse()}parse(){var e,i,r,n,o;if(this.detectError)throw this.detectError;(i=(e=this.db).clear)==null||i.call(e);const s=qt();(r=this.init)==null||r.call(this,s),this.metadata.title&&((o=(n=this.db).setDiagramTitle)==null||o.call(n,this.metadata.title)),this.parser.parse(this.text)}async render(e,i){await this.renderer.draw(this.text,e,i,this)}getParser(){return this.parser}getType(){return this.type}}const jy=async(t,e={})=>{const i=Er(t,qt());try{Qn(i)}catch{const n=a0(i);if(!n)throw new al(`Diagram ${i} not found.`);const{id:o,diagram:s}=await n();ur(o,s)}return new Hl(t,e)};let Es=[];const Uy=()=>{Es.forEach(t=>{t()}),Es=[]},Yy="graphics-document document";function Vy(t,e){t.attr("role",Yy),e!==""&&t.attr("aria-roledescription",e)}function Gy(t,e,i,r){if(t.insert!==void 0){if(i){const n=`chart-desc-${r}`;t.attr("aria-describedby",n),t.insert("desc",":first-child").attr("id",n).text(i)}if(e){const n=`chart-title-${r}`;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const Xy=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function jl(t){return typeof t>"u"||t===null}function Ky(t){return typeof t=="object"&&t!==null}function Zy(t){return Array.isArray(t)?t:jl(t)?[]:[t]}function Jy(t,e){var i,r,n,o;if(e)for(o=Object.keys(e),i=0,r=o.length;ia&&(o=" ... ",e=r-a+o.length),i-r>a&&(s=" ...",i=r+a-s.length),{str:o+t.slice(e,i).replace(/\t/g,"→")+s,pos:r-e+o.length}}function tn(t,e){return ct.repeat(" ",e-t.length)+t}function aC(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],n=[],o,s=-1;o=i.exec(t.buffer);)n.push(o.index),r.push(o.index+o[0].length),t.position<=o.index&&s<0&&(s=r.length-2);s<0&&(s=r.length-1);var a="",l,h,u=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)h=Qr(t.buffer,r[s-l],n[s-l],t.position-(r[s]-r[s-l]),f),a=ct.repeat(" ",e.indent)+tn((t.line-l+1).toString(),u)+" | "+h.str+` +`+a;for(h=Qr(t.buffer,r[s],n[s],t.position,f),a+=ct.repeat(" ",e.indent)+tn((t.line+1).toString(),u)+" | "+h.str+` +`,a+=ct.repeat("-",e.indent+u+3+h.pos)+`^ +`,l=1;l<=e.linesAfter&&!(s+l>=n.length);l++)h=Qr(t.buffer,r[s+l],n[s+l],t.position-(r[s]-r[s+l]),f),a+=ct.repeat(" ",e.indent)+tn((t.line+l+1).toString(),u)+" | "+h.str+` +`;return a.replace(/\n$/,"")}var lC=aC,hC=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],cC=["scalar","sequence","mapping"];function uC(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(r){e[String(r)]=i})}),e}function fC(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(hC.indexOf(i)===-1)throw new Gt('Unknown option "'+i+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(i){return i},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=uC(e.styleAliases||null),cC.indexOf(this.kind)===-1)throw new Gt('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var at=fC;function Os(t,e){var i=[];return t[e].forEach(function(r){var n=i.length;i.forEach(function(o,s){o.tag===r.tag&&o.kind===r.kind&&o.multi===r.multi&&(n=s)}),i[n]=r}),i}function dC(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function r(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,i=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),IC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function $C(t){return!(t===null||!IC.test(t)||t[t.length-1]==="_")}function DC(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var NC=/^[-+]?[0-9]+e/;function RC(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ct.isNegativeZero(t))return"-0.0";return i=t.toString(10),NC.test(i)?i.replace("e",".e"):i}function PC(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ct.isNegativeZero(t))}var qC=new at("tag:yaml.org,2002:float",{kind:"scalar",resolve:$C,construct:DC,predicate:PC,represent:RC,defaultStyle:"lowercase"}),Yl=yC.extend({implicit:[TC,wC,MC,qC]}),zC=Yl,Vl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Gl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function WC(t){return t===null?!1:Vl.exec(t)!==null||Gl.exec(t)!==null}function HC(t){var e,i,r,n,o,s,a,l=0,h=null,u,f,c;if(e=Vl.exec(t),e===null&&(e=Gl.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],s=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],f=+(e[11]||0),h=(u*60+f)*6e4,e[9]==="-"&&(h=-h)),c=new Date(Date.UTC(i,r,n,o,s,a,l)),h&&c.setTime(c.getTime()-h),c}function jC(t){return t.toISOString()}var UC=new at("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:WC,construct:HC,instanceOf:Date,represent:jC});function YC(t){return t==="<<"||t===null}var VC=new at("tag:yaml.org,2002:merge",{kind:"scalar",resolve:YC}),eo=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function GC(t){if(t===null)return!1;var e,i,r=0,n=t.length,o=eo;for(i=0;i64)){if(e<0)return!1;r+=6}return r%8===0}function XC(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=eo,s=0,a=[];for(e=0;e>16&255),a.push(s>>8&255),a.push(s&255)),s=s<<6|o.indexOf(r.charAt(e));return i=n%4*6,i===0?(a.push(s>>16&255),a.push(s>>8&255),a.push(s&255)):i===18?(a.push(s>>10&255),a.push(s>>2&255)):i===12&&a.push(s>>4&255),new Uint8Array(a)}function KC(t){var e="",i=0,r,n,o=t.length,s=eo;for(r=0;r>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]),i=(i<<8)+t[r];return n=o%3,n===0?(e+=s[i>>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]):n===2?(e+=s[i>>10&63],e+=s[i>>4&63],e+=s[i<<2&63],e+=s[64]):n===1&&(e+=s[i>>2&63],e+=s[i<<4&63],e+=s[64],e+=s[64]),e}function ZC(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var JC=new at("tag:yaml.org,2002:binary",{kind:"scalar",resolve:GC,construct:XC,predicate:ZC,represent:KC}),QC=Object.prototype.hasOwnProperty,tx=Object.prototype.toString;function ex(t){if(t===null)return!0;var e=[],i,r,n,o,s,a=t;for(i=0,r=a.length;i>10)+55296,(t-65536&1023)+56320)}var Ql=new Array(256),th=new Array(256);for(var Ae=0;Ae<256;Ae++)Ql[Ae]=$s(Ae)?1:0,th[Ae]=$s(Ae);function bx(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||fx,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function eh(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=lC(i),new Gt(e,i)}function L(t,e){throw eh(t,e)}function pr(t,e){t.onWarning&&t.onWarning.call(null,eh(t,e))}var Ds={YAML:function(e,i,r){var n,o,s;e.version!==null&&L(e,"duplication of %YAML directive"),r.length!==1&&L(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),n===null&&L(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),s=parseInt(n[2],10),o!==1&&L(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&pr(e,"unsupported YAML version of the document")},TAG:function(e,i,r){var n,o;r.length!==2&&L(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],Zl.test(n)||L(e,"ill-formed tag handle (first argument) of the TAG directive"),le.call(e.tagMap,n)&&L(e,'there is a previously declared suffix for "'+n+'" tag handle'),Jl.test(o)||L(e,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{L(e,"tag prefix is malformed: "+o)}e.tagMap[n]=o}};function se(t,e,i,r){var n,o,s,a;if(e1&&(t.result+=ct.repeat(` +`,e-1))}function Tx(t,e,i){var r,n,o,s,a,l,h,u,f=t.kind,c=t.result,p;if(p=t.input.charCodeAt(t.position),mt(p)||Le(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n)))return!1;for(t.kind="scalar",t.result="",o=s=t.position,a=!1;p!==0;){if(p===58){if(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n))break}else if(p===35){if(r=t.input.charCodeAt(t.position-1),mt(r))break}else{if(t.position===t.lineStart&&Mr(t)||i&&Le(p))break;if(Rt(p))if(l=t.line,h=t.lineStart,u=t.lineIndent,Q(t,!1,-1),t.lineIndent>=e){a=!0,p=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=l,t.lineStart=h,t.lineIndent=u;break}}a&&(se(t,o,s,!1),ro(t,t.line-l),o=s=t.position,a=!1),me(p)||(s=t.position+1),p=t.input.charCodeAt(++t.position)}return se(t,o,s,!1),t.result?!0:(t.kind=f,t.result=c,!1)}function vx(t,e){var i,r,n;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(se(t,r,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)r=t.position,t.position++,n=t.position;else return!0;else Rt(i)?(se(t,r,n,!0),ro(t,Q(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Mr(t)?L(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);L(t,"unexpected end of the stream within a single quoted scalar")}function kx(t,e){var i,r,n,o,s,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return se(t,i,t.position,!0),t.position++,!0;if(a===92){if(se(t,i,t.position,!0),a=t.input.charCodeAt(++t.position),Rt(a))Q(t,!1,e);else if(a<256&&Ql[a])t.result+=th[a],t.position++;else if((s=yx(a))>0){for(n=s,o=0;n>0;n--)a=t.input.charCodeAt(++t.position),(s=_x(a))>=0?o=(o<<4)+s:L(t,"expected hexadecimal character");t.result+=xx(o),t.position++}else L(t,"unknown escape sequence");i=r=t.position}else Rt(a)?(se(t,i,r,!0),ro(t,Q(t,!1,e)),i=r=t.position):t.position===t.lineStart&&Mr(t)?L(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}L(t,"unexpected end of the stream within a double quoted scalar")}function Sx(t,e){var i=!0,r,n,o,s=t.tag,a,l=t.anchor,h,u,f,c,p,_=Object.create(null),b,k,P,v;if(v=t.input.charCodeAt(t.position),v===91)u=93,p=!1,a=[];else if(v===123)u=125,p=!0,a={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),v=t.input.charCodeAt(++t.position);v!==0;){if(Q(t,!0,e),v=t.input.charCodeAt(t.position),v===u)return t.position++,t.tag=s,t.anchor=l,t.kind=p?"mapping":"sequence",t.result=a,!0;i?v===44&&L(t,"expected the node content, but found ','"):L(t,"missed comma between flow collection entries"),k=b=P=null,f=c=!1,v===63&&(h=t.input.charCodeAt(t.position+1),mt(h)&&(f=c=!0,t.position++,Q(t,!0,e))),r=t.line,n=t.lineStart,o=t.position,ze(t,e,fr,!1,!0),k=t.tag,b=t.result,Q(t,!0,e),v=t.input.charCodeAt(t.position),(c||t.line===r)&&v===58&&(f=!0,v=t.input.charCodeAt(++t.position),Q(t,!0,e),ze(t,e,fr,!1,!0),P=t.result),p?Fe(t,a,_,k,b,P,r,n,o):f?a.push(Fe(t,null,_,k,b,P,r,n,o)):a.push(b),Q(t,!0,e),v=t.input.charCodeAt(t.position),v===44?(i=!0,v=t.input.charCodeAt(++t.position)):i=!1}L(t,"unexpected end of the stream within a flow collection")}function wx(t,e){var i,r,n=en,o=!1,s=!1,a=e,l=0,h=!1,u,f;if(f=t.input.charCodeAt(t.position),f===124)r=!1;else if(f===62)r=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)en===n?n=f===43?Ms:dx:L(t,"repeat of a chomping mode identifier");else if((u=Cx(f))>=0)u===0?L(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?L(t,"repeat of an indentation width identifier"):(a=e+u-1,s=!0);else break;if(me(f)){do f=t.input.charCodeAt(++t.position);while(me(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!Rt(f)&&f!==0)}for(;f!==0;){for(io(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!s||t.lineIndenta&&(a=t.lineIndent),Rt(f)){l++;continue}if(t.lineIndente)&&l!==0)L(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(k&&(s=t.line,a=t.lineStart,l=t.position),ze(t,e,dr,!0,n)&&(k?_=t.result:b=t.result),k||(Fe(t,f,c,p,_,b,s,a,l),p=_=b=null),Q(t,!0,-1),v=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&v!==0)L(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),f=0,c=t.implicitTypes.length;f"),t.result!==null&&_.kind!==t.kind&&L(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+_.kind+'", not "'+t.kind+'"'),_.resolve(t.result,t.tag)?(t.result=_.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):L(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function Ex(t){var e=t.position,i,r,n,o=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Q(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(o=!0,s=t.input.charCodeAt(++t.position),i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);for(r=t.input.slice(i,t.position),n=[],r.length<1&&L(t,"directive name must not be less than one character in length");s!==0;){for(;me(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!Rt(s));break}if(Rt(s))break;for(i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);n.push(t.input.slice(i,t.position))}s!==0&&io(t),le.call(Ds,r)?Ds[r](t,r,n):pr(t,'unknown document directive "'+r+'"')}if(Q(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Q(t,!0,-1)):o&&L(t,"directives end mark is expected"),ze(t,t.lineIndent-1,dr,!1,!0),Q(t,!0,-1),t.checkLineBreaks&&gx.test(t.input.slice(e,t.position))&&pr(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Mr(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Q(t,!0,-1));return}if(t.position"u"&&(i=e,e=null);var r=ih(t,i);if(typeof e!="function")return r;for(var n=0,o=r.length;nt.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,i,r)=>"<"+i+r.replace(/="([^"]*)"/g,"='$1'")+">"),zx=t=>{const{text:e,metadata:i}=Px(t),{displayMode:r,title:n,config:o={}}=i;return r&&(o.gantt||(o.gantt={}),o.gantt.displayMode=r),{title:n,config:o,text:e}},Wx=t=>{const e=hi.detectInit(t)??{},i=hi.detectDirective(t,"wrap");return Array.isArray(i)?e.wrap=i.some(({type:r})=>{}):(i==null?void 0:i.type)==="wrap"&&(e.wrap=!0),{text:f0(t),directive:e}};function rh(t){const e=qx(t),i=zx(e),r=Wx(i.text),n=dl(i.config,r.directive);return t=Xy(r.text),{code:t,title:i.title,config:n}}const Hx=5e4,jx="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Ux="sandbox",Yx="loose",Vx="http://www.w3.org/2000/svg",Gx="http://www.w3.org/1999/xlink",Xx="http://www.w3.org/1999/xhtml",Kx="100%",Zx="100%",Jx="border:0;margin:0;",Qx="margin:0",tb="allow-top-navigation-by-user-activation allow-popups",eb='The "iframe" tag is not supported by your browser.',ib=["foreignobject"],rb=["dominant-baseline"];function nh(t){const e=rh(t);return hr(),R0(e.config??{}),e}async function nb(t,e){to(),t=nh(t).code;try{await no(t)}catch(i){if(e!=null&&e.suppressErrors)return!1;throw i}return!0}const Ps=(t,e,i=[])=>` +.${t} ${e} { ${i.join(" !important; ")} !important; }`,ob=(t,e={})=>{var i;let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!Jr(e)){const a=t.htmlLabels||((i=t.flowchart)==null?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const l in e){const h=e[l];Jr(h.styles)||a.forEach(u=>{r+=Ps(h.id,u,h.styles)}),Jr(h.textStyles)||(r+=Ps(h.id,"tspan",h.textStyles))}}return r},sb=(t,e,i,r)=>{const n=ob(t,i),o=ny(e,n,t.themeVariables);return mn(_m(`${r}{${o}}`),Cm)},ab=(t="",e,i)=>{let r=t;return!i&&!e&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=I0(r),r=r.replace(/
    /g,"
    "),r},lb=(t="",e)=>{var i,r;const n=(r=(i=e==null?void 0:e.viewBox)==null?void 0:i.baseVal)!=null&&r.height?e.viewBox.baseVal.height+"px":Zx,o=btoa(''+t+"");return``},qs=(t,e,i,r,n)=>{const o=t.append("div");o.attr("id",i),r&&o.attr("style",r);const s=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Vx);return n&&s.attr("xmlns:xlink",n),s.append("g"),t};function zs(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const hb=(t,e,i,r)=>{var n,o,s;(n=t.getElementById(e))==null||n.remove(),(o=t.getElementById(i))==null||o.remove(),(s=t.getElementById(r))==null||s.remove()},cb=async function(t,e,i){var r,n,o,s,a,l;to();const h=nh(e);e=h.code;const u=qt();E.debug(u),e.length>((u==null?void 0:u.maxTextSize)??Hx)&&(e=jx);const f="#"+t,c="i"+t,p="#"+c,_="d"+t,b="#"+_;let k=Tt("body");const P=u.securityLevel===Ux,v=u.securityLevel===Yx,U=u.fontFamily;if(i!==void 0){if(i&&(i.innerHTML=""),P){const F=zs(Tt(i),c);k=Tt(F.nodes()[0].contentDocument.body),k.node().style.margin=0}else k=Tt(i);qs(k,t,_,`font-family: ${U}`,Gx)}else{if(hb(document,t,_,c),P){const F=zs(Tt("body"),c);k=Tt(F.nodes()[0].contentDocument.body),k.node().style.margin=0}else k=Tt("body");qs(k,t,_)}let N,j;try{N=await no(e,{title:h.title})}catch(F){N=new Hl("error"),j=F}const G=k.select(b).node(),W=N.type,Jt=G.firstChild,Qt=Jt.firstChild,Z=(n=(r=N.renderer).getClasses)==null?void 0:n.call(r,e,N),R=sb(u,W,Z,f),St=document.createElement("style");St.innerHTML=R,Jt.insertBefore(St,Qt);try{await N.renderer.draw(e,t,As,N)}catch(F){throw by.draw(e,t,As),F}const te=k.select(`${b} svg`),M=(s=(o=N.db).getAccTitle)==null?void 0:s.call(o),T=(l=(a=N.db).getAccDescription)==null?void 0:l.call(a);fb(W,te,M,T),k.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Xx);let y=k.select(b).node().innerHTML;if(E.debug("config.arrowMarkerAbsolute",u.arrowMarkerAbsolute),y=ab(y,P,rl(u.arrowMarkerAbsolute)),P){const F=k.select(b+" svg").node();y=lb(y,F)}else v||(y=$e.sanitize(y,{ADD_TAGS:ib,ADD_ATTR:rb}));if(Uy(),j)throw j;const x=Tt(P?p:b).node();return x&&"remove"in x&&x.remove(),{svg:y,bindFunctions:N.db.bindFunctions}};function ub(t={}){var e;t!=null&&t.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),D0(t),t!=null&&t.theme&&t.theme in Xt?t.themeVariables=Xt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Xt.default.getThemeVariables(t.themeVariables));const i=typeof t=="object"?$0(t):gl();Hn(i.logLevel),to()}const no=(t,e={})=>{const{code:i}=rh(t);return jy(i,e)};function fb(t,e,i,r){Vy(e,t),Gy(e,i,r,e.attr("id"))}const Ce=Object.freeze({render:cb,parse:nb,getDiagramFromText:no,initialize:ub,getConfig:qt,setConfig:ml,getSiteConfig:gl,updateSiteConfig:N0,reset:()=>{hr()},globalReset:()=>{hr(Pe)},defaultConfig:Pe});Hn(qt().logLevel);hr(qt());const db=async()=>{E.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Re).map(async([i,{detector:r,loader:n}])=>{if(n)try{Qn(i)}catch{try{const{diagram:s,id:a}=await n();ur(a,s,r)}catch(s){throw E.error(`Failed to load external diagram with key ${i}. Removing from detectors.`),delete Re[i],s}}}))).filter(i=>i.status==="rejected");if(e.length>0){E.error(`Failed to load ${e.length} external diagrams`);for(const i of e)E.error(i);throw new Error(`Failed to load ${e.length} external diagrams`)}},pb=(t,e,i)=>{E.warn(t),fl(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},oh=async function(t={querySelector:".mermaid"}){try{await gb(t)}catch(e){if(fl(e)&&E.error(e.str),Ot.parseError&&Ot.parseError(e),!t.suppressErrors)throw E.error("Use the suppressErrors option to suppress these errors"),e}},gb=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const r=Ce.getConfig();E.debug(`${t?"":"No "}Callback function found`);let n;if(i)n=i;else if(e)n=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");E.debug(`Found ${n.length} diagrams`),(r==null?void 0:r.startOnLoad)!==void 0&&(E.debug("Start On Load: "+(r==null?void 0:r.startOnLoad)),Ce.updateSiteConfig({startOnLoad:r==null?void 0:r.startOnLoad}));const o=new hi.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed);let s;const a=[];for(const l of Array.from(n)){E.info("Rendering diagram: "+l.id);/*! Check if previously processed */if(l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const h=`mermaid-${o.next()}`;s=l.innerHTML,s=yh(hi.entityDecode(s)).trim().replace(//gi,"
    ");const u=hi.detectInit(s);u&&E.debug("Detected early reinit: ",u);try{const{svg:f,bindFunctions:c}=await hh(h,s,l);l.innerHTML=f,t&&await t(h),c&&c(l)}catch(f){pb(f,a,Ot.parseError)}}if(a.length>0)throw a[0]},sh=function(t){Ce.initialize(t)},mb=async function(t,e,i){E.warn("mermaid.init is deprecated. Please use run instead."),t&&sh(t);const r={postRenderCallback:i,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await oh(r)},_b=async(t,{lazyLoad:e=!0}={})=>{ll(...t),e===!1&&await db()},ah=function(){if(Ot.startOnLoad){const{startOnLoad:t}=Ce.getConfig();t&&Ot.run().catch(e=>E.error("Mermaid failed to initialize",e))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",ah,!1)}const yb=function(t){Ot.parseError=t},gr=[];let rn=!1;const lh=async()=>{if(!rn){for(rn=!0;gr.length>0;){const t=gr.shift();if(t)try{await t()}catch(e){E.error("Error executing queue",e)}}rn=!1}},Cb=async(t,e)=>new Promise((i,r)=>{const n=()=>new Promise((o,s)=>{Ce.parse(t,e).then(a=>{o(a),i(a)},a=>{var l;E.error("Error parsing",a),(l=Ot.parseError)==null||l.call(Ot,a),s(a),r(a)})});gr.push(n),lh().catch(r)}),hh=(t,e,i)=>new Promise((r,n)=>{const o=()=>new Promise((s,a)=>{Ce.render(t,e,i).then(l=>{s(l),r(l)},l=>{var h;E.error("Error parsing",l),(h=Ot.parseError)==null||h.call(Ot,l),a(l),n(l)})});gr.push(o),lh().catch(n)}),Ot={startOnLoad:!0,mermaidAPI:Ce,parse:Cb,render:hh,init:mb,run:oh,registerExternalDiagrams:_b,initialize:sh,parseError:void 0,contentLoaded:ah,setParseErrorHandler:yb,detectType:Er},qb=Object.freeze(Object.defineProperty({__proto__:null,default:Ot},Symbol.toStringTag,{value:"Module"}));export{Rg as $,hi as A,si as B,cy as C,uy as D,oy as E,zf as F,Ob as G,my as H,k0 as I,Bn as J,ra as K,Ti as L,du as M,sa as N,bb as O,Ch as P,xh as Q,gt as R,_t as S,Th as T,wi as U,Pb as V,Si as W,We as X,rr as Y,sr as Z,wr as _,hy as a,qt as a$,vm as a0,ki as a1,or as a2,Og as a3,Ya as a4,Pa as a5,Dp as a6,Np as a7,fe as a8,ds as a9,I as aA,Pt as aB,I0 as aC,yh as aD,An as aE,ne as aF,di as aG,No as aH,xu as aI,Cy as aJ,Lb as aK,n0 as aL,dl as aM,Vn as aN,On as aO,kb as aP,Bb as aQ,jo as aR,Ho as aS,Ab as aT,wb as aU,Tb as aV,vb as aW,Eb as aX,Fb as aY,Sb as aZ,Jm as a_,Bg as aa,xe as ab,Rp as ac,Pn as ad,$p as ae,zp as af,He as ag,Eg as ah,he as ai,Tr as aj,ls as ak,qn as al,za as am,Ua as an,Ga as ao,Mp as ap,Cn as aq,tm as ar,Yp as as,Vg as at,Jr as au,Qg as av,Yg as aw,em as ax,Rn as ay,rm as az,ly as b,Ss as b0,Mb as b1,l0 as b2,T0 as b3,fy as b4,vi as b5,A as b6,O as b7,qb as b8,Jn as c,Ci as d,st as e,lr as f,ay as g,Tt as h,Dl as i,jn as j,L0 as k,E as l,Hs as m,Rf as n,b0 as o,rl as p,p0 as q,Ym as r,sy as s,ey as t,Rb as u,ia as v,B0 as w,Fh as x,eg as y,Nn as z}; diff --git a/assets/mindmap-definition-307c710a-DdlwPr3Y.js b/assets/mindmap-definition-307c710a-DdlwPr3Y.js new file mode 100644 index 00000000..5d8a39cd --- /dev/null +++ b/assets/mindmap-definition-307c710a-DdlwPr3Y.js @@ -0,0 +1,110 @@ +import{P as hi,Q as rl,l as Er,c as ci,aJ as al,t as nl,aL as ja,d as en,h as il,b5 as sl,b6 as ol,b7 as ul,aN as ll}from"./mermaid.core-Bc1j4tiv.js";import{c as fl}from"./createText-ca0c5216-bYdpW0Zp.js";import"./app-Ca-A-iaw.js";function Xe(t){"@babel/helpers - typeof";return Xe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xe(t)}function vi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function hl(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,a=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(u){throw u},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,o;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return i=u.done,u},e:function(u){s=!0,o=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw o}}}}var Ye=typeof window>"u"?null:window,Yi=Ye?Ye.navigator:null;Ye&&Ye.document;var gl=Xe(""),so=Xe({}),pl=Xe(function(){}),yl=typeof HTMLElement>"u"?"undefined":Xe(HTMLElement),xa=function(e){return e&&e.instanceString&&Ge(e.instanceString)?e.instanceString():null},de=function(e){return e!=null&&Xe(e)==gl},Ge=function(e){return e!=null&&Xe(e)===pl},Re=function(e){return!pt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Ce=function(e){return e!=null&&Xe(e)===so&&!Re(e)&&e.constructor===Object},ml=function(e){return e!=null&&Xe(e)===so},ie=function(e){return e!=null&&Xe(e)===Xe(1)&&!isNaN(e)},bl=function(e){return ie(e)&&Math.floor(e)===e},tn=function(e){if(yl!=="undefined")return e!=null&&e instanceof HTMLElement},pt=function(e){return Ta(e)||oo(e)},Ta=function(e){return xa(e)==="collection"&&e._private.single},oo=function(e){return xa(e)==="collection"&&!e._private.single},gi=function(e){return xa(e)==="core"},uo=function(e){return xa(e)==="stylesheet"},El=function(e){return xa(e)==="event"},jt=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},wl=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},xl=function(e){return Ce(e)&&ie(e.x1)&&ie(e.x2)&&ie(e.y1)&&ie(e.y2)},Tl=function(e){return ml(e)&&Ge(e.then)},Cl=function(){return Yi&&Yi.userAgent.match(/msie|trident|edge/i)},ha=function(e,r){r||(r=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;sr?1:0},Il=function(e,r){return-1*fo(e,r)},be=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(g-=1),g<1/6?v+(p-v)*6*g:g<1/2?p:g<2/3?v+(p-v)*(2/3-g)*6:v}var h=new RegExp("^"+Ll+"$").exec(e);if(h){if(a=parseInt(h[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(h[2]),n<0||n>100||(n=n/100,i=parseFloat(h[3]),i<0||i>100)||(i=i/100,s=h[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=u=l=Math.round(i*255);else{var d=i<.5?i*(1+n):i+n-i*n,c=2*i-d;o=Math.round(255*f(c,d,a+1/3)),u=Math.round(255*f(c,d,a)),l=Math.round(255*f(c,d,a-1/3))}r=[o,u,l,s]}return r},kl=function(e){var r,a=new RegExp("^"+Dl+"$").exec(e);if(a){r=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var o=n[1]||n[2]||n[3],u=n[1]&&n[2]&&n[3];if(o&&!u)return;var l=a[4];if(l!==void 0){if(l=parseFloat(l),l<0||l>1)return;r.push(l)}}return r},Pl=function(e){return Fl[e.toLowerCase()]},Bl=function(e){return(Re(e)?e:null)||Pl(e)||Ml(e)||kl(e)||Rl(e)},Fl={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},ho=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i=e||E<0||h&&w>=i}function y(){var S=Rn();if(g(S))return b(S);o=setTimeout(y,p(S))}function b(S){return o=void 0,d&&a?c(S):(a=n=void 0,s)}function m(){o!==void 0&&clearTimeout(o),l=0,a=u=n=o=void 0}function T(){return o===void 0?s:b(Rn())}function C(){var S=Rn(),E=g(S);if(a=arguments,n=this,u=S,E){if(o===void 0)return v(u);if(h)return clearTimeout(o),o=setTimeout(y,e),c(u)}return o===void 0&&(o=setTimeout(y,e)),s}return C.cancel=m,C.flush=T,C}var gn=xf,kn=Ye?Ye.performance:null,po=kn&&kn.now?function(){return kn.now()}:function(){return Date.now()},Tf=function(){if(Ye){if(Ye.requestAnimationFrame)return function(t){Ye.requestAnimationFrame(t)};if(Ye.mozRequestAnimationFrame)return function(t){Ye.mozRequestAnimationFrame(t)};if(Ye.webkitRequestAnimationFrame)return function(t){Ye.webkitRequestAnimationFrame(t)};if(Ye.msRequestAnimationFrame)return function(t){Ye.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(po())},1e3/60)}}(),rn=function(e){return Tf(e)},$t=po,Nr=9261,yo=65599,ia=5381,mo=function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nr,a=r,n;n=e.next(),!n.done;)a=a*yo+n.value|0;return a},ca=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nr;return r*yo+e|0},va=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ia;return(r<<5)+r+e|0},Cf=function(e,r){return e*2097152+r},qt=function(e){return e[0]*2097152+e[1]},Ma=function(e,r){return[ca(e[0],r[0]),va(e[1],r[1])]},Df=function(e,r){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0;n--)e[n]===r&&e.splice(n,1)},bi=function(e){e.splice(0,e.length)},Mf=function(e,r){for(var a=0;a"u"?"undefined":Xe(Set))!==kf?Set:Pf,pn=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!gi(e)){ze("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){ze("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new Ur,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),r.renderedPosition){var s=r.renderedPosition,o=e.pan(),u=e.zoom();i.position={x:(s.x-o.x)/u,y:(s.y-o.y)/u}}var l=[];Re(r.classes)?l=r.classes:de(r.classes)&&(l=r.classes.split(/\s+/));for(var f=0,h=l.length;fb?1:0},f=function(y,b,m,T,C){var S;if(m==null&&(m=0),C==null&&(C=a),m<0)throw new Error("lo must be non-negative");for(T==null&&(T=y.length);mD;0<=D?x++:x--)w.push(x);return w}).apply(this).reverse(),E=[],T=0,C=S.length;TL;0<=L?++w:--w)A.push(s(y,m));return A},p=function(y,b,m,T){var C,S,E;for(T==null&&(T=a),C=y[m];m>b;){if(E=m-1>>1,S=y[E],T(C,S)<0){y[m]=S,m=E;continue}break}return y[m]=C},g=function(y,b,m){var T,C,S,E,w;for(m==null&&(m=a),C=y.length,w=b,S=y[b],T=2*b+1;T0;){var S=b.pop(),E=g(S),w=S.id();if(d[w]=E,E!==1/0)for(var x=S.neighborhood().intersect(v),D=0;D0)for(P.unshift(k);h[z];){var G=h[z];P.unshift(G.edge),P.unshift(G.node),B=G.node,z=B.id()}return o.spawn(P)}}}},zf={kruskal:function(e){e=e||function(m){return 1};for(var r=this.byGroup(),a=r.nodes,n=r.edges,i=a.length,s=new Array(i),o=a,u=function(T){for(var C=0;C0;){if(C(),E++,T===f){for(var w=[],x=i,D=f,L=y[D];w.unshift(x),L!=null&&w.unshift(L),x=g[D],x!=null;)D=x.id(),L=y[D];return{found:!0,distance:h[T],path:this.spawn(w),steps:E}}c[T]=!0;for(var A=m._private.edges,N=0;NL&&(v[D]=L,b[D]=x,m[D]=C),!i){var A=x*f+w;!i&&v[A]>L&&(v[A]=L,b[A]=w,m[A]=C)}}}for(var N=0;N1&&arguments[1]!==void 0?arguments[1]:s,Ae=m(fe),xe=[],we=Ae;;){if(we==null)return r.spawn();var De=b(we),ee=De.edge,I=De.pred;if(xe.unshift(we[0]),we.same(pe)&&xe.length>0)break;ee!=null&&xe.unshift(ee),we=I}return u.spawn(xe)},S=0;S=0;f--){var h=l[f],d=h[1],c=h[2];(r[d]===o&&r[c]===u||r[d]===u&&r[c]===o)&&l.splice(f,1)}for(var v=0;vn;){var i=Math.floor(Math.random()*r.length);r=qf(i,e,r),a--}return r},Wf={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(P){return P.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),u=Math.floor(i/Xf);if(i<2){ze("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(r,a):(a0&&e.splice(0,r));for(var o=0,u=e.length-1;u>=0;u--){var l=e[u];s?isFinite(l)||(e[u]=-1/0,o++):e.splice(u,1)}i&&e.sort(function(d,c){return d-c});var f=e.length,h=Math.floor(f/2);return f%2!==0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},eh=function(e){return Math.PI*e/180},Ra=function(e,r){return Math.atan2(r,e)-Math.PI/2},Ei=Math.log2||function(t){return Math.log(t)/Math.log(2)},Do=function(e){return e>0?1:e<0?-1:0},gr=function(e,r){return Math.sqrt(ur(e,r))},ur=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},th=function(e){for(var r=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},ah=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},nh=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},ih=function(e,r,a){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}},So=function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},sh=function(e,r,a){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},_a=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ha=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(r.length===1)a=n=i=s=r[0];else if(r.length===2)a=i=r[0],s=n=r[1];else if(r.length===4){var o=St(r,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Qi=function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},wi=function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},Gr=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},oh=function(e,r){return Gr(e,r.x,r.y)},Lo=function(e,r){return Gr(e,r.x1,r.y1)&&Gr(e,r.x2,r.y2)},Ao=function(e,r,a,n,i,s,o){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",l=u==="auto"?pr(i,s):u,f=i/2,h=s/2;l=Math.min(l,f,h);var d=l!==f,c=l!==h,v;if(d){var p=a-f+l-o,g=n-h-o,y=a+f-l+o,b=g;if(v=Zt(e,r,a,n,p,g,y,b,!1),v.length>0)return v}if(c){var m=a+f+o,T=n-h+l-o,C=m,S=n+h-l+o;if(v=Zt(e,r,a,n,m,T,C,S,!1),v.length>0)return v}if(d){var E=a-f+l-o,w=n+h+o,x=a+f-l+o,D=w;if(v=Zt(e,r,a,n,E,w,x,D,!1),v.length>0)return v}if(c){var L=a-f-o,A=n-h+l-o,N=L,O=n+h-l+o;if(v=Zt(e,r,a,n,L,A,N,O,!1),v.length>0)return v}var M;{var R=a-f+l,k=n-h+l;if(M=sa(e,r,a,n,R,k,l+o),M.length>0&&M[0]<=R&&M[1]<=k)return[M[0],M[1]]}{var P=a+f-l,B=n-h+l;if(M=sa(e,r,a,n,P,B,l+o),M.length>0&&M[0]>=P&&M[1]<=B)return[M[0],M[1]]}{var z=a+f-l,G=n+h-l;if(M=sa(e,r,a,n,z,G,l+o),M.length>0&&M[0]>=z&&M[1]>=G)return[M[0],M[1]]}{var F=a-f+l,U=n+h-l;if(M=sa(e,r,a,n,F,U,l+o),M.length>0&&M[0]<=F&&M[1]>=U)return[M[0],M[1]]}return[]},uh=function(e,r,a,n,i,s,o){var u=o,l=Math.min(a,i),f=Math.max(a,i),h=Math.min(n,s),d=Math.max(n,s);return l-u<=e&&e<=f+u&&h-u<=r&&r<=d+u},lh=function(e,r,a,n,i,s,o,u,l){var f={x1:Math.min(a,o,i)-l,x2:Math.max(a,o,i)+l,y1:Math.min(n,u,s)-l,y2:Math.max(n,u,s)+l};return!(ef.x2||rf.y2)},fh=function(e,r,a,n){a-=n;var i=r*r-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,u=(-r+s)/o,l=(-r-s)/o;return[u,l]},hh=function(e,r,a,n,i){var s=1e-5;e===0&&(e=s),r/=e,a/=e,n/=e;var o,u,l,f,h,d,c,v;if(u=(3*a-r*r)/9,l=-(27*n)+r*(9*a-2*(r*r)),l/=54,o=u*u*u+l*l,i[1]=0,c=r/3,o>0){h=l+Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),d=l-Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),i[0]=-c+h+d,c+=(h+d)/2,i[4]=i[2]=-c,c=Math.sqrt(3)*(-d+h)/2,i[3]=c,i[5]=-c;return}if(i[5]=i[3]=0,o===0){v=l<0?-Math.pow(-l,1/3):Math.pow(l,1/3),i[0]=-c+2*v,i[4]=i[2]=-(v+c);return}u=-u,f=u*u*u,f=Math.acos(l/Math.sqrt(f)),v=2*Math.sqrt(u),i[0]=-c+v*Math.cos(f/3),i[2]=-c+v*Math.cos((f+2*Math.PI)/3),i[4]=-c+v*Math.cos((f+4*Math.PI)/3)},ch=function(e,r,a,n,i,s,o,u){var l=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*u+4*s*s-4*s*u+u*u,f=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*u-6*s*s+3*s*u,h=1*3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*u-n*r+2*s*s+2*s*r-u*r,d=1*a*i-a*a+a*e-i*e+n*s-n*n+n*r-s*r,c=[];hh(l,f,h,d,c);for(var v=1e-7,p=[],g=0;g<6;g+=2)Math.abs(c[g+1])=0&&c[g]<=1&&p.push(c[g]);p.push(1),p.push(0);for(var y=-1,b,m,T,C=0;C=0?Tl?(e-i)*(e-i)+(r-s)*(r-s):f-d},dt=function(e,r,a){for(var n,i,s,o,u,l=0,f=0;f=e&&e>=s||n<=e&&e<=s)u=(e-n)/(s-n)*(o-i)+i,u>r&&l++;else continue;return l%2!==0},Yt=function(e,r,a,n,i,s,o,u,l){var f=new Array(a.length),h;u[0]!=null?(h=Math.atan(u[1]/u[0]),u[0]<0?h=h+Math.PI/2:h=-h-Math.PI/2):h=u;for(var d=Math.cos(-h),c=Math.sin(-h),v=0;v0){var g=sn(f,-l);p=nn(g)}else p=f;return dt(e,r,p)},dh=function(e,r,a,n,i,s,o,u){for(var l=new Array(a.length*2),f=0;f=0&&g<=1&&b.push(g),y>=0&&y<=1&&b.push(y),b.length===0)return[];var m=b[0]*u[0]+e,T=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[m,T];var C=b[1]*u[0]+e,S=b[1]*u[1]+r;return[m,T,C,S]}else return[m,T]},Bn=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},Zt=function(e,r,a,n,i,s,o,u,l){var f=e-i,h=a-e,d=o-i,c=r-s,v=n-r,p=u-s,g=d*c-p*f,y=h*c-v*f,b=p*h-d*v;if(b!==0){var m=g/b,T=y/b,C=.001,S=0-C,E=1+C;return S<=m&&m<=E&&S<=T&&T<=E?[e+m*h,r+m*v]:l?[e+m*h,r+m*v]:[]}else return g===0||y===0?Bn(e,a,o)===o?[o,u]:Bn(e,a,i)===i?[i,s]:Bn(i,o,a)===a?[a,n]:[]:[]},pa=function(e,r,a,n,i,s,o,u){var l=[],f,h=new Array(a.length),d=!0;s==null&&(d=!1);var c;if(d){for(var v=0;v0){var p=sn(h,-u);c=nn(p)}else c=h}else c=a;for(var g,y,b,m,T=0;T2){for(var v=[f[0],f[1]],p=Math.pow(v[0]-e,2)+Math.pow(v[1]-r,2),g=1;gf&&(f=T)},get:function(m){return l[m]}},d=0;d0?R=M.edgesTo(O)[0]:R=O.edgesTo(M)[0];var k=n(R);O=O.id(),w[O]>w[A]+k&&(w[O]=w[A]+k,x.nodes.indexOf(O)<0?x.push(O):x.updateItem(O),E[O]=0,S[O]=[]),w[O]==w[A]+k&&(E[O]=E[O]+E[A],S[O].push(A))}else for(var P=0;P0;){for(var F=C.pop(),U=0;U0&&o.push(a[u]);o.length!==0&&i.push(n.collection(o))}return i},Nh=function(e,r){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:Rh,o=n,u,l,f=0;f=2?ea(e,r,a,0,rs,kh):ea(e,r,a,0,ts)},squaredEuclidean:function(e,r,a){return ea(e,r,a,0,rs)},manhattan:function(e,r,a){return ea(e,r,a,0,ts)},max:function(e,r,a){return ea(e,r,a,-1/0,Ph)}};zr["squared-euclidean"]=zr.squaredEuclidean;zr.squaredeuclidean=zr.squaredEuclidean;function mn(t,e,r,a,n,i){var s;return Ge(t)?s=t:s=zr[t]||zr.euclidean,e===0&&Ge(t)?s(n,i):s(e,r,a,n,i)}var Bh=tt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Ti=function(e){return Bh(e)},on=function(e,r,a,n,i){var s=i!=="kMedoids",o=s?function(h){return a[h]}:function(h){return n[h](a)},u=function(d){return n[d](r)},l=a,f=r;return mn(e,n.length,o,u,l,f)},Fn=function(e,r,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(r),u=null,l=0;la)return!1}return!0},zh=function(e,r,a){for(var n=0;no&&(o=r[l][f],u=f);i[u].push(e[l])}for(var h=0;h=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var v=r[s],p=r[n[s]],g;i.mode==="dendrogram"?g={left:v,right:p,key:v.key}:g={value:v.value.concat(p.value),key:v.key},e[v.index]=g,e.splice(p.index,1),r[v.key]=g;for(var y=0;ya[p.key][b.key]&&(u=a[p.key][b.key])):i.linkage==="max"?(u=a[v.key][b.key],a[v.key][b.key]0&&n.push(i);return n},us=function(e,r,a){for(var n=[],i=0;io&&(s=l,o=r[i*e+l])}s>0&&n.push(s)}for(var f=0;fl&&(u=f,l=h)}a[i]=s[u]}return n=us(e,r,a),n},ls=function(e){for(var r=this.cy(),a=this.nodes(),n=jh(e),i={},s=0;s=L?(A=L,L=O,N=M):O>A&&(A=O);for(var R=0;R0?1:0;E[x%n.minIterations*o+F]=U,G+=U}if(G>0&&(x>=n.minIterations-1||x==n.maxIterations-1)){for(var Y=0,W=0;W1||S>1)&&(o=!0),h[m]=[],b.outgoers().forEach(function(w){w.isEdge()&&h[m].push(w.id())})}else d[m]=[void 0,b.target().id()]}):s.forEach(function(b){var m=b.id();if(b.isNode()){var T=b.degree(!0);T%2&&(u?l?o=!0:l=m:u=m),h[m]=[],b.connectedEdges().forEach(function(C){return h[m].push(C.id())})}else d[m]=[b.source().id(),b.target().id()]});var c={found:!1,trail:void 0};if(o)return c;if(l&&u)if(i){if(f&&l!=f)return c;f=l}else{if(f&&l!=f&&u!=f)return c;f||(f=l)}else f||(f=s[0].id());var v=function(m){for(var T=m,C=[m],S,E,w;h[T].length;)S=h[T].shift(),E=d[S][0],w=d[S][1],T!=w?(h[w]=h[w].filter(function(x){return x!=S}),T=w):!i&&T!=E&&(h[E]=h[E].filter(function(x){return x!=S}),T=E),C.unshift(S),C.unshift(T);return C},p=[],g=[];for(g=v(f);g.length!=1;)h[g[0]].length==0?(p.unshift(s.getElementById(g.shift())),p.unshift(s.getElementById(g.shift()))):g=v(g.shift()).concat(g);p.unshift(s.getElementById(g.shift()));for(var y in h)if(h[y].length)return c;return c.found=!0,c.trail=this.spawn(p,!0),c}},Ba=function(){var e=this,r={},a=0,n=0,i=[],s=[],o={},u=function(d,c){for(var v=s.length-1,p=[],g=e.spawn();s[v].x!=d||s[v].y!=c;)p.push(s.pop().edge),v--;p.push(s.pop().edge),p.forEach(function(y){var b=y.connectedNodes().intersection(e);g.merge(y),b.forEach(function(m){var T=m.id(),C=m.connectedEdges().intersection(e);g.merge(m),r[T].cutVertex?g.merge(C.filter(function(S){return S.isLoop()})):g.merge(C)})}),i.push(g)},l=function h(d,c,v){d===v&&(n+=1),r[c]={id:a,low:a++,cutVertex:!1};var p=e.getElementById(c).connectedEdges().intersection(e);if(p.size()===0)i.push(e.spawn(e.getElementById(c)));else{var g,y,b,m;p.forEach(function(T){g=T.source().id(),y=T.target().id(),b=g===c?y:g,b!==v&&(m=T.id(),o[m]||(o[m]=!0,s.push({x:c,y:b,edge:T})),b in r?r[c].low=Math.min(r[c].low,r[b].id):(h(d,b,c),r[c].low=Math.min(r[c].low,r[b].low),r[c].id<=r[b].low&&(r[c].cutVertex=!0,u(c,b))))})}};e.forEach(function(h){if(h.isNode()){var d=h.id();d in r||(n=0,l(d,d),r[d].cutVertex=n>1)}});var f=Object.keys(r).filter(function(h){return r[h].cutVertex}).map(function(h){return e.getElementById(h)});return{cut:e.spawn(f),components:i}},oc={hopcroftTarjanBiconnected:Ba,htbc:Ba,htb:Ba,hopcroftTarjanBiconnectedComponents:Ba},Fa=function(){var e=this,r={},a=0,n=[],i=[],s=e.spawn(e),o=function u(l){i.push(l),r[l]={index:a,low:a++,explored:!1};var f=e.getElementById(l).connectedEdges().intersection(e);if(f.forEach(function(p){var g=p.target().id();g!==l&&(g in r||u(g),r[g].explored||(r[l].low=Math.min(r[l].low,r[g].low)))}),r[l].index===r[l].low){for(var h=e.spawn();;){var d=i.pop();if(h.merge(e.getElementById(d)),r[d].low=r[l].index,r[d].explored=!0,d===l)break}var c=h.edgesWith(h),v=h.merge(c);n.push(v),s=s.difference(v)}};return e.forEach(function(u){if(u.isNode()){var l=u.id();l in r||o(l)}}),{cut:s,components:n}},uc={tarjanStronglyConnected:Fa,tsc:Fa,tscc:Fa,tarjanStronglyConnectedComponents:Fa},Po={};[da,Gf,zf,Uf,Yf,Hf,Wf,bh,kr,Pr,Zn,Mh,Hh,Qh,nc,sc,oc,uc].forEach(function(t){be(Po,t)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var Bo=0,Fo=1,Go=2,_t=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Bo,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};_t.prototype={fulfill:function(e){return fs(this,Fo,"fulfillValue",e)},reject:function(e){return fs(this,Go,"rejectReason",e)},then:function(e,r){var a=this,n=new _t;return a.onFulfilled.push(cs(e,n,"fulfill")),a.onRejected.push(cs(r,n,"reject")),zo(a),n.proxy}};var fs=function(e,r,a,n){return e.state===Bo&&(e.state=r,e[a]=n,zo(e)),e},zo=function(e){e.state===Fo?hs(e,"onFulfilled",e.fulfillValue):e.state===Go&&hs(e,"onRejected",e.rejectReason)},hs=function(e,r,a){if(e[r].length!==0){var n=e[r];e[r]=[];var i=function(){for(var o=0;o0}},clearQueue:function(){return function(){var r=this,a=r.length!==void 0,n=a?r:[r],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s-1}var gv=dv;function pv(t,e){var r=this.__data__,a=En(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var yv=pv;function _r(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0&&this.spawn(n).updateStyle().emit("class"),r},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},toggleClass:function(e,r){Re(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=r===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,r){var a=this;if(r==null)r=250;else if(r===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},r),a}};Xa.className=Xa.classNames=Xa.classes;var Te={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:He,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Te.variable="(?:[\\w-.]|(?:\\\\"+Te.metaChar+"))+";Te.className="(?:[\\w-]|(?:\\\\"+Te.metaChar+"))+";Te.value=Te.string+"|"+Te.number;Te.id=Te.variable;(function(){var t,e,r;for(t=Te.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(Te.comparatorOp+="|\\!"+e)})();var Ie=function(){return{checks:[]}},oe={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},Jn=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(t,e){return Il(t.selector,e.selector)}),wd=function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return Ne("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return Ne("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&Ne("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Ld=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(f){return f??""},r=function(f){return de(f)?'"'+f+'"':e(f)},a=function(f){return" "+f+" "},n=function(f,h){var d=f.type,c=f.value;switch(d){case oe.GROUP:{var v=e(c);return v.substring(0,v.length-1)}case oe.DATA_COMPARE:{var p=f.field,g=f.operator;return"["+p+a(e(g))+r(c)+"]"}case oe.DATA_BOOL:{var y=f.operator,b=f.field;return"["+e(y)+b+"]"}case oe.DATA_EXIST:{var m=f.field;return"["+m+"]"}case oe.META_COMPARE:{var T=f.operator,C=f.field;return"[["+C+a(e(T))+r(c)+"]]"}case oe.STATE:return c;case oe.ID:return"#"+c;case oe.CLASS:return"."+c;case oe.PARENT:case oe.CHILD:return i(f.parent,h)+a(">")+i(f.child,h);case oe.ANCESTOR:case oe.DESCENDANT:return i(f.ancestor,h)+" "+i(f.descendant,h);case oe.COMPOUND_SPLIT:{var S=i(f.left,h),E=i(f.subject,h),w=i(f.right,h);return S+(S.length>0?" ":"")+E+w}case oe.TRUE:return""}},i=function(f,h){return f.checks.reduce(function(d,c,v){return d+(h===f&&v===0?"$":"")+n(c,h)},"")},s="",o=0;o1&&o=0&&(r=r.replace("!",""),h=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(i||o||f)&&(u=!i&&!s?"":""+e,l=""+a),f&&(e=u=u.toLowerCase(),a=l=l.toLowerCase()),r){case"*=":n=u.indexOf(l)>=0;break;case"$=":n=u.indexOf(l,u.length-l.length)>=0;break;case"^=":n=u.indexOf(l)===0;break;case"=":n=e===a;break;case">":d=!0,n=e>a;break;case">=":d=!0,n=e>=a;break;case"<":d=!0,n=e0;){var f=n.shift();e(f),i.add(f.id()),o&&a(n,i,f)}return t}function Wo(t,e,r){if(r.isParent())for(var a=r._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return Ai(this,t,e,Wo)};function Ko(t,e,r){if(r.isChild()){var a=r._private.parent;e.has(a.id())||t.push(a)}}Vr.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ai(this,t,e,Ko)};function Pd(t,e,r){Ko(t,e,r),Wo(t,e,r)}Vr.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ai(this,t,e,Pd)};Vr.ancestors=Vr.parents;var ma,Zo;ma=Zo={data:Oe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Oe.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Oe.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};ma.attr=ma.data;ma.removeAttr=ma.removeData;var Bd=Zo,xn={};function zn(t){return function(e){var r=this;if(e===void 0&&(e=!0),r.length!==0)if(r.isNode()&&!r.removed()){for(var a=0,n=r[0],i=n._private.edges,s=0;se}),minIndegree:Dr("indegree",function(t,e){return te}),minOutdegree:Dr("outdegree",function(t,e){return te})});be(xn,{totalDegree:function(e){for(var r=0,a=this.nodes(),n=0;n0,d=h;h&&(f=f[0]);var c=d?f.position():{x:0,y:0};r!==void 0?l.position(e,r+c[e]):i!==void 0&&l.position({x:i.x+c.x,y:i.y+c.y})}else{var v=a.position(),p=o?a.parent():null,g=p&&p.length>0,y=g;g&&(p=p[0]);var b=y?p.position():{x:0,y:0};return i={x:v.x-b.x,y:v.y-b.y},e===void 0?i:i[e]}else if(!s)return;return this}};Ot.modelPosition=Ot.point=Ot.position;Ot.modelPositions=Ot.points=Ot.positions;Ot.renderedPoint=Ot.renderedPosition;Ot.relativePoint=Ot.relativePosition;var Fd=Qo,Br,ir;Br=ir={};ir.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),a=r.zoom(),n=r.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,u=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:u,w:s-i,h:u-o}};ir.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var a=r._private;a.compoundBoundsClean=!1,a.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};ir.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var o=s._private,u=s.children(),l=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},h=u.boundingBox({includeLabels:l,includeOverlays:!1,useCache:!1}),d=o.position;(h.w===0||h.h===0)&&(h={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},h.x1=d.x-h.w/2,h.x2=d.x+h.w/2,h.y1=d.y-h.h/2,h.y2=d.y+h.h/2);function c(x,D,L){var A=0,N=0,O=D+L;return x>0&&O>0&&(A=D/O*x,N=L/O*x),{biasDiff:A,biasComplementDiff:N}}function v(x,D,L,A){if(L.units==="%")switch(A){case"width":return x>0?L.pfValue*x:0;case"height":return D>0?L.pfValue*D:0;case"average":return x>0&&D>0?L.pfValue*(x+D)/2:0;case"min":return x>0&&D>0?x>D?L.pfValue*D:L.pfValue*x:0;case"max":return x>0&&D>0?x>D?L.pfValue*x:L.pfValue*D:0;default:return 0}else return L.units==="px"?L.pfValue:0}var p=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(p=p*100/f.width.val);var g=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(g=g*100/f.width.val);var y=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(y=y*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var m=c(f.width.val-h.w,p,g),T=m.biasDiff,C=m.biasComplementDiff,S=c(f.height.val-h.h,y,b),E=S.biasDiff,w=S.biasComplementDiff;o.autoPadding=v(h.w,h.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(h.w,f.width.val),d.x=(-T+h.x1+h.x2+C)/2,o.autoHeight=Math.max(h.h,f.height.val),d.y=(-E+h.y1+h.y2+w)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},lr=function(e,r){return r==null?e:Lt(e,r.x1,r.y1,r.x2,r.y2)},ta=function(e,r,a){return At(e,r,a)},Ga=function(e,r,a){if(!r.cy().headless()){var n=r._private,i=n.rstyle,s=i.arrowWidth/2,o=r.pstyle(a+"-arrow-shape").value,u,l;if(o!=="none"){a==="source"?(u=i.srcX,l=i.srcY):a==="target"?(u=i.tgtX,l=i.tgtY):(u=i.midX,l=i.midY);var f=n.arrowBounds=n.arrowBounds||{},h=f[a]=f[a]||{};h.x1=u-s,h.y1=l-s,h.x2=u+s,h.y2=l+s,h.w=h.x2-h.x1,h.h=h.y2-h.y1,_a(h,1),Lt(e,h.x1,h.y1,h.x2,h.y2)}}},Vn=function(e,r,a){if(!r.cy().headless()){var n;a?n=a+"-":n="";var i=r._private,s=i.rstyle,o=r.pstyle(n+"label").strValue;if(o){var u=r.pstyle("text-halign"),l=r.pstyle("text-valign"),f=ta(s,"labelWidth",a),h=ta(s,"labelHeight",a),d=ta(s,"labelX",a),c=ta(s,"labelY",a),v=r.pstyle(n+"text-margin-x").pfValue,p=r.pstyle(n+"text-margin-y").pfValue,g=r.isEdge(),y=r.pstyle(n+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,m=r.pstyle("text-border-width").pfValue,T=m/2,C=r.pstyle("text-background-padding").pfValue,S=2,E=h,w=f,x=w/2,D=E/2,L,A,N,O;if(g)L=d-x,A=d+x,N=c-D,O=c+D;else{switch(u.value){case"left":L=d-w,A=d;break;case"center":L=d-x,A=d+x;break;case"right":L=d,A=d+w;break}switch(l.value){case"top":N=c-E,O=c;break;case"center":N=c-D,O=c+D;break;case"bottom":N=c,O=c+E;break}}L+=v-Math.max(b,T)-C-S,A+=v+Math.max(b,T)+C+S,N+=p-Math.max(b,T)-C-S,O+=p+Math.max(b,T)+C+S;var M=a||"main",R=i.labelBounds,k=R[M]=R[M]||{};k.x1=L,k.y1=N,k.x2=A,k.y2=O,k.w=A-L,k.h=O-N;var P=g&&y.strValue==="autorotate",B=y.pfValue!=null&&y.pfValue!==0;if(P||B){var z=P?ta(i.rstyle,"labelAngle",a):y.pfValue,G=Math.cos(z),F=Math.sin(z),U=(L+A)/2,Y=(N+O)/2;if(!g){switch(u.value){case"left":U=A;break;case"right":U=L;break}switch(l.value){case"top":Y=O;break;case"bottom":Y=N;break}}var W=function(ce,te){return ce=ce-U,te=te-Y,{x:ce*G-te*F+U,y:ce*F+te*G+Y}},K=W(L,N),j=W(L,O),_=W(A,N),V=W(A,O);L=Math.min(K.x,j.x,_.x,V.x),A=Math.max(K.x,j.x,_.x,V.x),N=Math.min(K.y,j.y,_.y,V.y),O=Math.max(K.y,j.y,_.y,V.y)}var H=M+"Rot",Q=R[H]=R[H]||{};Q.x1=L,Q.y1=N,Q.x2=A,Q.y2=O,Q.w=A-L,Q.h=O-N,Lt(e,L,N,A,O),Lt(i.labelBounds.all,L,N,A,O)}return e}},Gd=function(e,r){if(!r.cy().headless()){var a=r.pstyle("outline-opacity").value,n=r.pstyle("outline-width").value;if(a>0&&n>0){var i=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,o=n+i,u=(e.w+o*2)/e.w,l=(e.h+o*2)/e.h,f=0,h=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(e.w+o*2.4)/e.w,h=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(e.w+o*2.4)/e.w:s==="star"?(u=(e.w+o*2.8)/e.w,l=(e.h+o*2.6)/e.h,h=-o/3.8):s==="triangle"?(u=(e.w+o*2.8)/e.w,l=(e.h+o*2.4)/e.h,h=-o/1.4):s==="vee"&&(u=(e.w+o*4.4)/e.w,l=(e.h+o*3.8)/e.h,h=-o*.5);var d=e.h*l-e.h,c=e.w*u-e.w;if(Ha(e,[Math.ceil(d/2),Math.ceil(c/2)]),f!=0||h!==0){var v=ih(e,f,h);So(e,v)}}}},zd=function(e,r){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=gt(),o=e._private,u=e.isNode(),l=e.isEdge(),f,h,d,c,v,p,g=o.rstyle,y=u&&n?e.pstyle("bounds-expansion").pfValue:[0],b=function(ue){return ue.pstyle("display").value!=="none"},m=!n||b(e)&&(!l||b(e.source())&&b(e.target()));if(m){var T=0,C=0;n&&r.includeOverlays&&(T=e.pstyle("overlay-opacity").value,T!==0&&(C=e.pstyle("overlay-padding").value));var S=0,E=0;n&&r.includeUnderlays&&(S=e.pstyle("underlay-opacity").value,S!==0&&(E=e.pstyle("underlay-padding").value));var w=Math.max(C,E),x=0,D=0;if(n&&(x=e.pstyle("width").pfValue,D=x/2),u&&r.includeNodes){var L=e.position();v=L.x,p=L.y;var A=e.outerWidth(),N=A/2,O=e.outerHeight(),M=O/2;f=v-N,h=v+N,d=p-M,c=p+M,Lt(s,f,d,h,c),n&&r.includeOutlines&&Gd(s,e)}else if(l&&r.includeEdges)if(n&&!i){var R=e.pstyle("curve-style").strValue;if(f=Math.min(g.srcX,g.midX,g.tgtX),h=Math.max(g.srcX,g.midX,g.tgtX),d=Math.min(g.srcY,g.midY,g.tgtY),c=Math.max(g.srcY,g.midY,g.tgtY),f-=D,h+=D,d-=D,c+=D,Lt(s,f,d,h,c),R==="haystack"){var k=g.haystackPts;if(k&&k.length===2){if(f=k[0].x,d=k[0].y,h=k[1].x,c=k[1].y,f>h){var P=f;f=h,h=P}if(d>c){var B=d;d=c,c=B}Lt(s,f-D,d-D,h+D,c+D)}}else if(R==="bezier"||R==="unbundled-bezier"||R.endsWith("segments")||R.endsWith("taxi")){var z;switch(R){case"bezier":case"unbundled-bezier":z=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":z=g.linePts;break}if(z!=null)for(var G=0;Gh){var j=f;f=h,h=j}if(d>c){var _=d;d=c,c=_}f-=D,h+=D,d-=D,c+=D,Lt(s,f,d,h,c)}if(n&&r.includeEdges&&l&&(Ga(s,e,"mid-source"),Ga(s,e,"mid-target"),Ga(s,e,"source"),Ga(s,e,"target")),n){var V=e.pstyle("ghost").value==="yes";if(V){var H=e.pstyle("ghost-offset-x").pfValue,Q=e.pstyle("ghost-offset-y").pfValue;Lt(s,s.x1+H,s.y1+Q,s.x2+H,s.y2+Q)}}var ne=o.bodyBounds=o.bodyBounds||{};Qi(ne,s),Ha(ne,y),_a(ne,1),n&&(f=s.x1,h=s.x2,d=s.y1,c=s.y2,Lt(s,f-w,d-w,h+w,c+w));var ce=o.overlayBounds=o.overlayBounds||{};Qi(ce,s),Ha(ce,y),_a(ce,1);var te=o.labelBounds=o.labelBounds||{};te.all!=null?nh(te.all):te.all=gt(),n&&r.includeLabels&&(r.includeMainLabels&&Vn(s,e,null),l&&(r.includeSourceLabels&&Vn(s,e,"source"),r.includeTargetLabels&&Vn(s,e,"target")))}return s.x1=Et(s.x1),s.y1=Et(s.y1),s.x2=Et(s.x2),s.y2=Et(s.y2),s.w=Et(s.x2-s.x1),s.h=Et(s.y2-s.y1),s.w>0&&s.h>0&&m&&(Ha(s,y),_a(s,1)),s},jo=function(e){var r=0,a=function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:eg,e=arguments.length>1?arguments[1]:void 0,r=0;r=0;o--)s(o);return this};ar.removeAllListeners=function(){return this.removeListener("*")};ar.emit=ar.trigger=function(t,e,r){var a=this.listeners,n=a.length;return this.emitting++,Re(e)||(e=[e]),tg(this,function(i,s){r!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],n=a.length);for(var o=function(f){var h=a[f];if(h.type===s.type&&(!h.namespace||h.namespace===s.namespace||h.namespace===jd)&&i.eventMatches(i.context,h,s)){var d=[s];e!=null&&Mf(d,e),i.beforeEmit(i.context,h,s),h.conf&&h.conf.one&&(i.listeners=i.listeners.filter(function(p){return p!==h}));var c=i.callbackContext(i.context,h,s),v=h.callback.apply(c,d);i.afterEmit(i.context,h,s),v===!1&&(s.stopPropagation(),s.preventDefault())}},u=0;u1&&!s){var o=this.length-1,u=this[o],l=u._private.data.id;this[o]=void 0,this[e]=u,i.set(l,{ele:u,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var r=this._private,a=e._private.data.id,n=r.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var r=this._private.cy;if(!e)return this;if(e&&de(e)){var a=e;e=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];e(a)&&this.unmergeAt(r)}return this},map:function(e,r){for(var a=[],n=this,i=0;ia&&(a=u,n=o)}return{value:a,ele:n}},min:function(e,r){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":Xe(Symbol))!=e&&Xe(Symbol.iterator)!=e;r&&(un[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return ao({next:function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){this.cleanStyle();var i=a._private.style[e];return i??(r?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var a=r.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},renderedStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=this[0];if(a)return r.style().getRenderedStyle(a,e)},style:function(e,r){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(Ce(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(de(e))if(r===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,r,n),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?i.getRawStyle(u):void 0}return this},removeStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=!1,n=r.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(o[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});it.neighbourhood=it.neighborhood;it.closedNeighbourhood=it.closedNeighborhood;it.openNeighbourhood=it.openNeighborhood;be(it,{source:wt(function(e){var r=this[0],a;return r&&(a=r._private.source||r.cy().collection()),a&&e?a.filter(e):a},"source"),target:wt(function(e){var r=this[0],a;return r&&(a=r._private.target||r.cy().collection()),a&&e?a.filter(e):a},"target"),sources:Os({attr:"source"}),targets:Os({attr:"target"})});function Os(t){return function(r){for(var a=[],n=0;n0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});it.componentsOf=it.components;var et=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){ze("A collection must have a reference to the core");return}var i=new Bt,s=!1;if(!r)r=[];else if(r.length>0&&Ce(r[0])&&!Ta(r[0])){s=!0;for(var o=[],u=new Ur,l=0,f=r.length;l0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=r.cy(),n=a._private,i=[],s=[],o,u=0,l=r.length;u0){for(var B=o.length===r.length?r:new et(a,o),z=0;z0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=[],n={},i=r._private.cy;function s(O){for(var M=O._private.edges,R=0;R0&&(t?L.emitAndNotify("remove"):e&&L.emit("remove"));for(var A=0;A0?A=O:L=O;while(Math.abs(N)>s&&++M=i?b(D,M):R===0?M:T(D,L,L+l)}var S=!1;function E(){S=!0,(t!==e||r!==a)&&m()}var w=function(L){return S||E(),t===e&&r===a?L:L===0?0:L===1?1:g(C(L),e,a)};w.getControlPoints=function(){return[{x:t,y:e},{x:r,y:a}]};var x="generateBezier("+[t,e,r,a]+")";return w.toString=function(){return x},w}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var cg=function(){function t(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:t(s)}}function r(a,n){var i={dx:a.v,dv:t(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),u=e(a,n,o),l=1/6*(i.dx+2*(s.dx+o.dx)+u.dx),f=1/6*(i.dv+2*(s.dv+o.dv)+u.dv);return a.x=a.x+l*n,a.v=a.v+f*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},u=[0],l=0,f=1/1e4,h=16/1e3,d,c,v;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,d=s!==null,d?(l=a(n,i),c=l/s*h):c=h;v=r(v||o,c),u.push(1+v.x),l+=16,Math.abs(v.x)>f&&Math.abs(v.v)>f;);return d?function(p){return u[p*(u.length-1)|0]}:l}}(),ke=function(e,r,a,n){var i=hg(e,r,a,n);return function(s,o,u){return s+(o-s)*i(u)}},Wa={linear:function(e,r,a){return e+(r-e)*a},ease:ke(.25,.1,.25,1),"ease-in":ke(.42,0,1,1),"ease-out":ke(0,0,.58,1),"ease-in-out":ke(.42,0,.58,1),"ease-in-sine":ke(.47,0,.745,.715),"ease-out-sine":ke(.39,.575,.565,1),"ease-in-out-sine":ke(.445,.05,.55,.95),"ease-in-quad":ke(.55,.085,.68,.53),"ease-out-quad":ke(.25,.46,.45,.94),"ease-in-out-quad":ke(.455,.03,.515,.955),"ease-in-cubic":ke(.55,.055,.675,.19),"ease-out-cubic":ke(.215,.61,.355,1),"ease-in-out-cubic":ke(.645,.045,.355,1),"ease-in-quart":ke(.895,.03,.685,.22),"ease-out-quart":ke(.165,.84,.44,1),"ease-in-out-quart":ke(.77,0,.175,1),"ease-in-quint":ke(.755,.05,.855,.06),"ease-out-quint":ke(.23,1,.32,1),"ease-in-out-quint":ke(.86,0,.07,1),"ease-in-expo":ke(.95,.05,.795,.035),"ease-out-expo":ke(.19,1,.22,1),"ease-in-out-expo":ke(1,0,0,1),"ease-in-circ":ke(.6,.04,.98,.335),"ease-out-circ":ke(.075,.82,.165,1),"ease-in-out-circ":ke(.785,.135,.15,.86),spring:function(e,r,a){if(a===0)return Wa.linear;var n=cg(e,r,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":ke};function Ms(t,e,r,a,n){if(a===1||e===r)return r;var i=n(e,r,a);return t==null||((t.roundValue||t.color)&&(i=Math.round(i)),t.min!==void 0&&(i=Math.max(i,t.min)),t.max!==void 0&&(i=Math.min(i,t.max))),i}function Rs(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function Sr(t,e,r,a,n){var i=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var s=Rs(t,n),o=Rs(e,n);if(ie(s)&&ie(o))return Ms(i,s,o,r,a);if(Re(s)&&Re(o)){for(var u=[],l=0;l0?(c==="spring"&&v.push(s.duration),s.easingImpl=Wa[c].apply(null,v)):s.easingImpl=Wa[c]}var p=s.easingImpl,g;if(s.duration===0?g=1:g=(r-u)/s.duration,s.applying&&(g=s.progress),g<0?g=0:g>1&&(g=1),s.delay==null){var y=s.startPosition,b=s.position;if(b&&n&&!t.locked()){var m={};aa(y.x,b.x)&&(m.x=Sr(y.x,b.x,g,p)),aa(y.y,b.y)&&(m.y=Sr(y.y,b.y,g,p)),t.position(m)}var T=s.startPan,C=s.pan,S=i.pan,E=C!=null&&a;E&&(aa(T.x,C.x)&&(S.x=Sr(T.x,C.x,g,p)),aa(T.y,C.y)&&(S.y=Sr(T.y,C.y,g,p)),t.emit("pan"));var w=s.startZoom,x=s.zoom,D=x!=null&&a;D&&(aa(w,x)&&(i.zoom=ga(i.minZoom,Sr(w,x,g,p),i.maxZoom)),t.emit("zoom")),(E||D)&&t.emit("viewport");var L=s.style;if(L&&L.length>0&&n){for(var A=0;A=0;E--){var w=S[E];w()}S.splice(0,S.length)},b=c.length-1;b>=0;b--){var m=c[b],T=m._private;if(T.stopped){c.splice(b,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.frames);continue}!T.playing&&!T.applying||(T.playing&&T.applying&&(T.applying=!1),T.started||dg(f,m,t),vg(f,m,t,h),T.applying&&(T.applying=!1),y(T.frames),T.step!=null&&T.step(t),m.completed()&&(c.splice(b,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.completes)),p=!0)}return!h&&c.length===0&&v.length===0&&a.push(f),p}for(var i=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(a),e.emit("step")}var gg={animate:Oe.animate(),animation:Oe.animation(),animated:Oe.animated(),clearQueue:Oe.clearQueue(),delay:Oe.delay(),delayAnimation:Oe.delayAnimation(),stop:Oe.stop(),addToAnimationPool:function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&rn(function(i){ks(i,e),r()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){ks(s,e)},a.beforeRenderPriorities.animations):r()}},pg={qualifierCompare:function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},eventMatches:function(e,r,a){var n=r.qualifier;return n!=null?e!==a.target&&Ta(a.target)&&n.matches(a.target):!0},addEventFields:function(e,r){r.cy=e,r.target=e},callbackContext:function(e,r,a){return r.qualifier!=null?a.target:e}},Ua=function(e){return de(e)?new tr(e):e},fu={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Tn(pg,this)),this},emitter:function(){return this._private.emitter},on:function(e,r,a){return this.emitter().on(e,Ua(r),a),this},removeListener:function(e,r,a){return this.emitter().removeListener(e,Ua(r),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,r,a){return this.emitter().one(e,Ua(r),a),this},once:function(e,r,a){return this.emitter().one(e,Ua(r),a),this},emit:function(e,r){return this.emitter().emit(e,r),this},emitAndNotify:function(e,r){return this.emit(e),this.notify(e,r),this}};Oe.eventAliasesOn(fu);var ei={png:function(e){var r=this._private.renderer;return e=e||{},r.png(e)},jpg:function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)}};ei.jpeg=ei.jpg;var Ka={layout:function(e){var r=this;if(e==null){ze("Layout options must be specified to make a layout");return}if(e.name==null){ze("A `name` must be specified to make a layout");return}var a=e.name,n=r.extension("layout",a);if(n==null){ze("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;de(e.eles)?i=r.$(e.eles):i=e.eles!=null?e.eles:r.$();var s=new n(be({},e,{cy:r,eles:i}));return s}};Ka.createLayout=Ka.makeLayout=Ka.layout;var yg={notify:function(e,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();r!=null&&n.merge(r);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,r)}},notifications:function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];n.empty()?r.notify(a):r.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var r=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};ti.invalidateDimensions=ti.resize;var Za={collection:function(e,r){return de(e)?this.$(e):pt(e)?e.collection():Re(e)?(r||(r={}),new et(this,e,r.unique,r.removed)):new et(this)},nodes:function(e){var r=this.$(function(a){return a.isNode()});return e?r.filter(e):r},edges:function(e){var r=this.$(function(a){return a.isEdge()});return e?r.filter(e):r},$:function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},mutableElements:function(){return this._private.elements}};Za.elements=Za.filter=Za.$;var ot={},la="t",bg="f";ot.apply=function(t){for(var e=this,r=e._private,a=r.cy,n=a.collection(),i=0;i0;if(d||h&&c){var v=void 0;d&&c||d?v=l.properties:c&&(v=l.mappedProperties);for(var p=0;p1&&(T=1),o.color){var S=a.valueMin[0],E=a.valueMax[0],w=a.valueMin[1],x=a.valueMax[1],D=a.valueMin[2],L=a.valueMax[2],A=a.valueMin[3]==null?1:a.valueMin[3],N=a.valueMax[3]==null?1:a.valueMax[3],O=[Math.round(S+(E-S)*T),Math.round(w+(x-w)*T),Math.round(D+(L-D)*T),Math.round(A+(N-A)*T)];i={bypass:a.bypass,name:a.name,value:O,strValue:"rgb("+O[0]+", "+O[1]+", "+O[2]+")"}}else if(o.number){var M=a.valueMin+(a.valueMax-a.valueMin)*T;i=this.parse(a.name,M,a.bypass,d)}else return!1;if(!i)return p(),!1;i.mapping=a,a=i;break}case s.data:{for(var R=a.field.split("."),k=h.data,P=0;P0&&i>0){for(var o={},u=!1,l=0;l0?t.delayAnimation(s).play().promise().then(m):m()}).then(function(){return t.animation({style:o,duration:i,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1)};ot.checkTrigger=function(t,e,r,a,n,i){var s=this.properties[e],o=n(s);o!=null&&o(r,a)&&i(s)};ot.checkZOrderTrigger=function(t,e,r,a){var n=this;this.checkTrigger(t,e,r,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",t)})};ot.checkBoundsTrigger=function(t,e,r,a){this.checkTrigger(t,e,r,a,function(n){return n.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||a==="bezier")&&t.parallelEdges().forEach(function(i){i.isBundledBezier()&&i.dirtyBoundingBoxCache()}),n.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||a==="none")&&t.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ot.checkTriggers=function(t,e,r,a){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,a),this.checkBoundsTrigger(t,e,r,a)};var La={};La.applyBypass=function(t,e,r,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function u(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var l=a.match(/^\s*$/);if(l)break;var f=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){Ne("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=f[0];var h=f[1];if(h!=="core"){var d=new tr(h);if(d.invalid){Ne("Skipping parsing of block: Invalid selector found in string stylesheet: "+h),o();continue}}var c=f[2],v=!1;i=c;for(var p=[];;){var g=i.match(/^\s*$/);if(g)break;var y=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){Ne("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+c),v=!0;break}s=y[0];var b=y[1],m=y[2],T=e.properties[b];if(!T){Ne("Skipping property: Invalid property name in: "+s),u();continue}var C=r.parse(b,m);if(!C){Ne("Skipping property: Invalid property definition in: "+s),u();continue}p.push({name:b,val:m}),u()}if(v){o();break}r.selector(h);for(var S=0;S=7&&e[0]==="d"&&(f=new RegExp(o.data.regex).exec(e))){if(r)return!1;var d=o.data;return{name:t,value:f,strValue:""+e,mapped:d,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(h=new RegExp(o.mapData.regex).exec(e))){if(r||l.multiple)return!1;var c=o.mapData;if(!(l.color||l.number))return!1;var v=this.parse(t,h[4]);if(!v||v.mapped)return!1;var p=this.parse(t,h[5]);if(!p||p.mapped)return!1;if(v.pfValue===p.pfValue||v.strValue===p.strValue)return Ne("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+v.strValue+"`"),this.parse(t,v.strValue);if(l.color){var g=v.value,y=p.value,b=g[0]===y[0]&&g[1]===y[1]&&g[2]===y[2]&&(g[3]===y[3]||(g[3]==null||g[3]===1)&&(y[3]==null||y[3]===1));if(b)return!1}return{name:t,value:h,strValue:""+e,mapped:c,field:h[1],fieldMin:parseFloat(h[2]),fieldMax:parseFloat(h[3]),valueMin:v.value,valueMax:p.value,bypass:r}}}if(l.multiple&&a!=="multiple"){var m;if(u?m=e.split(/\s+/):Re(e)?m=e:m=[e],l.evenMultiple&&m.length%2!==0)return null;for(var T=[],C=[],S=[],E="",w=!1,x=0;x0?" ":"")+D.strValue}return l.validate&&!l.validate(T,C)?null:l.singleEnum&&w?T.length===1&&de(T[0])?{name:t,value:T[0],strValue:T[0],bypass:r}:null:{name:t,value:T,pfValue:S,strValue:E,bypass:r,units:C}}var L=function(){for(var V=0;Vl.max||l.strictMax&&e===l.max))return null;var R={name:t,value:e,strValue:""+e+(A||""),units:A,bypass:r};return l.unitless||A!=="px"&&A!=="em"?R.pfValue=e:R.pfValue=A==="px"||!A?e:this.getEmSizeInPixels()*e,(A==="ms"||A==="s")&&(R.pfValue=A==="ms"?e:1e3*e),(A==="deg"||A==="rad")&&(R.pfValue=A==="rad"?e:eh(e)),A==="%"&&(R.pfValue=e/100),R}else if(l.propList){var k=[],P=""+e;if(P!=="none"){for(var B=P.split(/\s*,\s*|\s+/),z=0;z0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){u=Math.min((s-2*r)/a.w,(o-2*r)/a.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=a.minZoom&&(a.maxZoom=r),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var r=this._private,a=r.pan,n=r.zoom,i,s,o=!1;if(r.zoomingEnabled||(o=!0),ie(e)?s=e:Ce(e)&&(s=e.level,e.position!=null?i=yn(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!r.panningEnabled&&(o=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var l=e.pan;ie(l.x)&&(r.pan.x=l.x,o=!1),ie(l.y)&&(r.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,r){if(this._private.panningEnabled){if(de(e)){var a=e;e=this.mutableElements().filter(a)}else pt(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var o={x:(i-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,r=e.container,a=this;return e.sizeCache=e.sizeCache||(r?function(){var n=a.window().getComputedStyle(r),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:r.clientWidth-i("padding-left")-i("padding-right"),height:r.clientHeight-i("padding-top")-i("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,r=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/r,x2:(a.x2-e.x)/r,y1:(a.y1-e.y)/r,y2:(a.y2-e.y)/r};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};mr.centre=mr.center;mr.autolockNodes=mr.autolock;mr.autoungrabifyNodes=mr.autoungrabify;var Ea={data:Oe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ea.attr=Ea.data;Ea.removeAttr=Ea.removeData;var wa=function(e){var r=this;e=be({},e);var a=e.container;a&&!tn(a)&&tn(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=r;var s=Ye!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=be({name:s?"grid":"null"},o.layout),o.renderer=be({name:s?"canvas":"null"},o.renderer);var u=function(v,p,g){return p!==void 0?p:g!==void 0?g:v},l=this._private={container:a,ready:!1,options:o,elements:new et(this),listeners:[],aniEles:new et(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,o.zoomingEnabled),userZoomingEnabled:u(!0,o.userZoomingEnabled),panningEnabled:u(!0,o.panningEnabled),userPanningEnabled:u(!0,o.userPanningEnabled),boxSelectionEnabled:u(!0,o.boxSelectionEnabled),autolock:u(!1,o.autolock,o.autolockNodes),autoungrabify:u(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:u(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ie(o.zoom)?o.zoom:1,pan:{x:Ce(o.pan)&&ie(o.pan.x)?o.pan.x:0,y:Ce(o.pan)&&ie(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var f=function(v,p){var g=v.some(Tl);if(g)return $r.all(v).then(p);p(v)};l.styleEnabled&&r.setStyle([]);var h=be({},o,o.renderer);r.initRenderer(h);var d=function(v,p,g){r.notifications(!1);var y=r.mutableElements();y.length>0&&y.remove(),v!=null&&(Ce(v)||Re(v))&&r.add(v),r.one("layoutready",function(m){r.notifications(!0),r.emit(m),r.one("load",p),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",g),r.emit("done")});var b=be({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()};f([o.style,o.elements],function(c){var v=c[0],p=c[1];l.styleEnabled&&r.style().append(v),d(p,function(){r.startAnimationLoop(),l.ready=!0,Ge(o.ready)&&r.on("ready",o.ready);for(var g=0;g0,u=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l;if(pt(e.roots))l=e.roots;else if(Re(e.roots)){for(var f=[],h=0;h0;){var M=O(),R=D(M,A);if(R)M.outgoers().filter(function(te){return te.isNode()&&a.has(te)}).forEach(N);else if(R===null){Ne("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}x();var k=0;if(e.avoidOverlap)for(var P=0;P0&&y[0].length<=3?we/2:0),I=2*Math.PI/y[ve].length*fe;return ve===0&&y[0].length===1&&(ee=1),{x:Q.x+ee*Math.cos(I),y:Q.y+ee*Math.sin(I)}}else{var De={x:Q.x+(fe+1-(pe+1)/2)*Ae,y:(ve+1)*xe};return De}};return a.nodes().layoutPositions(this,e,ce),this};var Cg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function cu(t){this.options=be({},Cg,t)}cu.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,l=u/Math.max(1,i.length-1),f,h=0,d=0;d1&&e.avoidOverlap){h*=1.75;var y=Math.cos(l)-Math.cos(0),b=Math.sin(l)-Math.sin(0),m=Math.sqrt(h*h/(y*y+b*b));f=Math.max(m,f)}var T=function(S,E){var w=e.startAngle+E*l*(n?1:-1),x=f*Math.cos(w),D=f*Math.sin(w),L={x:o.x+x,y:o.y+D};return L};return a.nodes().layoutPositions(this,e,T),this};var Dg={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function vu(t){this.options=be({},Dg,t)}vu.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=t.cy,n=e.eles,i=n.nodes().not(":parent"),s=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],l=0,f=0;f0){var C=Math.abs(b[0].value-T.value);C>=g&&(b=[],y.push(b))}b.push(T)}var S=l+e.minNodeSpacing;if(!e.avoidOverlap){var E=y.length>0&&y[0].length>1,w=Math.min(s.w,s.h)/2-S,x=w/(y.length+E?1:0);S=Math.min(S,x)}for(var D=0,L=0;L1&&e.avoidOverlap){var M=Math.cos(O)-Math.cos(0),R=Math.sin(O)-Math.sin(0),k=Math.sqrt(S*S/(M*M+R*R));D=Math.max(k,D)}A.r=D,D+=S}if(e.equidistant){for(var P=0,B=0,z=0;z=t.numIter||(Rg(a,t),a.temperature=a.temperature*t.coolingFactor,a.temperature=t.animationThreshold&&i(),rn(h)}};f()}else{for(;l;)l=s(u),u++;Fs(a,t),o()}return this};An.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};An.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Lg=function(e,r,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=gt(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=a.eles.components(),l={},f=0;f0){o.graphSet.push(w);for(var f=0;fn.count?0:n.graph},Og=function t(e,r,a,n){var i=n.graphSet[a];if(-10)var h=n.nodeOverlap*f,d=Math.sqrt(o*o+u*u),c=h*o/d,v=h*u/d;else var p=fn(e,o,u),g=fn(r,-1*o,-1*u),y=g.x-p.x,b=g.y-p.y,m=y*y+b*b,d=Math.sqrt(m),h=(e.nodeRepulsion+r.nodeRepulsion)/m,c=h*y/d,v=h*b/d;e.isLocked||(e.offsetX-=c,e.offsetY-=v),r.isLocked||(r.offsetX+=c,r.offsetY+=v)}},Bg=function(e,r,a,n){if(a>0)var i=e.maxX-r.minX;else var i=r.maxX-e.minX;if(n>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},fn=function(e,r,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,u=a/r,l=s/o,f={};return r===0&&0a?(f.x=n,f.y=i+s/2,f):0r&&-1*l<=u&&u<=l?(f.x=n-o/2,f.y=i-o*a/2/r,f):0=l)?(f.x=n+s*r/2/a,f.y=i+s/2,f):(0>a&&(u<=-1*l||u>=l)&&(f.x=n-s*r/2/a,f.y=i-s/2),f)},Fg=function(e,r){for(var a=0;aa){var g=r.gravity*c/p,y=r.gravity*v/p;d.offsetX+=g,d.offsetY+=y}}}}},zg=function(e,r){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],u=e.layoutNodes[o],l=u.children;if(0a)var i={x:a*e/n,y:a*r/n};else var i={x:e,y:r};return i},$g=function t(e,r){var a=e.parentId;if(a!=null){var n=r.layoutNodes[r.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopy&&(v+=g+r.componentSpacing,c=0,p=0,g=0)}}},Yg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function gu(t){this.options=be({},Yg,t)}gu.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=gt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(U){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),u=Math.round(o),l=Math.round(i.w/i.h*o),f=function(Y){if(Y==null)return Math.min(u,l);var W=Math.min(u,l);W==u?u=Y:l=Y},h=function(Y){if(Y==null)return Math.max(u,l);var W=Math.max(u,l);W==u?u=Y:l=Y},d=e.rows,c=e.cols!=null?e.cols:e.columns;if(d!=null&&c!=null)u=d,l=c;else if(d!=null&&c==null)u=d,l=Math.ceil(s/u);else if(d==null&&c!=null)l=c,u=Math.ceil(s/l);else if(l*u>s){var v=f(),p=h();(v-1)*p>=s?f(v-1):(p-1)*v>=s&&h(p-1)}else for(;l*u=s?h(y+1):f(g+1)}var b=i.w/l,m=i.h/u;if(e.condense&&(b=0,m=0),e.avoidOverlap)for(var T=0;T=l&&(M=0,O++)},k={},P=0;P(M=vh(t,e,R[k],R[k+1],R[k+2],R[k+3])))return g(E,M),!0}else if(x.edgeType==="bezier"||x.edgeType==="multibezier"||x.edgeType==="self"||x.edgeType==="compound"){for(var R=x.allpts,k=0;k+5(M=ch(t,e,R[k],R[k+1],R[k+2],R[k+3],R[k+4],R[k+5])))return g(E,M),!0}for(var P=P||w.source,B=B||w.target,z=n.getArrowWidth(D,L),G=[{name:"source",x:x.arrowStartX,y:x.arrowStartY,angle:x.srcArrowAngle},{name:"target",x:x.arrowEndX,y:x.arrowEndY,angle:x.tgtArrowAngle},{name:"mid-source",x:x.midX,y:x.midY,angle:x.midsrcArrowAngle},{name:"mid-target",x:x.midX,y:x.midY,angle:x.midtgtArrowAngle}],k=0;k0&&(y(P),y(B))}function m(E,w,x){return At(E,w,x)}function T(E,w){var x=E._private,D=d,L;w?L=w+"-":L="",E.boundingBox();var A=x.labelBounds[w||"main"],N=E.pstyle(L+"label").value,O=E.pstyle("text-events").strValue==="yes";if(!(!O||!N)){var M=m(x.rscratch,"labelX",w),R=m(x.rscratch,"labelY",w),k=m(x.rscratch,"labelAngle",w),P=E.pstyle(L+"text-margin-x").pfValue,B=E.pstyle(L+"text-margin-y").pfValue,z=A.x1-D-P,G=A.x2+D-P,F=A.y1-D-B,U=A.y2+D-B;if(k){var Y=Math.cos(k),W=Math.sin(k),K=function(ce,te){return ce=ce-M,te=te-R,{x:ce*Y-te*W+M,y:ce*W+te*Y+R}},j=K(z,F),_=K(z,U),V=K(G,F),H=K(G,U),Q=[j.x+P,j.y+B,V.x+P,V.y+B,H.x+P,H.y+B,_.x+P,_.y+B];if(dt(t,e,Q))return g(E),!0}else if(Gr(A,t,e))return g(E),!0}}for(var C=s.length-1;C>=0;C--){var S=s[C];S.isNode()?y(S)||T(S):b(S)||T(S)||T(S,"source")||T(S,"target")}return o};wr.getAllInBox=function(t,e,r,a){var n=this.getCachedZSortedEles().interactive,i=[],s=Math.min(t,r),o=Math.max(t,r),u=Math.min(e,a),l=Math.max(e,a);t=s,r=o,e=u,a=l;for(var f=gt({x1:t,y1:e,x2:r,y2:a}),h=0;h0?-(Math.PI-e.ang):Math.PI+e.ang},Kg=function(e,r,a,n,i){if(e!==$s?Ys(r,e,kt):Wg(bt,kt),Ys(r,a,bt),Vs=kt.nx*bt.ny-kt.ny*bt.nx,Us=kt.nx*bt.nx-kt.ny*-bt.ny,Ut=Math.asin(Math.max(-1,Math.min(1,Vs))),Math.abs(Ut)<1e-6){ri=r.x,ai=r.y,fr=Ar=0;return}hr=1,Qa=!1,Us<0?Ut<0?Ut=Math.PI+Ut:(Ut=Math.PI-Ut,hr=-1,Qa=!0):Ut>0&&(hr=-1,Qa=!0),r.radius!==void 0?Ar=r.radius:Ar=n,or=Ut/2,$a=Math.min(kt.len/2,bt.len/2),i?(Rt=Math.abs(Math.cos(or)*Ar/Math.sin(or)),Rt>$a?(Rt=$a,fr=Math.abs(Rt*Math.sin(or)/Math.cos(or))):fr=Ar):(Rt=Math.min($a,Ar),fr=Math.abs(Rt*Math.sin(or)/Math.cos(or))),ni=r.x+bt.nx*Rt,ii=r.y+bt.ny*Rt,ri=ni-bt.ny*fr*hr,ai=ii+bt.nx*fr*hr,bu=r.x+kt.nx*Rt,Eu=r.y+kt.ny*Rt,$s=r};function wu(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function ki(t,e,r,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Kg(t,e,r,a,n),{cx:ri,cy:ai,radius:fr,startX:bu,startY:Eu,stopX:ni,stopY:ii,startAngle:kt.ang+Math.PI/2*hr,endAngle:bt.ang-Math.PI/2*hr,counterClockwise:Qa})}var ut={};ut.findMidptPtsEtc=function(t,e){var r=e.posPts,a=e.intersectionPts,n=e.vectorNormInverse,i,s=t.pstyle("source-endpoint"),o=t.pstyle("target-endpoint"),u=s.units!=null&&o.units!=null,l=function(C,S,E,w){var x=w-S,D=E-C,L=Math.sqrt(D*D+x*x);return{x:-x/L,y:D/L}},f=t.pstyle("edge-distances").value;switch(f){case"node-position":i=r;break;case"intersection":i=a;break;case"endpoints":{if(u){var h=this.manualEndptToPx(t.source()[0],s),d=St(h,2),c=d[0],v=d[1],p=this.manualEndptToPx(t.target()[0],o),g=St(p,2),y=g[0],b=g[1],m={x1:c,y1:v,x2:y,y2:b};n=l(c,v,y,b),i=m}else Ne("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=a;break}}return{midptPts:i,vectorNormInverse:n}};ut.findHaystackPoints=function(t){for(var e=0;e0?Math.max(ye-me,0):Math.min(ye+me,0)},N=A(D,w),O=A(L,x),M=!1;b===l?y=Math.abs(N)>Math.abs(O)?n:a:b===u||b===o?(y=a,M=!0):(b===i||b===s)&&(y=n,M=!0);var R=y===a,k=R?O:N,P=R?L:D,B=Do(P),z=!1;!(M&&(T||S))&&(b===o&&P<0||b===u&&P>0||b===i&&P>0||b===s&&P<0)&&(B*=-1,k=B*Math.abs(k),z=!0);var G;if(T){var F=C<0?1+C:C;G=F*k}else{var U=C<0?k:0;G=U+C*B}var Y=function(ye){return Math.abs(ye)=Math.abs(k)},W=Y(G),K=Y(Math.abs(k)-Math.abs(G)),j=W||K;if(j&&!z)if(R){var _=Math.abs(P)<=d/2,V=Math.abs(D)<=c/2;if(_){var H=(f.x1+f.x2)/2,Q=f.y1,ne=f.y2;r.segpts=[H,Q,H,ne]}else if(V){var ce=(f.y1+f.y2)/2,te=f.x1,se=f.x2;r.segpts=[te,ce,se,ce]}else r.segpts=[f.x1,f.y2]}else{var ue=Math.abs(P)<=h/2,ve=Math.abs(L)<=v/2;if(ue){var fe=(f.y1+f.y2)/2,pe=f.x1,Ae=f.x2;r.segpts=[pe,fe,Ae,fe]}else if(ve){var xe=(f.x1+f.x2)/2,we=f.y1,De=f.y2;r.segpts=[xe,we,xe,De]}else r.segpts=[f.x2,f.y1]}else if(R){var ee=f.y1+G+(g?d/2*B:0),I=f.x1,$=f.x2;r.segpts=[I,ee,$,ee]}else{var J=f.x1+G+(g?h/2*B:0),q=f.y1,X=f.y2;r.segpts=[J,q,J,X]}if(r.isRound){var ae=t.pstyle("taxi-radius").value,Z=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ae),r.isArcRadius=new Array(r.segpts.length/2).fill(Z)}};ut.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,u=e.tgtH,l=e.srcShape,f=e.tgtShape,h=e.srcCornerRadius,d=e.tgtCornerRadius,c=e.srcRs,v=e.tgtRs,p=!ie(r.startX)||!ie(r.startY),g=!ie(r.arrowStartX)||!ie(r.arrowStartY),y=!ie(r.endX)||!ie(r.endY),b=!ie(r.arrowEndX)||!ie(r.arrowEndY),m=3,T=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,C=m*T,S=gr({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),E=SO.poolIndex()){var M=N;N=O,O=M}var R=x.srcPos=N.position(),k=x.tgtPos=O.position(),P=x.srcW=N.outerWidth(),B=x.srcH=N.outerHeight(),z=x.tgtW=O.outerWidth(),G=x.tgtH=O.outerHeight(),F=x.srcShape=r.nodeShapes[e.getNodeShape(N)],U=x.tgtShape=r.nodeShapes[e.getNodeShape(O)],Y=x.srcCornerRadius=N.pstyle("corner-radius").value==="auto"?"auto":N.pstyle("corner-radius").pfValue,W=x.tgtCornerRadius=O.pstyle("corner-radius").value==="auto"?"auto":O.pstyle("corner-radius").pfValue,K=x.tgtRs=O._private.rscratch,j=x.srcRs=N._private.rscratch;x.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var _=0;_0){var ne=i,ce=ur(ne,Ir(r)),te=ur(ne,Ir(Q)),se=ce;if(te2){var ue=ur(ne,{x:Q[2],y:Q[3]});ue0){var X=s,ae=ur(X,Ir(r)),Z=ur(X,Ir(q)),re=ae;if(Z2){var ye=ur(X,{x:q[2],y:q[3]});ye=v||E){g={cp:T,segment:S};break}}if(g)break}var w=g.cp,x=g.segment,D=(v-y)/x.length,L=x.t1-x.t0,A=c?x.t0+L*D:x.t1-L*D;A=ga(0,A,1),e=Rr(w.p0,w.p1,w.p2,A),d=Qg(w.p0,w.p1,w.p2,A);break}case"straight":case"segments":case"haystack":{for(var N=0,O,M,R,k,P=a.allpts.length,B=0;B+3=v));B+=2);var z=v-M,G=z/O;G=ga(0,G,1),e=rh(R,k,G),d=Cu(R,k);break}}s("labelX",h,e.x),s("labelY",h,e.y),s("labelAutoAngle",h,d)}};l("source"),l("target"),this.applyLabelDimensions(t)}};Gt.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Gt.applyPrefixedLabelDimensions=function(t,e){var r=t._private,a=this.getLabelText(t,e),n=this.calculateLabelDimensions(t,a),i=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,o=At(r.rscratch,"labelWrapCachedLines",e)||[],u=s!=="wrap"?1:Math.max(o.length,1),l=n.height/u,f=l*i,h=n.width,d=n.height+(u-1)*(i-1)*l;Kt(r.rstyle,"labelWidth",e,h),Kt(r.rscratch,"labelWidth",e,h),Kt(r.rstyle,"labelHeight",e,d),Kt(r.rscratch,"labelHeight",e,d),Kt(r.rscratch,"labelLineHeight",e,f)};Gt.getLabelText=function(t,e){var r=t._private,a=e?e+"-":"",n=t.pstyle(a+"label").strValue,i=t.pstyle("text-transform").value,s=function(U,Y){return Y?(Kt(r.rscratch,U,e,Y),Y):At(r.rscratch,U,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=t.pstyle("text-wrap").value;if(o==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var l="​",f=n.split(` +`),h=t.pstyle("text-max-width").pfValue,d=t.pstyle("text-overflow-wrap").value,c=d==="anywhere",v=[],p=/[\s\u200b]+|$/g,g=0;gh){var C=y.matchAll(p),S="",E=0,w=io(C),x;try{for(w.s();!(x=w.n()).done;){var D=x.value,L=D[0],A=y.substring(E,D.index);E=D.index+L.length;var N=S.length===0?A:S+A+L,O=this.calculateLabelDimensions(t,N),M=O.width;M<=h?S+=A+L:(S&&v.push(S),S=A+L)}}catch(F){w.e(F)}finally{w.f()}S.match(/^[\s\u200b]+$/)||v.push(S)}else v.push(y)}s("labelWrapCachedLines",v),n=s("labelWrapCachedText",v.join(` +`)),s("labelWrapKey",u)}else if(o==="ellipsis"){var R=t.pstyle("text-max-width").pfValue,k="",P="…",B=!1;if(this.calculateLabelDimensions(t,n).widthR)break;k+=n[z],z===n.length-1&&(B=!0)}return B||(k+=P),k}return n};Gt.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Gt.calculateLabelDimensions=function(t,e){var r=this,a=r.cy.window(),n=a.document,i=dr(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),o=s[i];if(o!=null)return o;var u=0,l=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,h=t.pstyle("font-family").strValue,d=t.pstyle("font-weight").strValue,c=this.labelCalcCanvas,v=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=n.createElement("canvas"),v=this.labelCalcCanvasContext=c.getContext("2d");var p=c.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}v.font="".concat(l," ").concat(d," ").concat(f,"px ").concat(h);for(var g=0,y=0,b=e.split(` +`),m=0;m1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var u=0;u=t.desktopTapThreshold2}var ft=n(I);Me&&(t.hoverData.tapholdCancelled=!0);var xt=function(){var Mt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Mt.length===0?(Mt.push(ge[0]),Mt.push(ge[1])):(Mt[0]+=ge[0],Mt[1]+=ge[1])};J=!0,a(he,["mousemove","vmousemove","tapdrag"],I,{x:Z[0],y:Z[1]});var mt=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||q.emit({originalEvent:I,type:"boxstart",position:{x:Z[0],y:Z[1]}}),me[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if(Me){var vt={originalEvent:I,type:"cxtdrag",position:{x:Z[0],y:Z[1]}};le?le.emit(vt):q.emit(vt),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||he!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:I,type:"cxtdragout",position:{x:Z[0],y:Z[1]}}),t.hoverData.cxtOver=he,he&&he.emit({originalEvent:I,type:"cxtdragover",position:{x:Z[0],y:Z[1]}}))}}else if(t.hoverData.dragging){if(J=!0,q.panningEnabled()&&q.userPanningEnabled()){var It;if(t.hoverData.justStartedPan){var Vt=t.hoverData.mdownPos;It={x:(Z[0]-Vt[0])*X,y:(Z[1]-Vt[1])*X},t.hoverData.justStartedPan=!1}else It={x:ge[0]*X,y:ge[1]*X};q.panBy(It),q.emit("dragpan"),t.hoverData.dragged=!0}Z=t.projectIntoViewport(I.clientX,I.clientY)}else if(me[4]==1&&(le==null||le.pannable())){if(Me){if(!t.hoverData.dragging&&q.boxSelectionEnabled()&&(ft||!q.panningEnabled()||!q.userPanningEnabled()))mt();else if(!t.hoverData.selecting&&q.panningEnabled()&&q.userPanningEnabled()){var Tt=i(le,t.hoverData.downs);Tt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,me[4]=0,t.data.bgActivePosistion=Ir(re),t.redrawHint("select",!0),t.redraw())}le&&le.pannable()&&le.active()&&le.unactivate()}}else{if(le&&le.pannable()&&le.active()&&le.unactivate(),(!le||!le.grabbed())&&he!=Ee&&(Ee&&a(Ee,["mouseout","tapdragout"],I,{x:Z[0],y:Z[1]}),he&&a(he,["mouseover","tapdragover"],I,{x:Z[0],y:Z[1]}),t.hoverData.last=he),le)if(Me){if(q.boxSelectionEnabled()&&ft)le&&le.grabbed()&&(g(Fe),le.emit("freeon"),Fe.emit("free"),t.dragData.didDrag&&(le.emit("dragfreeon"),Fe.emit("dragfree"))),mt();else if(le&&le.grabbed()&&t.nodeIsDraggable(le)){var $e=!t.dragData.didDrag;$e&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||v(Fe,{inDragLayer:!0});var We={x:0,y:0};if(ie(ge[0])&&ie(ge[1])&&(We.x+=ge[0],We.y+=ge[1],$e)){var at=t.hoverData.dragDelta;at&&ie(at[0])&&ie(at[1])&&(We.x+=at[0],We.y+=at[1])}t.hoverData.draggingEles=!0,Fe.silentShift(We).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else xt();J=!0}if(me[2]=Z[0],me[3]=Z[1],J)return I.stopPropagation&&I.stopPropagation(),I.preventDefault&&I.preventDefault(),!1}},!1);var D,L,A;t.registerBinding(e,"mouseup",function(I){if(!(t.hoverData.which===1&&I.which!==1&&t.hoverData.capture)){var $=t.hoverData.capture;if($){t.hoverData.capture=!1;var J=t.cy,q=t.projectIntoViewport(I.clientX,I.clientY),X=t.selection,ae=t.findNearestElement(q[0],q[1],!0,!1),Z=t.dragData.possibleDragElements,re=t.hoverData.down,ye=n(I);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,re&&re.unactivate(),t.hoverData.which===3){var me={originalEvent:I,type:"cxttapend",position:{x:q[0],y:q[1]}};if(re?re.emit(me):J.emit(me),!t.hoverData.cxtDragged){var he={originalEvent:I,type:"cxttap",position:{x:q[0],y:q[1]}};re?re.emit(he):J.emit(he)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(a(ae,["mouseup","tapend","vmouseup"],I,{x:q[0],y:q[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(a(re,["click","tap","vclick"],I,{x:q[0],y:q[1]}),L=!1,I.timeStamp-A<=J.multiClickDebounceTime()?(D&&clearTimeout(D),L=!0,A=null,a(re,["dblclick","dbltap","vdblclick"],I,{x:q[0],y:q[1]})):(D=setTimeout(function(){L||a(re,["oneclick","onetap","voneclick"],I,{x:q[0],y:q[1]})},J.multiClickDebounceTime()),A=I.timeStamp)),re==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!n(I)&&(J.$(r).unselect(["tapunselect"]),Z.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Z=J.collection()),ae==re&&!t.dragData.didDrag&&!t.hoverData.selecting&&ae!=null&&ae._private.selectable&&(t.hoverData.dragging||(J.selectionType()==="additive"||ye?ae.selected()?ae.unselect(["tapunselect"]):ae.select(["tapselect"]):ye||(J.$(r).unmerge(ae).unselect(["tapunselect"]),ae.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Ee=J.collection(t.getAllInBox(X[0],X[1],X[2],X[3]));t.redrawHint("select",!0),Ee.length>0&&t.redrawHint("eles",!0),J.emit({type:"boxend",originalEvent:I,position:{x:q[0],y:q[1]}});var le=function(Me){return Me.selectable()&&!Me.selected()};J.selectionType()==="additive"||ye||J.$(r).unmerge(Ee).unselect(),Ee.emit("box").stdFilter(le).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!X[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ge=re&&re.grabbed();g(Z),ge&&(re.emit("freeon"),Z.emit("free"),t.dragData.didDrag&&(re.emit("dragfreeon"),Z.emit("dragfree")))}}X[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},!1);var N=function(I){if(!t.scrollingPage){var $=t.cy,J=$.zoom(),q=$.pan(),X=t.projectIntoViewport(I.clientX,I.clientY),ae=[X[0]*J+q.x,X[1]*J+q.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||w()){I.preventDefault();return}if($.panningEnabled()&&$.userPanningEnabled()&&$.zoomingEnabled()&&$.userZoomingEnabled()){I.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var Z;I.deltaY!=null?Z=I.deltaY/-250:I.wheelDeltaY!=null?Z=I.wheelDeltaY/1e3:Z=I.wheelDelta/1e3,Z=Z*t.wheelSensitivity;var re=I.deltaMode===1;re&&(Z*=33);var ye=$.zoom()*Math.pow(10,Z);I.type==="gesturechange"&&(ye=t.gestureStartZoom*I.scale),$.zoom({level:ye,renderedPosition:{x:ae[0],y:ae[1]}}),$.emit(I.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",N,!0),t.registerBinding(e,"scroll",function(I){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(I){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||I.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(ee){t.hasTouchStarted||N(ee)},!0),t.registerBinding(t.container,"mouseout",function(I){var $=t.projectIntoViewport(I.clientX,I.clientY);t.cy.emit({originalEvent:I,type:"mouseout",position:{x:$[0],y:$[1]}})},!1),t.registerBinding(t.container,"mouseover",function(I){var $=t.projectIntoViewport(I.clientX,I.clientY);t.cy.emit({originalEvent:I,type:"mouseover",position:{x:$[0],y:$[1]}})},!1);var O,M,R,k,P,B,z,G,F,U,Y,W,K,j=function(I,$,J,q){return Math.sqrt((J-I)*(J-I)+(q-$)*(q-$))},_=function(I,$,J,q){return(J-I)*(J-I)+(q-$)*(q-$)},V;t.registerBinding(t.container,"touchstart",V=function(I){if(t.hasTouchStarted=!0,!!x(I)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var $=t.cy,J=t.touchData.now,q=t.touchData.earlier;if(I.touches[0]){var X=t.projectIntoViewport(I.touches[0].clientX,I.touches[0].clientY);J[0]=X[0],J[1]=X[1]}if(I.touches[1]){var X=t.projectIntoViewport(I.touches[1].clientX,I.touches[1].clientY);J[2]=X[0],J[3]=X[1]}if(I.touches[2]){var X=t.projectIntoViewport(I.touches[2].clientX,I.touches[2].clientY);J[4]=X[0],J[5]=X[1]}if(I.touches[1]){t.touchData.singleTouchMoved=!0,g(t.dragData.touchDragEles);var ae=t.findContainerClientCoords();F=ae[0],U=ae[1],Y=ae[2],W=ae[3],O=I.touches[0].clientX-F,M=I.touches[0].clientY-U,R=I.touches[1].clientX-F,k=I.touches[1].clientY-U,K=0<=O&&O<=Y&&0<=R&&R<=Y&&0<=M&&M<=W&&0<=k&&k<=W;var Z=$.pan(),re=$.zoom();P=j(O,M,R,k),B=_(O,M,R,k),z=[(O+R)/2,(M+k)/2],G=[(z[0]-Z.x)/re,(z[1]-Z.y)/re];var ye=200,me=ye*ye;if(B=1){for(var Ze=t.touchData.startPosition=[null,null,null,null,null,null],Ue=0;Ue=t.touchTapThreshold2}if($&&t.touchData.cxt){I.preventDefault();var Ze=I.touches[0].clientX-F,Ue=I.touches[0].clientY-U,ct=I.touches[1].clientX-F,Qe=I.touches[1].clientY-U,ft=_(Ze,Ue,ct,Qe),xt=ft/B,mt=150,vt=mt*mt,It=1.5,Vt=It*It;if(xt>=Vt||ft>=vt){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Tt={originalEvent:I,type:"cxttapend",position:{x:X[0],y:X[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Tt),t.touchData.start=null):q.emit(Tt)}}if($&&t.touchData.cxt){var Tt={originalEvent:I,type:"cxtdrag",position:{x:X[0],y:X[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Tt):q.emit(Tt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var $e=t.findNearestElement(X[0],X[1],!0,!0);(!t.touchData.cxtOver||$e!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:I,type:"cxtdragout",position:{x:X[0],y:X[1]}}),t.touchData.cxtOver=$e,$e&&$e.emit({originalEvent:I,type:"cxtdragover",position:{x:X[0],y:X[1]}}))}else if($&&I.touches[2]&&q.boxSelectionEnabled())I.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||q.emit({originalEvent:I,type:"boxstart",position:{x:X[0],y:X[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,J[4]=1,!J||J.length===0||J[0]===void 0?(J[0]=(X[0]+X[2]+X[4])/3,J[1]=(X[1]+X[3]+X[5])/3,J[2]=(X[0]+X[2]+X[4])/3+1,J[3]=(X[1]+X[3]+X[5])/3+1):(J[2]=(X[0]+X[2]+X[4])/3,J[3]=(X[1]+X[3]+X[5])/3),t.redrawHint("select",!0),t.redraw();else if($&&I.touches[1]&&!t.touchData.didSelect&&q.zoomingEnabled()&&q.panningEnabled()&&q.userZoomingEnabled()&&q.userPanningEnabled()){I.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var We=t.dragData.touchDragEles;if(We){t.redrawHint("drag",!0);for(var at=0;at0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var Q;t.registerBinding(e,"touchcancel",Q=function(I){var $=t.touchData.start;t.touchData.capture=!1,$&&$.unactivate()});var ne,ce,te,se;if(t.registerBinding(e,"touchend",ne=function(I){var $=t.touchData.start,J=t.touchData.capture;if(J)I.touches.length===0&&(t.touchData.capture=!1),I.preventDefault();else return;var q=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var X=t.cy,ae=X.zoom(),Z=t.touchData.now,re=t.touchData.earlier;if(I.touches[0]){var ye=t.projectIntoViewport(I.touches[0].clientX,I.touches[0].clientY);Z[0]=ye[0],Z[1]=ye[1]}if(I.touches[1]){var ye=t.projectIntoViewport(I.touches[1].clientX,I.touches[1].clientY);Z[2]=ye[0],Z[3]=ye[1]}if(I.touches[2]){var ye=t.projectIntoViewport(I.touches[2].clientX,I.touches[2].clientY);Z[4]=ye[0],Z[5]=ye[1]}$&&$.unactivate();var me;if(t.touchData.cxt){if(me={originalEvent:I,type:"cxttapend",position:{x:Z[0],y:Z[1]}},$?$.emit(me):X.emit(me),!t.touchData.cxtDragged){var he={originalEvent:I,type:"cxttap",position:{x:Z[0],y:Z[1]}};$?$.emit(he):X.emit(he)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!I.touches[2]&&X.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Ee=X.collection(t.getAllInBox(q[0],q[1],q[2],q[3]));q[0]=void 0,q[1]=void 0,q[2]=void 0,q[3]=void 0,q[4]=0,t.redrawHint("select",!0),X.emit({type:"boxend",originalEvent:I,position:{x:Z[0],y:Z[1]}});var le=function(vt){return vt.selectable()&&!vt.selected()};Ee.emit("box").stdFilter(le).select().emit("boxselect"),Ee.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if($!=null&&$.unactivate(),I.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!I.touches[1]){if(!I.touches[0]){if(!I.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ge=t.dragData.touchDragEles;if($!=null){var Fe=$._private.grabbed;g(ge),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Fe&&($.emit("freeon"),ge.emit("free"),t.dragData.didDrag&&($.emit("dragfreeon"),ge.emit("dragfree"))),a($,["touchend","tapend","vmouseup","tapdragout"],I,{x:Z[0],y:Z[1]}),$.unactivate(),t.touchData.start=null}else{var Me=t.findNearestElement(Z[0],Z[1],!0,!0);a(Me,["touchend","tapend","vmouseup","tapdragout"],I,{x:Z[0],y:Z[1]})}var lt=t.touchData.startPosition[0]-Z[0],Ze=lt*lt,Ue=t.touchData.startPosition[1]-Z[1],ct=Ue*Ue,Qe=Ze+ct,ft=Qe*ae*ae;t.touchData.singleTouchMoved||($||X.$(":selected").unselect(["tapunselect"]),a($,["tap","vclick"],I,{x:Z[0],y:Z[1]}),ce=!1,I.timeStamp-se<=X.multiClickDebounceTime()?(te&&clearTimeout(te),ce=!0,se=null,a($,["dbltap","vdblclick"],I,{x:Z[0],y:Z[1]})):(te=setTimeout(function(){ce||a($,["onetap","voneclick"],I,{x:Z[0],y:Z[1]})},X.multiClickDebounceTime()),se=I.timeStamp)),$!=null&&!t.dragData.didDrag&&$._private.selectable&&ft"u"){var ue=[],ve=function(I){return{clientX:I.clientX,clientY:I.clientY,force:1,identifier:I.pointerId,pageX:I.pageX,pageY:I.pageY,radiusX:I.width/2,radiusY:I.height/2,screenX:I.screenX,screenY:I.screenY,target:I.target}},fe=function(I){return{event:I,touch:ve(I)}},pe=function(I){ue.push(fe(I))},Ae=function(I){for(var $=0;$0)return F[0]}return null},v=Object.keys(d),p=0;p0?c:Ao(i,s,e,r,a,n,o,u)},checkPoint:function(e,r,a,n,i,s,o,u){u=u==="auto"?pr(n,i):u;var l=2*u;if(Yt(e,r,this.points,s,o,n,i-l,[0,-1],a)||Yt(e,r,this.points,s,o,n-l,i,[0,-1],a))return!0;var f=n/2+2*a,h=i/2+2*a,d=[s-f,o-h,s-f,o,s+f,o,s+f,o-h];return!!(dt(e,r,d)||cr(e,r,l,l,s+n/2-u,o+i/2-u,a)||cr(e,r,l,l,s-n/2+u,o+i/2-u,a))}}};Ht.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ht(3,0)),this.generateRoundPolygon("round-triangle",ht(3,0)),this.generatePolygon("rectangle",ht(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",ht(5,0)),this.generateRoundPolygon("round-pentagon",ht(5,0)),this.generatePolygon("hexagon",ht(6,0)),this.generateRoundPolygon("round-hexagon",ht(6,0)),this.generatePolygon("heptagon",ht(7,0)),this.generateRoundPolygon("round-heptagon",ht(7,0)),this.generatePolygon("octagon",ht(8,0)),this.generateRoundPolygon("round-octagon",ht(8,0));var a=new Array(20);{var n=Wn(5,0),i=Wn(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*T)break}else if(l){if(b>=e.deqCost*c||b>=e.deqAvgCost*d)break}else if(m>=e.deqNoDrawCost*Yn)break;var C=e.deq(a,g,p);if(C.length>0)for(var S=0;S0&&(e.onDeqd(a,v),!l&&e.shouldRedraw(a,v,g,p)&&i())},o=e.priority||mi;n.beforeRender(s,o(a))}}}},jg=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:an;vi(this,t),this.idsByKey=new Bt,this.keyForId=new Bt,this.cachesByLvl=new Bt,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return di(t,[{key:"getIdsFor",value:function(r){r==null&&ze("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new Ur,a.set(r,n)),n}},{key:"addIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).add(a)}},{key:"deleteIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).delete(a)}},{key:"getNumberOfIdsForKey",value:function(r){return r==null?0:this.getIdsFor(r).size}},{key:"updateKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);return n!==i}},{key:"isInvalid",value:function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)}},{key:"getCachesAt",value:function(r){var a=this.cachesByLvl,n=this.lvls,i=a.get(r);return i||(i=new Bt,a.set(r,i),n.push(r)),i}},{key:"getCache",value:function(r,a){return this.getCachesAt(a).get(r)}},{key:"get",value:function(r,a){var n=this.getKey(r),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(r),i}},{key:"getForCachedKey",value:function(r,a){var n=this.keyForId.get(r.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(r,a){return this.getCachesAt(a).has(r)}},{key:"has",value:function(r,a){var n=this.getKey(r);return this.hasCache(n,a)}},{key:"setCache",value:function(r,a,n){n.key=r,this.getCachesAt(a).set(r,n)}},{key:"set",value:function(r,a,n){var i=this.getKey(r);this.setCache(i,a,n),this.updateKeyMappingFor(r)}},{key:"deleteCache",value:function(r,a){this.getCachesAt(a).delete(r)}},{key:"delete",value:function(r,a){var n=this.getKey(r);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(r){var a=this;this.lvls.forEach(function(n){return a.deleteCache(r,n)})}},{key:"invalidate",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(r);var i=this.doesEleInvalidateKey(r);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0}}]),t}(),qs=25,Ya=50,Ja=-4,si=3,ep=7.99,tp=8,rp=1024,ap=1024,np=1024,ip=.2,sp=.8,op=10,up=.15,lp=.1,fp=.9,hp=.9,cp=100,vp=1,Mr={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},dp=tt({getKey:null,doesEleInvalidateKey:an,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Eo,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),ua=function(e,r){var a=this;a.renderer=e,a.onDequeues=[];var n=dp(r);be(a,n),a.lookup=new jg(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},qe=ua.prototype;qe.reasons=Mr;qe.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};qe.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=r[t]=r[t]||[];return a};qe.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new Da(function(r,a){return a.reqs-r.reqs});return e};qe.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};qe.getElement=function(t,e,r,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!i.allowEdgeTxrCaching&&t.isEdge()||!i.allowParentTxrCaching&&t.isParent())return null;if(a==null&&(a=Math.ceil(Ei(o*r))),a=ep||a>si)return null;var l=Math.pow(2,a),f=e.h*l,h=e.w*l,d=s.eleTextBiggerThanMin(t,l);if(!this.isVisible(t,d))return null;var c=u.get(t,a);if(c&&c.invalidated&&(c.invalidated=!1,c.texture.invalidatedWidth-=c.width),c)return c;var v;if(f<=qs?v=qs:f<=Ya?v=Ya:v=Math.ceil(f/Ya)*Ya,f>np||h>ap)return null;var p=i.getTextureQueue(v),g=p[p.length-2],y=function(){return i.recycleTexture(v,h)||i.addTexture(v,h)};g||(g=p[p.length-1]),g||(g=y()),g.width-g.usedWidtha;L--)x=i.getElement(t,e,r,L,Mr.downscale);D()}else return i.queueElement(t,S.level-1),S;else{var A;if(!m&&!T&&!C)for(var N=a-1;N>=Ja;N--){var O=u.get(t,N);if(O){A=O;break}}if(b(A))return i.queueElement(t,a),A;g.context.translate(g.usedWidth,0),g.context.scale(l,l),this.drawElement(g.context,t,e,d,!1),g.context.scale(1/l,1/l),g.context.translate(-g.usedWidth,0)}return c={x:g.usedWidth,texture:g,level:a,scale:l,width:h,height:f,scaledLabelShown:d},g.usedWidth+=Math.ceil(h+tp),g.eleCaches.push(c),u.set(t,a,c),i.checkTextureFullness(g),c};qe.invalidateElements=function(t){for(var e=0;e=ip*t.width&&this.retireTexture(t)};qe.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>sp&&t.fullnessChecks>=op?er(r,t):t.fullnessChecks++};qe.retireTexture=function(t){var e=this,r=t.height,a=e.getTextureQueue(r),n=this.lookup;er(a,t),t.retired=!0;for(var i=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,bi(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),er(n,s),a.push(s),s}};qe.queueElement=function(t,e){var r=this,a=r.getElementQueue(),n=r.getElementKeyToQueue(),i=this.getKey(t),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,a.updateItem(s);else{var o={eles:t.spawn().merge(t),level:e,reqs:1,key:i};a.push(o),n[i]=o}};qe.dequeue=function(t){for(var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s0;s++){var o=r.pop(),u=o.key,l=o.eles[0],f=i.hasCache(l,o.level);if(a[u]=null,f)continue;n.push(o);var h=e.getBoundingBox(l);e.getElement(l,h,t,o.level,Mr.dequeue)}return n};qe.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(t),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=yi,r.updateItem(i),r.pop(),a[n]=null):i.eles.unmerge(t))};qe.onDequeue=function(t){this.onDequeues.push(t)};qe.offDequeue=function(t){er(this.onDequeues,t)};qe.setupDequeueing=Ou.setupDequeueing({deqRedrawThreshold:cp,deqCost:up,deqAvgCost:lp,deqNoDrawCost:fp,deqFastCost:hp,deq:function(e,r,a){return e.dequeue(r,a)},onDeqd:function(e,r){for(var a=0;a=pp||r>cn)return null}a.validateLayersElesOrdering(r,t);var u=a.layersByLevel,l=Math.pow(2,r),f=u[r]=u[r]||[],h,d=a.levelIsComplete(r,t),c,v=function(){var D=function(M){if(a.validateLayersElesOrdering(M,t),a.levelIsComplete(M,t))return c=u[M],!0},L=function(M){if(!c)for(var R=r+M;fa<=R&&R<=cn&&!D(R);R+=M);};L(1),L(-1);for(var A=f.length-1;A>=0;A--){var N=f[A];N.invalid&&er(f,N)}};if(!d)v();else return f;var p=function(){if(!h){h=gt();for(var D=0;DCp)return null;var N=a.makeLayer(h,r);if(L!=null){var O=f.indexOf(L)+1;f.splice(O,0,N)}else(D.insert===void 0||D.insert)&&f.unshift(N);return N};if(a.skipping&&!o)return null;for(var y=null,b=t.length/gp,m=!o,T=0;T=b||!Lo(y.bb,C.boundingBox()))&&(y=g({insert:!0,after:y}),!y))return null;c||m?a.queueLayer(y,C):a.drawEleInLayer(y,C,r,e),y.eles.push(C),E[r]=y}return c||(m?null:f)};rt.getEleLevelForLayerLevel=function(t,e){return t};rt.drawEleInLayer=function(t,e,r,a){var n=this,i=this.renderer,s=t.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(r=n.getEleLevelForLayerLevel(r,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,r,Dp),i.setImgSmoothing(s,!0))};rt.levelIsComplete=function(t,e){var r=this,a=r.layersByLevel[t];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length};rt.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var a=0;a0){e=!0;break}}return e};rt.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=$t(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(a,n,i){e.invalidateLayer(a)}))};rt.invalidateLayer=function(t){if(this.lastInvalidationTime=$t(),!t.invalid){var e=t.level,r=t.eles,a=this.layersByLevel[e];er(a,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(!(i&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var l=i?e.pstyle("opacity").value:1,f=i?e.pstyle("line-opacity").value:1,h=e.pstyle("curve-style").value,d=e.pstyle("line-style").value,c=e.pstyle("width").pfValue,v=e.pstyle("line-cap").value,p=e.pstyle("line-outline-width").value,g=e.pstyle("line-outline-color").value,y=l*f,b=l*f,m=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;h==="straight-triangle"?(s.eleStrokeStyle(t,e,M),s.drawEdgeTrianglePath(e,t,o.allpts)):(t.lineWidth=c,t.lineCap=v,s.eleStrokeStyle(t,e,M),s.drawEdgePath(e,t,o.allpts,d),t.lineCap="butt")},T=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;if(t.lineWidth=c+p,t.lineCap=v,p>0)s.colorStrokeStyle(t,g[0],g[1],g[2],M);else{t.lineCap="butt";return}h==="straight-triangle"?s.drawEdgeTrianglePath(e,t,o.allpts):(s.drawEdgePath(e,t,o.allpts,d),t.lineCap="butt")},C=function(){n&&s.drawEdgeOverlay(t,e)},S=function(){n&&s.drawEdgeUnderlay(t,e)},E=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,M)},w=function(){s.drawElementText(t,e,null,a)};t.lineJoin="round";var x=e.pstyle("ghost").value==="yes";if(x){var D=e.pstyle("ghost-offset-x").pfValue,L=e.pstyle("ghost-offset-y").pfValue,A=e.pstyle("ghost-opacity").value,N=y*A;t.translate(D,L),m(N),E(N),t.translate(-D,-L)}else T();S(),m(),E(),C(),w(),r&&t.translate(u.x1,u.y1)}};var Mu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,u=a.pstyle("".concat(e,"-padding")).pfValue,l=2*u,f=a.pstyle("".concat(e,"-color")).value;r.lineWidth=l,o.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",i.colorStrokeStyle(r,f[0],f[1],f[2],n),i.drawEdgePath(a,r,o.allpts,"solid")}}}};Xt.drawEdgeOverlay=Mu("overlay");Xt.drawEdgeUnderlay=Mu("underlay");Xt.drawEdgePath=function(t,e,r,a){var n=t._private.rscratch,i=e,s,o=!1,u=this.usePaths(),l=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var h=r.join("$"),d=n.pathCacheKey&&n.pathCacheKey===h;d?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=h,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(l),i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var c=2;c+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var l=e.element()._private.rscratch.badLine,f=e.pstyle("label"),h=e.pstyle("source-label"),d=e.pstyle("target-label");if(l||(!f||!f.value)&&(!h||!h.value)&&(!d||!d.value))return;t.textAlign="center",t.textBaseline="bottom"}var c=!r,v;r&&(v=r,t.translate(-v.x1,-v.y1)),n==null?(s.drawText(t,e,null,c,i),e.isEdge()&&(s.drawText(t,e,"source",c,i),s.drawText(t,e,"target",c,i))):s.drawText(t,e,n,c,i),r&&t.translate(v.x1,v.y1)};xr.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*o,l=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=a+" "+s+" "+n+" "+i,t.lineJoin="round",this.colorFillStyle(t,l[0],l[1],l[2],o),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};function Hn(t,e,r,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+i,r),t.lineTo(e+a-i,r),t.quadraticCurveTo(e+a,r,e+a,r+i),t.lineTo(e+a,r+n-i),t.quadraticCurveTo(e+a,r+n,e+a-i,r+n),t.lineTo(e+i,r+n),t.quadraticCurveTo(e,r+n,e,r+n-i),t.lineTo(e,r+i),t.quadraticCurveTo(e,r,e+i,r),t.closePath(),s?t.stroke():t.fill()}xr.getTextAngle=function(t,e){var r,a=t._private,n=a.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),o=At(n,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?o:0:s.strValue==="none"?r=0:r=s.pfValue,r};xr.drawText=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=At(s,"labelX",r),l=At(s,"labelY",r),f,h,d=this.getLabelText(e,r);if(d!=null&&d!==""&&!isNaN(u)&&!isNaN(l)){this.setupTextStyle(t,e,n);var c=r?r+"-":"",v=At(s,"labelWidth",r),p=At(s,"labelHeight",r),g=e.pstyle(c+"text-margin-x").pfValue,y=e.pstyle(c+"text-margin-y").pfValue,b=e.isEdge(),m=e.pstyle("text-halign").value,T=e.pstyle("text-valign").value;b&&(m="center",T="center"),u+=g,l+=y;var C;switch(a?C=this.getTextAngle(e,r):C=0,C!==0&&(f=u,h=l,t.translate(f,h),t.rotate(C),u=0,l=0),T){case"top":break;case"center":l+=p/2;break;case"bottom":l+=p;break}var S=e.pstyle("text-background-opacity").value,E=e.pstyle("text-border-opacity").value,w=e.pstyle("text-border-width").pfValue,x=e.pstyle("text-background-padding").pfValue,D=e.pstyle("text-background-shape").strValue,L=D.indexOf("round")===0,A=2;if(S>0||w>0&&E>0){var N=u-x;switch(m){case"left":N-=v;break;case"center":N-=v/2;break}var O=l-p-x,M=v+2*x,R=p+2*x;if(S>0){var k=t.fillStyle,P=e.pstyle("text-background-color").value;t.fillStyle="rgba("+P[0]+","+P[1]+","+P[2]+","+S*o+")",L?Hn(t,N,O,M,R,A):t.fillRect(N,O,M,R),t.fillStyle=k}if(w>0&&E>0){var B=t.strokeStyle,z=t.lineWidth,G=e.pstyle("text-border-color").value,F=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+G[0]+","+G[1]+","+G[2]+","+E*o+")",t.lineWidth=w,t.setLineDash)switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=w/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(L?Hn(t,N,O,M,R,A,"stroke"):t.strokeRect(N,O,M,R),F==="double"){var U=w/2;L?Hn(t,N+U,O+U,M-U*2,R-U*2,A,"stroke"):t.strokeRect(N+U,O+U,M-U*2,R-U*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=z,t.strokeStyle=B}}var Y=2*e.pstyle("text-outline-width").pfValue;if(Y>0&&(t.lineWidth=Y),e.pstyle("text-wrap").value==="wrap"){var W=At(s,"labelWrapCachedLines",r),K=At(s,"labelLineHeight",r),j=v/2,_=this.getLabelJustification(e);switch(_==="auto"||(m==="left"?_==="left"?u+=-v:_==="center"&&(u+=-j):m==="center"?_==="left"?u+=-j:_==="right"&&(u+=j):m==="right"&&(_==="center"?u+=j:_==="right"&&(u+=v))),T){case"top":l-=(W.length-1)*K;break;case"center":case"bottom":l-=(W.length-1)*K;break}for(var V=0;V0&&t.strokeText(W[V],u,l),t.fillText(W[V],u,l),l+=K}else Y>0&&t.strokeText(d,u,l),t.fillText(d,u,l);C!==0&&(t.rotate(-C),t.translate(-f,-h))}}};var Zr={};Zr.drawNode=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,u,l=e._private,f=l.rscratch,h=e.position();if(!(!ie(h.x)||!ie(h.y))&&!(i&&!e.visible())){var d=i?e.effectiveOpacity():1,c=s.usePaths(),v,p=!1,g=e.padding();o=e.width()+2*g,u=e.height()+2*g;var y;r&&(y=r,t.translate(-y.x1,-y.y1));for(var b=e.pstyle("background-image"),m=b.value,T=new Array(m.length),C=new Array(m.length),S=0,E=0;E0&&arguments[0]!==void 0?arguments[0]:N;s.eleFillStyle(t,e,ae)},V=function(){var ae=arguments.length>0&&arguments[0]!==void 0?arguments[0]:G;s.colorStrokeStyle(t,O[0],O[1],O[2],ae)},H=function(){var ae=arguments.length>0&&arguments[0]!==void 0?arguments[0]:W;s.colorStrokeStyle(t,U[0],U[1],U[2],ae)},Q=function(ae,Z,re,ye){var me=s.nodePathCache=s.nodePathCache||[],he=bo(re==="polygon"?re+","+ye.join(","):re,""+Z,""+ae,""+j),Ee=me[he],le,ge=!1;return Ee!=null?(le=Ee,ge=!0,f.pathCache=le):(le=new Path2D,me[he]=f.pathCache=le),{path:le,cacheHit:ge}},ne=e.pstyle("shape").strValue,ce=e.pstyle("shape-polygon-points").pfValue;if(c){t.translate(h.x,h.y);var te=Q(o,u,ne,ce);v=te.path,p=te.cacheHit}var se=function(){if(!p){var ae=h;c&&(ae={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(v||t,ae.x,ae.y,o,u,j,f)}c?t.fill(v):t.fill()},ue=function(){for(var ae=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,re=l.backgrounding,ye=0,me=0;me0&&arguments[0]!==void 0?arguments[0]:!1,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d;s.hasPie(e)&&(s.drawPie(t,e,Z),ae&&(c||s.nodeShapes[s.getNodeShape(e)].draw(t,h.x,h.y,o,u,j,f)))},fe=function(){var ae=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Z=(L>0?L:-L)*ae,re=L>0?0:255;L!==0&&(s.colorFillStyle(t,re,re,re,Z),c?t.fill(v):t.fill())},pe=function(){if(A>0){if(t.lineWidth=A,t.lineCap=k,t.lineJoin=R,t.setLineDash)switch(M){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(B),t.lineDashOffset=z;break;case"solid":case"double":t.setLineDash([]);break}if(P!=="center"){if(t.save(),t.lineWidth*=2,P==="inside")c?t.clip(v):t.clip();else{var ae=new Path2D;ae.rect(-o/2-A,-u/2-A,o+2*A,u+2*A),ae.addPath(v),t.clip(ae,"evenodd")}c?t.stroke(v):t.stroke(),t.restore()}else c?t.stroke(v):t.stroke();if(M==="double"){t.lineWidth=A/3;var Z=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",c?t.stroke(v):t.stroke(),t.globalCompositeOperation=Z}t.setLineDash&&t.setLineDash([])}},Ae=function(){if(F>0){if(t.lineWidth=F,t.lineCap="butt",t.setLineDash)switch(Y){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ae=h;c&&(ae={x:0,y:0});var Z=s.getNodeShape(e),re=A;P==="inside"&&(re=0),P==="outside"&&(re*=2);var ye=(o+re+(F+K))/o,me=(u+re+(F+K))/u,he=o*ye,Ee=u*me,le=s.nodeShapes[Z].points,ge;if(c){var Fe=Q(he,Ee,Z,le);ge=Fe.path}if(Z==="ellipse")s.drawEllipsePath(ge||t,ae.x,ae.y,he,Ee);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Z)){var Me=0,lt=0,Ze=0;Z==="round-diamond"?Me=(re+K+F)*1.4:Z==="round-heptagon"?(Me=(re+K+F)*1.075,Ze=-(re/2+K+F)/35):Z==="round-hexagon"?Me=(re+K+F)*1.12:Z==="round-pentagon"?(Me=(re+K+F)*1.13,Ze=-(re/2+K+F)/15):Z==="round-tag"?(Me=(re+K+F)*1.12,lt=(re/2+F+K)*.07):Z==="round-triangle"&&(Me=(re+K+F)*(Math.PI/2),Ze=-(re+K/2+F)/Math.PI),Me!==0&&(ye=(o+Me)/o,he=o*ye,["round-hexagon","round-tag"].includes(Z)||(me=(u+Me)/u,Ee=u*me)),j=j==="auto"?No(he,Ee):j;for(var Ue=he/2,ct=Ee/2,Qe=j+(re+F+K)/2,ft=new Array(le.length/2),xt=new Array(le.length/2),mt=0;mt0){if(n=n||a.position(),i==null||s==null){var c=a.padding();i=a.width()+2*c,s=a.height()+2*c}o.colorFillStyle(r,f[0],f[1],f[2],l),o.nodeShapes[h].draw(r,n.x,n.y,i+u*2,s+u*2,d),r.fill()}}}};Zr.drawNodeOverlay=Ru("overlay");Zr.drawNodeUnderlay=Ru("underlay");Zr.hasPie=function(t){return t=t[0],t._private.hasPie};Zr.drawPie=function(t,e,r,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=a.x,o=a.y,u=e.width(),l=e.height(),f=Math.min(u,l)/2,h=0,d=this.usePaths();d&&(s=0,o=0),i.units==="%"?f=f*i.pfValue:i.pfValue!==void 0&&(f=i.pfValue/2);for(var c=1;c<=n.pieBackgroundN;c++){var v=e.pstyle("pie-"+c+"-background-size").value,p=e.pstyle("pie-"+c+"-background-color").value,g=e.pstyle("pie-"+c+"-background-opacity").value*r,y=v/100;y+h>1&&(y=1-h);var b=1.5*Math.PI+2*Math.PI*h,m=2*Math.PI*y,T=b+m;v===0||h>=1||h+y>1||(t.beginPath(),t.moveTo(s,o),t.arc(s,o,f,b,T),t.closePath(),this.colorFillStyle(t,p[0],p[1],p[2],g),t.fill(),h+=y)}};var yt={},Bp=100;yt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};yt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,a,n=0;ns.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!h&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var b=u.style(),m=u.zoom(),T=n!==void 0?n:m,C=u.pan(),S={x:C.x,y:C.y},E={zoom:m,pan:{x:C.x,y:C.y}},w=s.prevViewport,x=w===void 0||E.zoom!==w.zoom||E.pan.x!==w.pan.x||E.pan.y!==w.pan.y;!x&&!(p&&!v)&&(s.motionBlurPxRatio=1),i&&(S=i),T*=o,S.x*=o,S.y*=o;var D=s.getCachedZSortedEles();function L(te,se,ue,ve,fe){var pe=te.globalCompositeOperation;te.globalCompositeOperation="destination-out",s.colorFillStyle(te,255,255,255,s.motionBlurTransparency),te.fillRect(se,ue,ve,fe),te.globalCompositeOperation=pe}function A(te,se){var ue,ve,fe,pe;!s.clearingMotionBlur&&(te===l.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||te===l.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(ue={x:C.x*c,y:C.y*c},ve=m*c,fe=s.canvasWidth*c,pe=s.canvasHeight*c):(ue=S,ve=T,fe=s.canvasWidth,pe=s.canvasHeight),te.setTransform(1,0,0,1,0,0),se==="motionBlur"?L(te,0,0,fe,pe):!e&&(se===void 0||se)&&te.clearRect(0,0,fe,pe),r||(te.translate(ue.x,ue.y),te.scale(ve,ve)),i&&te.translate(i.x,i.y),n&&te.scale(n,n)}if(h||(s.textureDrawLastFrame=!1),h){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=u.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var N=s.data.bufferContexts[s.TEXTURE_BUFFER];N.setTransform(1,0,0,1,0,0),N.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:N,drawOnlyNodeLayer:!0,forcedPxRatio:o*s.textureMult});var E=s.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:s.canvasWidth,height:s.canvasHeight};E.mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var O=l.contexts[s.NODE],M=s.textureCache.texture,E=s.textureCache.viewport;O.setTransform(1,0,0,1,0,0),d?L(O,0,0,E.width,E.height):O.clearRect(0,0,E.width,E.height);var R=b.core("outside-texture-bg-color").value,k=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(O,R[0],R[1],R[2],k),O.fillRect(0,0,E.width,E.height);var m=u.zoom();A(O,!1),O.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/o,E.height/E.zoom/o),O.drawImage(M,E.mpan.x,E.mpan.y,E.width/E.zoom/o,E.height/E.zoom/o)}else s.textureOnViewport&&!e&&(s.textureCache=null);var P=u.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),z=s.hideEdgesOnViewport&&B,G=[];if(G[s.NODE]=!f[s.NODE]&&d&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,G[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),G[s.DRAG]=!f[s.DRAG]&&d&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,G[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||a||G[s.NODE]){var F=d&&!G[s.NODE]&&c!==1,O=e||(F?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:l.contexts[s.NODE]),U=d&&!F?"motionBlur":void 0;A(O,U),z?s.drawCachedNodes(O,D.nondrag,o,P):s.drawLayeredElements(O,D.nondrag,o,P),s.debug&&s.drawDebugPoints(O,D.nondrag),!r&&!d&&(f[s.NODE]=!1)}if(!a&&(f[s.DRAG]||r||G[s.DRAG])){var F=d&&!G[s.DRAG]&&c!==1,O=e||(F?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:l.contexts[s.DRAG]);A(O,d&&!F?"motionBlur":void 0),z?s.drawCachedNodes(O,D.drag,o,P):s.drawCachedElements(O,D.drag,o,P),s.debug&&s.drawDebugPoints(O,D.drag),!r&&!d&&(f[s.DRAG]=!1)}if(s.showFps||!a&&f[s.SELECT_BOX]&&!r){var O=e||l.contexts[s.SELECT_BOX];if(A(O),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var m=s.cy.zoom(),Y=b.core("selection-box-border-width").value/m;O.lineWidth=Y,O.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",O.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),Y>0&&(O.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",O.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(l.bgActivePosistion&&!s.hoverData.selecting){var m=s.cy.zoom(),W=l.bgActivePosistion;O.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",O.beginPath(),O.arc(W.x,W.y,b.core("active-bg-size").pfValue/m,0,2*Math.PI),O.fill()}var K=s.lastRedrawTime;if(s.showFps&&K){K=Math.round(K);var j=Math.round(1e3/K);O.setTransform(1,0,0,1,0,0),O.fillStyle="rgba(255, 0, 0, 0.75)",O.strokeStyle="rgba(255, 0, 0, 0.75)",O.lineWidth=1,O.fillText("1 frame = "+K+" ms = "+j+" fps",0,20);var _=60;O.strokeRect(0,30,250,20),O.fillRect(0,30,250*Math.min(j/_,1),20)}r||(f[s.SELECT_BOX]=!1)}if(d&&c!==1){var V=l.contexts[s.NODE],H=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],Q=l.contexts[s.DRAG],ne=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ce=function(se,ue,ve){se.setTransform(1,0,0,1,0,0),ve||!y?se.clearRect(0,0,s.canvasWidth,s.canvasHeight):L(se,0,0,s.canvasWidth,s.canvasHeight);var fe=c;se.drawImage(ue,0,0,s.canvasWidth*fe,s.canvasHeight*fe,0,0,s.canvasWidth,s.canvasHeight)};(f[s.NODE]||G[s.NODE])&&(ce(V,H,G[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||G[s.DRAG])&&(ce(Q,ne,G[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=E,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),d&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!h,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},Bp)),e||u.emit("render")};var sr={};sr.drawPolygonPath=function(t,e,r,a,n,i){var s=a/2,o=n/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*i[0],r+o*i[1]);for(var u=1;u0&&s>0){c.clearRect(0,0,i,s),c.globalCompositeOperation="source-over";var v=this.getCachedZSortedEles();if(t.full)c.translate(-a.x1*l,-a.y1*l),c.scale(l,l),this.drawElements(c,v),c.scale(1/l,1/l),c.translate(a.x1*l,a.y1*l);else{var p=e.pan(),g={x:p.x*l,y:p.y*l};l*=e.zoom(),c.translate(g.x,g.y),c.scale(l,l),this.drawElements(c,v),c.scale(1/l,1/l),c.translate(-g.x,-g.y)}t.bg&&(c.globalCompositeOperation="destination-over",c.fillStyle=t.bg,c.rect(0,0,i,s),c.fill())}return d};function Fp(t,e){for(var r=atob(t),a=new ArrayBuffer(r.length),n=new Uint8Array(a),i=0;i"u"?"undefined":Xe(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var a=this.cy.window(),n=a.document;r=n.createElement("canvas"),r.width=t,r.height=e}return r};[Iu,zt,Xt,Bi,xr,Zr,yt,sr,Na,Bu].forEach(function(t){be(Se,t)});var Vp=[{name:"null",impl:mu},{name:"base",impl:Au},{name:"canvas",impl:Gp}],Up=[{type:"layout",extensions:qg},{type:"renderer",extensions:Vp}],Gu={},zu={};function Vu(t,e,r){var a=r,n=function(w){Ne("Can not register `"+e+"` for `"+t+"` since `"+w+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(wa.prototype[e])return n(e);wa.prototype[e]=r}else if(t==="collection"){if(et.prototype[e])return n(e);et.prototype[e]=r}else if(t==="layout"){for(var i=function(w){this.options=w,r.call(this,w),Ce(this._private)||(this._private={}),this._private.cy=w.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(r.prototype),o=[],u=0;uv&&(this.rect.x-=(this.labelWidth-v)/2,this.setWidth(this.labelWidth)),this.labelHeight>p&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-p)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-p),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==s.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(c){var v=this.rect.x;v>u.WORLD_BOUNDARY?v=u.WORLD_BOUNDARY:v<-u.WORLD_BOUNDARY&&(v=-u.WORLD_BOUNDARY);var p=this.rect.y;p>u.WORLD_BOUNDARY?p=u.WORLD_BOUNDARY:p<-u.WORLD_BOUNDARY&&(p=-u.WORLD_BOUNDARY);var g=new f(v,p),y=c.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},r.exports=h},function(r,a,n){function i(s,o){s==null&&o==null?(this.x=0,this.y=0):(this.x=s,this.y=o)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(s){this.x=s},i.prototype.setY=function(s){this.y=s},i.prototype.getDifference=function(s){return new DimensionD(this.x-s.x,this.y-s.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(s){return this.x+=s.width,this.y+=s.height,this},r.exports=i},function(r,a,n){var i=n(2),s=n(10),o=n(0),u=n(6),l=n(3),f=n(1),h=n(13),d=n(12),c=n(11);function v(g,y,b){i.call(this,b),this.estimatedSize=s.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof u?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}v.prototype=Object.create(i.prototype);for(var p in i)v[p]=i[p];v.prototype.getNodes=function(){return this.nodes},v.prototype.getEdges=function(){return this.edges},v.prototype.getGraphManager=function(){return this.graphManager},v.prototype.getParent=function(){return this.parent},v.prototype.getLeft=function(){return this.left},v.prototype.getRight=function(){return this.right},v.prototype.getTop=function(){return this.top},v.prototype.getBottom=function(){return this.bottom},v.prototype.isConnected=function(){return this.isConnected},v.prototype.add=function(g,y,b){if(y==null&&b==null){var m=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(m)>-1)throw"Node already in graph!";return m.owner=this,this.getNodes().push(m),m}else{var T=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(b)>-1))throw"Source or target not in graph!";if(!(y.owner==b.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=b.owner?null:(T.source=y,T.target=b,T.isInterGraph=!1,this.getEdges().push(T),y.edges.push(T),b!=y&&b.edges.push(T),T)}},v.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var b=y.edges.slice(),m,T=b.length,C=0;C-1&&w>-1))throw"Source and/or target doesn't know this edge!";m.source.edges.splice(E,1),m.target!=m.source&&m.target.edges.splice(w,1);var S=m.source.owner.getEdges().indexOf(m);if(S==-1)throw"Not in owner's edge list!";m.source.owner.getEdges().splice(S,1)}},v.prototype.updateLeftTop=function(){for(var g=s.MAX_VALUE,y=s.MAX_VALUE,b,m,T,C=this.getNodes(),S=C.length,E=0;Eb&&(g=b),y>m&&(y=m)}return g==s.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?T=C[0].getParent().paddingLeft:T=this.margin,this.left=y-T,this.top=g-T,new d(this.left,this.top))},v.prototype.updateBounds=function(g){for(var y=s.MAX_VALUE,b=-s.MAX_VALUE,m=s.MAX_VALUE,T=-s.MAX_VALUE,C,S,E,w,x,D=this.nodes,L=D.length,A=0;AC&&(y=C),bE&&(m=E),TC&&(y=C),bE&&(m=E),T=this.nodes.length){var L=0;b.forEach(function(A){A.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},r.exports=v},function(r,a,n){var i,s=n(1);function o(u){i=n(5),this.layout=u,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var u=this.layout.newGraph(),l=this.layout.newNode(null),f=this.add(u,l);return this.setRootGraph(f),this.rootGraph},o.prototype.add=function(u,l,f,h,d){if(f==null&&h==null&&d==null){if(u==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(u)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(u),u.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return u.parent=l,l.child=u,u}else{d=f,h=l,f=u;var c=h.getOwner(),v=d.getOwner();if(!(c!=null&&c.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(v!=null&&v.getGraphManager()==this))throw"Target not in this graph mgr!";if(c==v)return f.isInterGraph=!1,c.add(f,h,d);if(f.isInterGraph=!0,f.source=h,f.target=d,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},o.prototype.remove=function(u){if(u instanceof i){var l=u;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(l.getEdges());for(var h,d=f.length,c=0;c=u.getRight()?l[0]+=Math.min(u.getX()-o.getX(),o.getRight()-u.getRight()):u.getX()<=o.getX()&&u.getRight()>=o.getRight()&&(l[0]+=Math.min(o.getX()-u.getX(),u.getRight()-o.getRight())),o.getY()<=u.getY()&&o.getBottom()>=u.getBottom()?l[1]+=Math.min(u.getY()-o.getY(),o.getBottom()-u.getBottom()):u.getY()<=o.getY()&&u.getBottom()>=o.getBottom()&&(l[1]+=Math.min(o.getY()-u.getY(),u.getBottom()-o.getBottom()));var d=Math.abs((u.getCenterY()-o.getCenterY())/(u.getCenterX()-o.getCenterX()));u.getCenterY()===o.getCenterY()&&u.getCenterX()===o.getCenterX()&&(d=1);var c=d*l[0],v=l[1]/d;l[0]c)return l[0]=f,l[1]=p,l[2]=d,l[3]=D,!1;if(hd)return l[0]=v,l[1]=h,l[2]=w,l[3]=c,!1;if(fd?(l[0]=y,l[1]=b,O=!0):(l[0]=g,l[1]=p,O=!0):R===P&&(f>d?(l[0]=v,l[1]=p,O=!0):(l[0]=m,l[1]=b,O=!0)),-k===P?d>f?(l[2]=x,l[3]=D,M=!0):(l[2]=w,l[3]=E,M=!0):k===P&&(d>f?(l[2]=S,l[3]=E,M=!0):(l[2]=L,l[3]=D,M=!0)),O&&M)return!1;if(f>d?h>c?(B=this.getCardinalDirection(R,P,4),z=this.getCardinalDirection(k,P,2)):(B=this.getCardinalDirection(-R,P,3),z=this.getCardinalDirection(-k,P,1)):h>c?(B=this.getCardinalDirection(-R,P,1),z=this.getCardinalDirection(-k,P,3)):(B=this.getCardinalDirection(R,P,2),z=this.getCardinalDirection(k,P,4)),!O)switch(B){case 1:F=p,G=f+-C/P,l[0]=G,l[1]=F;break;case 2:G=m,F=h+T*P,l[0]=G,l[1]=F;break;case 3:F=b,G=f+C/P,l[0]=G,l[1]=F;break;case 4:G=y,F=h+-T*P,l[0]=G,l[1]=F;break}if(!M)switch(z){case 1:Y=E,U=d+-N/P,l[2]=U,l[3]=Y;break;case 2:U=L,Y=c+A*P,l[2]=U,l[3]=Y;break;case 3:Y=D,U=d+N/P,l[2]=U,l[3]=Y;break;case 4:U=x,Y=c+-A*P,l[2]=U,l[3]=Y;break}}return!1},s.getCardinalDirection=function(o,u,l){return o>u?l:1+l%4},s.getIntersection=function(o,u,l,f){if(f==null)return this.getIntersection2(o,u,l);var h=o.x,d=o.y,c=u.x,v=u.y,p=l.x,g=l.y,y=f.x,b=f.y,m=void 0,T=void 0,C=void 0,S=void 0,E=void 0,w=void 0,x=void 0,D=void 0,L=void 0;return C=v-d,E=h-c,x=c*d-h*v,S=b-g,w=p-y,D=y*g-p*b,L=C*w-S*E,L===0?null:(m=(E*D-w*x)/L,T=(S*x-C*D)/L,new i(m,T))},s.angleOfVector=function(o,u,l,f){var h=void 0;return o!==l?(h=Math.atan((f-u)/(l-o)),l0?1:s<0?-1:0},i.floor=function(s){return s<0?Math.ceil(s):Math.floor(s)},i.ceil=function(s){return s<0?Math.floor(s):Math.ceil(s)},r.exports=i},function(r,a,n){function i(){}i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,r.exports=i},function(r,a,n){var i=function(){function h(d,c){for(var v=0;v"u"?"undefined":i(o);return o==null||u!="object"&&u!="function"},r.exports=s},function(r,a,n){function i(p){if(Array.isArray(p)){for(var g=0,y=Array(p.length);g0&&g;){for(C.push(E[0]);C.length>0&&g;){var w=C[0];C.splice(0,1),T.add(w);for(var x=w.getEdges(),m=0;m-1&&E.splice(N,1)}T=new Set,S=new Map}}return p},v.prototype.createDummyNodesForBendpoints=function(p){for(var g=[],y=p.source,b=this.graphManager.calcLowestCommonAncestor(p.source,p.target),m=0;m0){for(var b=this.edgeToDummyNodes.get(y),m=0;m=0&&g.splice(D,1);var L=S.getNeighborsList();L.forEach(function(O){if(y.indexOf(O)<0){var M=b.get(O),R=M-1;R==1&&w.push(O),b.set(O,R)}})}y=y.concat(w),(g.length==1||g.length==2)&&(m=!0,T=g[0])}return T},v.prototype.setGraphManager=function(p){this.graphManager=p},r.exports=v},function(r,a,n){function i(){}i.seed=1,i.x=0,i.nextDouble=function(){return i.x=Math.sin(i.seed++)*1e4,i.x-Math.floor(i.x)},r.exports=i},function(r,a,n){var i=n(4);function s(o,u){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}s.prototype.getWorldOrgX=function(){return this.lworldOrgX},s.prototype.setWorldOrgX=function(o){this.lworldOrgX=o},s.prototype.getWorldOrgY=function(){return this.lworldOrgY},s.prototype.setWorldOrgY=function(o){this.lworldOrgY=o},s.prototype.getWorldExtX=function(){return this.lworldExtX},s.prototype.setWorldExtX=function(o){this.lworldExtX=o},s.prototype.getWorldExtY=function(){return this.lworldExtY},s.prototype.setWorldExtY=function(o){this.lworldExtY=o},s.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},s.prototype.setDeviceOrgX=function(o){this.ldeviceOrgX=o},s.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},s.prototype.setDeviceOrgY=function(o){this.ldeviceOrgY=o},s.prototype.getDeviceExtX=function(){return this.ldeviceExtX},s.prototype.setDeviceExtX=function(o){this.ldeviceExtX=o},s.prototype.getDeviceExtY=function(){return this.ldeviceExtY},s.prototype.setDeviceExtY=function(o){this.ldeviceExtY=o},s.prototype.transformX=function(o){var u=0,l=this.lworldExtX;return l!=0&&(u=this.ldeviceOrgX+(o-this.lworldOrgX)*this.ldeviceExtX/l),u},s.prototype.transformY=function(o){var u=0,l=this.lworldExtY;return l!=0&&(u=this.ldeviceOrgY+(o-this.lworldOrgY)*this.ldeviceExtY/l),u},s.prototype.inverseTransformX=function(o){var u=0,l=this.ldeviceExtX;return l!=0&&(u=this.lworldOrgX+(o-this.ldeviceOrgX)*this.lworldExtX/l),u},s.prototype.inverseTransformY=function(o){var u=0,l=this.ldeviceExtY;return l!=0&&(u=this.lworldOrgY+(o-this.ldeviceOrgY)*this.lworldExtY/l),u},s.prototype.inverseTransformPoint=function(o){var u=new i(this.inverseTransformX(o.x),this.inverseTransformY(o.y));return u},r.exports=s},function(r,a,n){function i(c){if(Array.isArray(c)){for(var v=0,p=Array(c.length);vo.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*o.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(c-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-o.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT_INCREMENTAL):(c>o.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(o.COOLING_ADAPTATION_FACTOR,1-(c-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*(1-o.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var c=this.getAllEdges(),v,p=0;p0&&arguments[0]!==void 0?arguments[0]:!0,v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,p,g,y,b,m=this.getAllNodes(),T;if(this.useFRGridVariant)for(this.totalIterations%o.GRID_CALCULATION_CHECK_PERIOD==1&&c&&this.updateGrid(),T=new Set,p=0;pC||T>C)&&(c.gravitationForceX=-this.gravityConstant*y,c.gravitationForceY=-this.gravityConstant*b)):(C=v.getEstimatedSize()*this.compoundGravityRangeFactor,(m>C||T>C)&&(c.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,c.gravitationForceY=-this.gravityConstant*b*this.compoundGravityConstant))},h.prototype.isConverged=function(){var c,v=!1;return this.totalIterations>this.maxIterations/3&&(v=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),c=this.totalDisplacement=m.length||C>=m[0].length)){for(var S=0;Sh}}]),l}();r.exports=u},function(r,a,n){var i=function(){function u(l,f){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;s(this,u),this.sequence1=l,this.sequence2=f,this.match_score=h,this.mismatch_penalty=d,this.gap_penalty=c,this.iMax=l.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var v=0;v=0;l--){var f=this.listeners[l];f.event===o&&f.callback===u&&this.listeners.splice(l,1)}},s.emit=function(o,u){for(var l=0;lf.coolingFactor*f.maxNodeDisplacement&&(this.displacementX=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementX)),Math.abs(this.displacementY)>f.coolingFactor*f.maxNodeDisplacement&&(this.displacementY=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),f.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},u.prototype.propogateDisplacementToChildren=function(f,h){for(var d=this.getChild().getNodes(),c,v=0;v0)this.positionNodesRadially(E);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var w=new Set(this.getAllNodes()),x=this.nodesWithGravity.filter(function(D){return w.has(D)});this.graphManager.setAllNodesToApplyGravitation(x),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},C.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),w=this.nodesWithGravity.filter(function(L){return E.has(L)});this.graphManager.setAllNodesToApplyGravitation(w),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var x=!this.isTreeGrowing&&!this.isGrowthFinished,D=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(x,D),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},C.prototype.getPositionsData=function(){for(var E=this.graphManager.getAllNodes(),w={},x=0;x1){var O;for(O=0;OD&&(D=Math.floor(N.y)),A=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new p(c.WORLD_CENTER_X-N.x/2,c.WORLD_CENTER_Y-N.y/2))},C.radialLayout=function(E,w,x){var D=Math.max(this.maxDiagonalInTree(E),h.DEFAULT_RADIAL_SEPARATION);C.branchRadialLayout(w,null,0,359,0,D);var L=m.calculateBounds(E),A=new T;A.setDeviceOrgX(L.getMinX()),A.setDeviceOrgY(L.getMinY()),A.setWorldOrgX(x.x),A.setWorldOrgY(x.y);for(var N=0;N1;){var Y=U[0];U.splice(0,1);var W=P.indexOf(Y);W>=0&&P.splice(W,1),G--,B--}w!=null?F=(P.indexOf(U[0])+1)%G:F=0;for(var K=Math.abs(D-x)/B,j=F;z!=B;j=++j%G){var _=P[j].getOtherEnd(E);if(_!=w){var V=(x+z*K)%360,H=(V+K)%360;C.branchRadialLayout(_,E,V,H,L+A,A),z++}}},C.maxDiagonalInTree=function(E){for(var w=y.MIN_VALUE,x=0;xw&&(w=L)}return w},C.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},C.prototype.groupZeroDegreeMembers=function(){var E=this,w={};this.memberGroups={},this.idToDummyNode={};for(var x=[],D=this.graphManager.getAllNodes(),L=0;L"u"&&(w[O]=[]),w[O]=w[O].concat(A)}Object.keys(w).forEach(function(M){if(w[M].length>1){var R="DummyCompound_"+M;E.memberGroups[R]=w[M];var k=w[M][0].getParent(),P=new l(E.graphManager);P.id=R,P.paddingLeft=k.paddingLeft||0,P.paddingRight=k.paddingRight||0,P.paddingBottom=k.paddingBottom||0,P.paddingTop=k.paddingTop||0,E.idToDummyNode[R]=P;var B=E.getGraphManager().add(E.newGraph(),P),z=k.getChild();z.add(P);for(var G=0;G=0;E--){var w=this.compoundOrder[E],x=w.id,D=w.paddingLeft,L=w.paddingTop;this.adjustLocations(this.tiledMemberPack[x],w.rect.x,w.rect.y,D,L)}},C.prototype.repopulateZeroDegreeMembers=function(){var E=this,w=this.tiledZeroDegreePack;Object.keys(w).forEach(function(x){var D=E.idToDummyNode[x],L=D.paddingLeft,A=D.paddingTop;E.adjustLocations(w[x],D.rect.x,D.rect.y,L,A)})},C.prototype.getToBeTiled=function(E){var w=E.id;if(this.toBeTiled[w]!=null)return this.toBeTiled[w];var x=E.getChild();if(x==null)return this.toBeTiled[w]=!1,!1;for(var D=x.getNodes(),L=0;L0)return this.toBeTiled[w]=!1,!1;if(A.getChild()==null){this.toBeTiled[A.id]=!1;continue}if(!this.getToBeTiled(A))return this.toBeTiled[w]=!1,!1}return this.toBeTiled[w]=!0,!0},C.prototype.getNodeDegree=function(E){E.id;for(var w=E.getEdges(),x=0,D=0;DM&&(M=k.rect.height)}x+=M+E.verticalPadding}},C.prototype.tileCompoundMembers=function(E,w){var x=this;this.tiledMemberPack=[],Object.keys(E).forEach(function(D){var L=w[D];x.tiledMemberPack[D]=x.tileNodes(E[D],L.paddingLeft+L.paddingRight),L.rect.width=x.tiledMemberPack[D].width,L.rect.height=x.tiledMemberPack[D].height})},C.prototype.tileNodes=function(E,w){var x=h.TILING_PADDING_VERTICAL,D=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:w,verticalPadding:x,horizontalPadding:D};E.sort(function(O,M){return O.rect.width*O.rect.height>M.rect.width*M.rect.height?-1:O.rect.width*O.rect.height0&&(N+=E.horizontalPadding),E.rowWidth[x]=N,E.width0&&(O+=E.verticalPadding);var M=0;O>E.rowHeight[x]&&(M=E.rowHeight[x],E.rowHeight[x]=O,M=E.rowHeight[x]-M),E.height+=M,E.rows[x].push(w)},C.prototype.getShortestRowIndex=function(E){for(var w=-1,x=Number.MAX_VALUE,D=0;Dx&&(w=D,x=E.rowWidth[D]);return w},C.prototype.canAddHorizontal=function(E,w,x){var D=this.getShortestRowIndex(E);if(D<0)return!0;var L=E.rowWidth[D];if(L+E.horizontalPadding+w<=E.width)return!0;var A=0;E.rowHeight[D]0&&(A=x+E.verticalPadding-E.rowHeight[D]);var N;E.width-L>=w+E.horizontalPadding?N=(E.height+A)/(L+w+E.horizontalPadding):N=(E.height+A)/E.width,A=x+E.verticalPadding;var O;return E.widthA&&w!=x){D.splice(-1,1),E.rows[x].push(L),E.rowWidth[w]=E.rowWidth[w]-A,E.rowWidth[x]=E.rowWidth[x]+A,E.width=E.rowWidth[instance.getLongestRowIndex(E)];for(var N=Number.MIN_VALUE,O=0;ON&&(N=D[O].height);w>0&&(N+=E.verticalPadding);var M=E.rowHeight[w]+E.rowHeight[x];E.rowHeight[w]=N,E.rowHeight[x]0)for(var z=L;z<=A;z++)B[0]+=this.grid[z][N-1].length+this.grid[z][N].length-1;if(A0)for(var z=N;z<=O;z++)B[3]+=this.grid[L-1][z].length+this.grid[L][z].length-1;for(var G=y.MAX_VALUE,F,U,Y=0;Y0){var O;O=T.getGraphManager().add(T.newGraph(),x),this.processChildrenList(O,w,T)}}},p.prototype.stop=function(){return this.stopped=!0,this};var y=function(m){m("layout","cose-bilkent",p)};typeof cytoscape<"u"&&y(cytoscape),a.exports=y}])})})(Yu);var qp=Yu.exports;const Wp=rl(qp);var fi=function(){var t=function(T,C,S,E){for(S=S||{},E=T.length;E--;S[T[E]]=C);return S},e=[1,4],r=[1,13],a=[1,12],n=[1,15],i=[1,16],s=[1,20],o=[1,19],u=[6,7,8],l=[1,26],f=[1,24],h=[1,25],d=[6,7,11],c=[1,6,13,15,16,19,22],v=[1,33],p=[1,34],g=[1,6,7,11,13,15,16,19,22],y={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(C,S,E,w,x,D,L){var A=D.length-1;switch(x){case 6:case 7:return w;case 8:w.getLogger().trace("Stop NL ");break;case 9:w.getLogger().trace("Stop EOF ");break;case 11:w.getLogger().trace("Stop NL2 ");break;case 12:w.getLogger().trace("Stop EOF2 ");break;case 15:w.getLogger().info("Node: ",D[A].id),w.addNode(D[A-1].length,D[A].id,D[A].descr,D[A].type);break;case 16:w.getLogger().trace("Icon: ",D[A]),w.decorateNode({icon:D[A]});break;case 17:case 21:w.decorateNode({class:D[A]});break;case 18:w.getLogger().trace("SPACELIST");break;case 19:w.getLogger().trace("Node: ",D[A].id),w.addNode(0,D[A].id,D[A].descr,D[A].type);break;case 20:w.decorateNode({icon:D[A]});break;case 25:w.getLogger().trace("node found ..",D[A-2]),this.$={id:D[A-1],descr:D[A-1],type:w.getType(D[A-2],D[A])};break;case 26:this.$={id:D[A],descr:D[A],type:w.nodeType.DEFAULT};break;case 27:w.getLogger().trace("node found ..",D[A-3]),this.$={id:D[A-3],descr:D[A-1],type:w.getType(D[A-2],D[A])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},{6:r,9:22,12:11,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},{6:l,7:f,10:23,11:h},t(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:o}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,23]),t(d,[2,24]),t(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:l,7:f,10:32,11:h},{1:[2,7],6:r,12:21,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},t(c,[2,14],{7:v,11:p}),t(g,[2,8]),t(g,[2,9]),t(g,[2,10]),t(d,[2,15]),t(d,[2,16]),t(d,[2,17]),{20:[1,35]},{21:[1,36]},t(c,[2,13],{7:v,11:p}),t(g,[2,11]),t(g,[2,12]),{21:[1,37]},t(d,[2,25]),t(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(C,S){if(S.recoverable)this.trace(C);else{var E=new Error(C);throw E.hash=S,E}},parse:function(C){var S=this,E=[0],w=[],x=[null],D=[],L=this.table,A="",N=0,O=0,M=2,R=1,k=D.slice.call(arguments,1),P=Object.create(this.lexer),B={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(B.yy[z]=this.yy[z]);P.setInput(C,B.yy),B.yy.lexer=P,B.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var G=P.yylloc;D.push(G);var F=P.options&&P.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var te;return te=w.pop()||P.lex()||R,typeof te!="number"&&(te instanceof Array&&(w=te,te=w.pop()),te=S.symbols_[te]||te),te}for(var Y,W,K,j,_={},V,H,Q,ne;;){if(W=E[E.length-1],this.defaultActions[W]?K=this.defaultActions[W]:((Y===null||typeof Y>"u")&&(Y=U()),K=L[W]&&L[W][Y]),typeof K>"u"||!K.length||!K[0]){var ce="";ne=[];for(V in L[W])this.terminals_[V]&&V>M&&ne.push("'"+this.terminals_[V]+"'");P.showPosition?ce="Parse error on line "+(N+1)+`: +`+P.showPosition()+` +Expecting `+ne.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":ce="Parse error on line "+(N+1)+": Unexpected "+(Y==R?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(ce,{text:P.match,token:this.terminals_[Y]||Y,line:P.yylineno,loc:G,expected:ne})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+Y);switch(K[0]){case 1:E.push(Y),x.push(P.yytext),D.push(P.yylloc),E.push(K[1]),Y=null,O=P.yyleng,A=P.yytext,N=P.yylineno,G=P.yylloc;break;case 2:if(H=this.productions_[K[1]][1],_.$=x[x.length-H],_._$={first_line:D[D.length-(H||1)].first_line,last_line:D[D.length-1].last_line,first_column:D[D.length-(H||1)].first_column,last_column:D[D.length-1].last_column},F&&(_._$.range=[D[D.length-(H||1)].range[0],D[D.length-1].range[1]]),j=this.performAction.apply(_,[A,O,N,B.yy,K[1],x,D].concat(k)),typeof j<"u")return j;H&&(E=E.slice(0,-1*H*2),x=x.slice(0,-1*H),D=D.slice(0,-1*H)),E.push(this.productions_[K[1]][0]),x.push(_.$),D.push(_._$),Q=L[E[E.length-2]][E[E.length-1]],E.push(Q);break;case 3:return!0}}return!0}},b=function(){var T={EOF:1,parseError:function(S,E){if(this.yy.parser)this.yy.parser.parseError(S,E);else throw new Error(S)},setInput:function(C,S){return this.yy=S||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var S=C.match(/(?:\r\n?|\n).*/g);return S?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},unput:function(C){var S=C.length,E=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-S),this.offset-=S;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===w.length?this.yylloc.first_column:0)+w[w.length-E.length].length-E[0].length:this.yylloc.first_column-S},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-S]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(C){this.unput(this.match.slice(C))},pastInput:function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var C=this.pastInput(),S=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+S+"^"},test_match:function(C,S){var E,w,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),w=C[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],E=this.performAction.call(this,this.yy,this,S,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var D in x)this[D]=x[D];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,S,E,w;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),D=0;DS[0].length)){if(S=E,w=D,this.options.backtrack_lexer){if(C=this.test_match(E,x[D]),C!==!1)return C;if(this._backtrack){S=!1;continue}else return!1}else if(!this.options.flex)break}return S?(C=this.test_match(S,x[w]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var S=this.next();return S||this.lex()},begin:function(S){this.conditionStack.push(S)},popState:function(){var S=this.conditionStack.length-1;return S>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(S){return S=this.conditionStack.length-1-Math.abs(S||0),S>=0?this.conditionStack[S]:"INITIAL"},pushState:function(S){this.begin(S)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(S,E,w,x){switch(w){case 0:return S.getLogger().trace("Found comment",E.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:S.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return S.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:S.getLogger().trace("end icon"),this.popState();break;case 10:return S.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return S.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return S.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return S.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:S.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return S.getLogger().trace("description:",E.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),S.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),S.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),S.getLogger().trace("node end ...",E.yytext),"NODE_DEND";case 30:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 35:return S.getLogger().trace("Long description:",E.yytext),20;case 36:return S.getLogger().trace("Long description:",E.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return T}();y.lexer=b;function m(){this.yy={}}return m.prototype=y,y.Parser=m,new m}();fi.parser=fi;const Kp=fi;let Nt=[],_u=0,Fi={};const Zp=()=>{Nt=[],_u=0,Fi={}},Qp=function(t){for(let e=Nt.length-1;e>=0;e--)if(Nt[e].levelNt.length>0?Nt[0]:null,jp=(t,e,r,a)=>{var n,i;Er.info("addNode",t,e,r,a);const s=ci();let o=((n=s.mindmap)==null?void 0:n.padding)??ja.mindmap.padding;switch(a){case _e.ROUNDED_RECT:case _e.RECT:case _e.HEXAGON:o*=2}const u={id:_u++,nodeId:en(e,s),level:t,descr:en(r,s),type:a,children:[],width:((i=s.mindmap)==null?void 0:i.maxNodeWidth)??ja.mindmap.maxNodeWidth,padding:o},l=Qp(t);if(l)l.children.push(u),Nt.push(u);else if(Nt.length===0)Nt.push(u);else throw new Error('There can be only one root. No parent could be found for ("'+u.descr+'")')},_e={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},ey=(t,e)=>{switch(Er.debug("In get type",t,e),t){case"[":return _e.RECT;case"(":return e===")"?_e.ROUNDED_RECT:_e.CLOUD;case"((":return _e.CIRCLE;case")":return _e.CLOUD;case"))":return _e.BANG;case"{{":return _e.HEXAGON;default:return _e.DEFAULT}},ty=(t,e)=>{Fi[t]=e},ry=t=>{if(!t)return;const e=ci(),r=Nt[Nt.length-1];t.icon&&(r.icon=en(t.icon,e)),t.class&&(r.class=en(t.class,e))},ay=t=>{switch(t){case _e.DEFAULT:return"no-border";case _e.RECT:return"rect";case _e.ROUNDED_RECT:return"rounded-rect";case _e.CIRCLE:return"circle";case _e.CLOUD:return"cloud";case _e.BANG:return"bang";case _e.HEXAGON:return"hexgon";default:return"no-border"}},ny=()=>Er,iy=t=>Fi[t],sy={clear:Zp,addNode:jp,getMindmap:Jp,nodeType:_e,getType:ey,setElementForId:ty,decorateNode:ry,type2Str:ay,getLogger:ny,getElementById:iy},oy=sy,uy=12,ly=function(t,e,r,a){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+a).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},fy=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},hy=function(t,e,r){const a=r.width,n=r.height,i=.15*a,s=.25*a,o=.35*a,u=.2*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${i},${i} 0 0,1 ${a*.25},${-1*a*.1} + a${o},${o} 1 0,1 ${a*.4},${-1*a*.1} + a${s},${s} 1 0,1 ${a*.35},${1*a*.2} + + a${i},${i} 1 0,1 ${a*.15},${1*n*.35} + a${u},${u} 1 0,1 ${-1*a*.15},${1*n*.65} + + a${s},${i} 1 0,1 ${-1*a*.25},${a*.15} + a${o},${o} 1 0,1 ${-1*a*.5},0 + a${i},${i} 1 0,1 ${-1*a*.25},${-1*a*.15} + + a${i},${i} 1 0,1 ${-1*a*.1},${-1*n*.35} + a${u},${u} 1 0,1 ${a*.1},${-1*n*.65} + + H0 V0 Z`)},cy=function(t,e,r){const a=r.width,n=r.height,i=.15*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${i},${i} 1 0,0 ${a*.25},${-1*n*.1} + a${i},${i} 1 0,0 ${a*.25},0 + a${i},${i} 1 0,0 ${a*.25},0 + a${i},${i} 1 0,0 ${a*.25},${1*n*.1} + + a${i},${i} 1 0,0 ${a*.15},${1*n*.33} + a${i*.8},${i*.8} 1 0,0 0,${1*n*.34} + a${i},${i} 1 0,0 ${-1*a*.15},${1*n*.33} + + a${i},${i} 1 0,0 ${-1*a*.25},${n*.15} + a${i},${i} 1 0,0 ${-1*a*.25},0 + a${i},${i} 1 0,0 ${-1*a*.25},0 + a${i},${i} 1 0,0 ${-1*a*.25},${-1*n*.15} + + a${i},${i} 1 0,0 ${-1*a*.1},${-1*n*.33} + a${i*.8},${i*.8} 1 0,0 0,${-1*n*.34} + a${i},${i} 1 0,0 ${a*.1},${-1*n*.33} + + H0 V0 Z`)},vy=function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)};function dy(t,e,r,a,n){return t.insert("polygon",":first-child").attr("points",a.map(function(i){return i.x+","+i.y}).join(" ")).attr("transform","translate("+(n.width-e)/2+", "+r+")")}const gy=function(t,e,r){const a=r.height,i=a/4,s=r.width-r.padding+2*i,o=[{x:i,y:0},{x:s-i,y:0},{x:s,y:-a/2},{x:s-i,y:-a},{x:i,y:-a},{x:0,y:-a/2}];dy(e,s,a,o,r)},py=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},yy=function(t,e,r,a,n){const i=n.htmlLabels,s=a%(uy-1),o=e.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),o.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);const l=o.append("g"),f=o.append("g"),h=r.descr.replace(/()/g,` +`);fl(f,h,{useHtmlLabels:i,width:r.width,classes:"mindmap-node-label"}),i||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const d=f.node().getBBox(),[c]=ll(n.fontSize);if(r.height=d.height+c*1.1*.5+r.padding,r.width=d.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,o.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;const v=r.height;r.height=Math.max(v,60);const p=Math.abs(r.height-v);o.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+p/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(p/2+r.padding/2)+")")}else if(i){const v=(r.width-d.width)/2,p=(r.height-d.height)/2;f.attr("transform","translate("+v+", "+p+")")}else{const v=r.width/2,p=r.padding/2;f.attr("transform","translate("+v+", "+p+")")}switch(r.type){case t.nodeType.DEFAULT:ly(t,l,r,s);break;case t.nodeType.ROUNDED_RECT:py(t,l,r);break;case t.nodeType.RECT:fy(t,l,r);break;case t.nodeType.CIRCLE:l.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),vy(t,l,r);break;case t.nodeType.CLOUD:hy(t,l,r);break;case t.nodeType.BANG:cy(t,l,r);break;case t.nodeType.HEXAGON:gy(t,l,r);break}return t.setElementForId(r.id,o),r.height},my=function(t,e){const r=t.getElementById(e.id),a=e.x||0,n=e.y||0;r.attr("transform","translate("+a+","+n+")")};nr.use(Wp);function Hu(t,e,r,a,n){yy(t,e,r,a,n),r.children&&r.children.forEach((i,s)=>{Hu(t,e,i,a<0?s:a,n)})}function by(t,e){e.edges().map((r,a)=>{const n=r.data();if(r[0]._private.bodyBounds){const i=r[0]._private.rscratch;Er.trace("Edge: ",a,n),t.insert("path").attr("d",`M ${i.startX},${i.startY} L ${i.midX},${i.midY} L${i.endX},${i.endY} `).attr("class","edge section-edge-"+n.section+" edge-depth-"+n.depth)}})}function Xu(t,e,r,a){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:a,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(n=>{Xu(n,e,r,a+1),e.add({group:"edges",data:{id:`${t.id}_${n.id}`,source:t.id,target:n.id,depth:a,section:n.section}})})}function Ey(t,e){return new Promise(r=>{const a=il("body").append("div").attr("id","cy").attr("style","display:none"),n=nr({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),Xu(t,n,e,0),n.nodes().forEach(function(i){i.layoutDimensions=()=>{const s=i.data();return{w:s.width,h:s.height}}}),n.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),n.ready(i=>{Er.info("Ready",i),r(n)})})}function wy(t,e){e.nodes().map((r,a)=>{const n=r.data();n.x=r.position().x,n.y=r.position().y,my(t,n);const i=t.getElementById(n.nodeId);Er.info("Id:",a,"Position: (",r.position().x,", ",r.position().y,")",n),i.attr("transform",`translate(${r.position().x-n.width/2}, ${r.position().y-n.height/2})`),i.attr("attr",`apa-${a})`)})}const xy=async(t,e,r,a)=>{var n,i;Er.debug(`Rendering mindmap diagram +`+t);const s=a.db,o=s.getMindmap();if(!o)return;const u=ci();u.htmlLabels=!1;const l=al(e),f=l.append("g");f.attr("class","mindmap-edges");const h=l.append("g");h.attr("class","mindmap-nodes"),Hu(s,h,o,-1,u);const d=await Ey(o,u);by(f,d),wy(s,d),nl(void 0,l,((n=u.mindmap)==null?void 0:n.padding)??ja.mindmap.padding,((i=u.mindmap)==null?void 0:i.useMaxWidth)??ja.mindmap.useMaxWidth)},Ty={draw:xy},Cy=t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Cy(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,Sy=Dy,Ny={db:oy,renderer:Ty,parser:Kp,styles:Sy};export{Ny as diagram}; diff --git a/assets/ordinal-Cboi1Yqb.js b/assets/ordinal-Cboi1Yqb.js new file mode 100644 index 00000000..de7dd9ea --- /dev/null +++ b/assets/ordinal-Cboi1Yqb.js @@ -0,0 +1 @@ +import{i as a}from"./init-Gi6I4Gst.js";class o extends Map{constructor(n,t=g){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),n!=null)for(const[r,s]of n)this.set(r,s)}get(n){return super.get(c(this,n))}has(n){return super.has(c(this,n))}set(n,t){return super.set(l(this,n),t)}delete(n){return super.delete(p(this,n))}}function c({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):t}function l({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):(e.set(r,t),t)}function p({_intern:e,_key:n},t){const r=n(t);return e.has(r)&&(t=e.get(r),e.delete(r)),t}function g(e){return e!==null&&typeof e=="object"?e.valueOf():e}const f=Symbol("implicit");function h(){var e=new o,n=[],t=[],r=f;function s(u){let i=e.get(u);if(i===void 0){if(r!==f)return r;e.set(u,i=n.push(u)-1)}return t[i%t.length]}return s.domain=function(u){if(!arguments.length)return n.slice();n=[],e=new o;for(const i of u)e.has(i)||e.set(i,n.push(i)-1);return s},s.range=function(u){return arguments.length?(t=Array.from(u),s):t.slice()},s.unknown=function(u){return arguments.length?(r=u,s):r},s.copy=function(){return h(n,t).unknown(r)},a.apply(s,arguments),s}export{h as o}; diff --git a/assets/path-CbwjOpE9.js b/assets/path-CbwjOpE9.js new file mode 100644 index 00000000..f55758f4 --- /dev/null +++ b/assets/path-CbwjOpE9.js @@ -0,0 +1 @@ +const c=Math.PI,x=2*c,u=1e-6,m=x-u;function E(e){this._+=e[0];for(let t=1,h=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return E;const h=10**t;return function(i){this._+=i[0];for(let s=1,n=i.length;su)if(!(Math.abs(o*p-l*_)>u)||!n)this._append`L${this._x1=t},${this._y1=h}`;else{let d=i-$,f=s-r,y=p*p+l*l,T=d*d+f*f,g=Math.sqrt(y),v=Math.sqrt(a),w=n*Math.tan((c-Math.acos((y+a-T)/(2*g*v)))/2),M=w/v,b=w/g;Math.abs(M-1)>u&&this._append`L${t+M*_},${h+M*o}`,this._append`A${n},${n},0,0,${+(o*d>_*f)},${this._x1=t+b*p},${this._y1=h+b*l}`}}arc(t,h,i,s,n,$){if(t=+t,h=+h,i=+i,$=!!$,i<0)throw new Error(`negative radius: ${i}`);let r=i*Math.cos(s),p=i*Math.sin(s),l=t+r,_=h+p,o=1^$,a=$?s-n:n-s;this._x1===null?this._append`M${l},${_}`:(Math.abs(this._x1-l)>u||Math.abs(this._y1-_)>u)&&this._append`L${l},${_}`,i&&(a<0&&(a=a%x+x),a>m?this._append`A${i},${i},0,1,${o},${t-r},${h-p}A${i},${i},0,1,${o},${this._x1=l},${this._y1=_}`:a>u&&this._append`A${i},${i},0,${+(a>=c)},${o},${this._x1=t+i*Math.cos(n)},${this._y1=h+i*Math.sin(n)}`)}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function P(e){return function(){return e}}function q(e){let t=3;return e.digits=function(h){if(!arguments.length)return t;if(h==null)t=null;else{const i=Math.floor(h);if(!(i>=0))throw new RangeError(`invalid digits: ${h}`);t=i}return e},()=>new L(t)}export{P as c,q as w}; diff --git a/assets/photoswipe.esm-GXRgw7eJ.js b/assets/photoswipe.esm-GXRgw7eJ.js new file mode 100644 index 00000000..2fd7cfd3 --- /dev/null +++ b/assets/photoswipe.esm-GXRgw7eJ.js @@ -0,0 +1,4 @@ +/*! + * PhotoSwipe 5.4.4 - https://photoswipe.com + * (c) 2024 Dmytro Semenov + */function f(r,t,i){const e=document.createElement(t);return r&&(e.className=r),i&&i.appendChild(e),e}function p(r,t){return r.x=t.x,r.y=t.y,t.id!==void 0&&(r.id=t.id),r}function M(r){r.x=Math.round(r.x),r.y=Math.round(r.y)}function A(r,t){const i=Math.abs(r.x-t.x),e=Math.abs(r.y-t.y);return Math.sqrt(i*i+e*e)}function x(r,t){return r.x===t.x&&r.y===t.y}function I(r,t,i){return Math.min(Math.max(r,t),i)}function b(r,t,i){let e=`translate3d(${r}px,${t||0}px,0)`;return i!==void 0&&(e+=` scale3d(${i},${i},1)`),e}function y(r,t,i,e){r.style.transform=b(t,i,e)}const $="cubic-bezier(.4,0,.22,1)";function R(r,t,i,e){r.style.transition=t?`${t} ${i}ms ${e||$}`:"none"}function L(r,t,i){r.style.width=typeof t=="number"?`${t}px`:t,r.style.height=typeof i=="number"?`${i}px`:i}function U(r){R(r)}function q(r){return"decode"in r?r.decode().catch(()=>{}):r.complete?Promise.resolve(r):new Promise((t,i)=>{r.onload=()=>t(r),r.onerror=i})}const _={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function G(r){return"button"in r&&r.button===1||r.ctrlKey||r.metaKey||r.altKey||r.shiftKey}function K(r,t,i=document){let e=[];if(r instanceof Element)e=[r];else if(r instanceof NodeList||Array.isArray(r))e=Array.from(r);else{const s=typeof r=="string"?r:t;s&&(e=Array.from(i.querySelectorAll(s)))}return e}function C(){return!!(navigator.vendor&&navigator.vendor.match(/apple/i))}let F=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>{F=!0}}))}catch{}class X{constructor(){this._pool=[]}add(t,i,e,s){this._toggleListener(t,i,e,s)}remove(t,i,e,s){this._toggleListener(t,i,e,s,!0)}removeAll(){this._pool.forEach(t=>{this._toggleListener(t.target,t.type,t.listener,t.passive,!0,!0)}),this._pool=[]}_toggleListener(t,i,e,s,n,o){if(!t)return;const a=n?"removeEventListener":"addEventListener";i.split(" ").forEach(l=>{if(l){o||(n?this._pool=this._pool.filter(d=>d.type!==l||d.listener!==e||d.target!==t):this._pool.push({target:t,type:l,listener:e,passive:s}));const c=F?{passive:s||!1}:!1;t[a](l,e,c)}})}}function B(r,t){if(r.getViewportSizeFn){const i=r.getViewportSizeFn(r,t);if(i)return i}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function S(r,t,i,e,s){let n=0;if(t.paddingFn)n=t.paddingFn(i,e,s)[r];else if(t.padding)n=t.padding[r];else{const o="padding"+r[0].toUpperCase()+r.slice(1);t[o]&&(n=t[o])}return Number(n)||0}function N(r,t,i,e){return{x:t.x-S("left",r,t,i,e)-S("right",r,t,i,e),y:t.y-S("top",r,t,i,e)-S("bottom",r,t,i,e)}}class Y{constructor(t){this.slide=t,this.currZoomLevel=1,this.center={x:0,y:0},this.max={x:0,y:0},this.min={x:0,y:0}}update(t){this.currZoomLevel=t,this.slide.width?(this._updateAxis("x"),this._updateAxis("y"),this.slide.pswp.dispatch("calcBounds",{slide:this.slide})):this.reset()}_updateAxis(t){const{pswp:i}=this.slide,e=this.slide[t==="x"?"width":"height"]*this.currZoomLevel,n=S(t==="x"?"left":"top",i.options,i.viewportSize,this.slide.data,this.slide.index),o=this.slide.panAreaSize[t];this.center[t]=Math.round((o-e)/2)+n,this.max[t]=e>o?Math.round(o-e)+n:this.center[t],this.min[t]=e>o?n:this.center[t]}reset(){this.center.x=0,this.center.y=0,this.max.x=0,this.max.y=0,this.min.x=0,this.min.y=0}correctPan(t,i){return I(i,this.max[t],this.min[t])}}const T=4e3;class H{constructor(t,i,e,s){this.pswp=s,this.options=t,this.itemData=i,this.index=e,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,e){const s={x:t,y:i};this.elementSize=s,this.panAreaSize=e;const n=e.x/s.x,o=e.y/s.y;this.fit=Math.min(1,no?n:o),this.vFill=Math.min(1,o),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const i=t+"ZoomLevel",e=this.options[i];if(e)return typeof e=="function"?e(this):e==="fill"?this.fill:e==="fit"?this.fit:Number(e)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,this.fit*3),this.elementSize&&t*this.elementSize.x>T&&(t=T/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,this.fit*4)}}class j{constructor(t,i,e){this.data=t,this.index=i,this.pswp=e,this.isActive=i===e.currIndex,this.currentResolution=0,this.panAreaSize={x:0,y:0},this.pan={x:0,y:0},this.isFirstSlide=this.isActive&&!e.opener.isOpen,this.zoomLevels=new H(e.options,t,i,e),this.pswp.dispatch("gettingData",{slide:this,data:this.data,index:i}),this.content=this.pswp.contentLoader.getContentBySlide(this),this.container=f("pswp__zoom-wrap","div"),this.holderElement=null,this.currZoomLevel=1,this.width=this.content.width,this.height=this.content.height,this.heavyAppended=!1,this.bounds=new Y(this),this.prevDisplayedWidth=-1,this.prevDisplayedHeight=-1,this.pswp.dispatch("slideInit",{slide:this})}setIsActive(t){t&&!this.isActive?this.activate():!t&&this.isActive&&this.deactivate()}append(t){this.holderElement=t,this.container.style.transformOrigin="0 0",this.data&&(this.calculateSize(),this.load(),this.updateContentSize(),this.appendHeavy(),this.holderElement.appendChild(this.container),this.zoomAndPanToInitial(),this.pswp.dispatch("firstZoomPan",{slide:this}),this.applyCurrentZoomPan(),this.pswp.dispatch("afterSetContent",{slide:this}),this.isActive&&this.activate())}load(){this.content.load(!1),this.pswp.dispatch("slideLoad",{slide:this})}appendHeavy(){const{pswp:t}=this;this.heavyAppended||!t.opener.isOpen||t.mainScroll.isShifted()||!this.isActive&&!!0||this.pswp.dispatch("appendHeavy",{slide:this}).defaultPrevented||(this.heavyAppended=!0,this.content.append(),this.pswp.dispatch("appendHeavyContent",{slide:this}))}activate(){this.isActive=!0,this.appendHeavy(),this.content.activate(),this.pswp.dispatch("slideActivate",{slide:this})}deactivate(){this.isActive=!1,this.content.deactivate(),this.currZoomLevel!==this.zoomLevels.initial&&this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize(),this.pswp.dispatch("slideDeactivate",{slide:this})}destroy(){this.content.hasSlide=!1,this.content.remove(),this.container.remove(),this.pswp.dispatch("slideDestroy",{slide:this})}resize(){this.currZoomLevel===this.zoomLevels.initial||!this.isActive?(this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize()):(this.calculateSize(),this.bounds.update(this.currZoomLevel),this.panTo(this.pan.x,this.pan.y))}updateContentSize(t){const i=this.currentResolution||this.zoomLevels.initial;if(!i)return;const e=Math.round(this.width*i)||this.pswp.viewportSize.x,s=Math.round(this.height*i)||this.pswp.viewportSize.y;!this.sizeChanged(e,s)&&!t||this.content.setDisplayedSize(e,s)}sizeChanged(t,i){return t!==this.prevDisplayedWidth||i!==this.prevDisplayedHeight?(this.prevDisplayedWidth=t,this.prevDisplayedHeight=i,!0):!1}getPlaceholderElement(){var t;return(t=this.content.placeholder)===null||t===void 0?void 0:t.element}zoomTo(t,i,e,s){const{pswp:n}=this;if(!this.isZoomable()||n.mainScroll.isShifted())return;n.dispatch("beforeZoomTo",{destZoomLevel:t,centerPoint:i,transitionDuration:e}),n.animations.stopAllPan();const o=this.currZoomLevel;s||(t=I(t,this.zoomLevels.min,this.zoomLevels.max)),this.setZoomLevel(t),this.pan.x=this.calculateZoomToPanOffset("x",i,o),this.pan.y=this.calculateZoomToPanOffset("y",i,o),M(this.pan);const a=()=>{this._setResolution(t),this.applyCurrentZoomPan()};e?n.animations.startTransition({isPan:!0,name:"zoomTo",target:this.container,transform:this.getCurrentTransform(),onComplete:a,duration:e,easing:n.options.easing}):a()}toggleZoom(t){this.zoomTo(this.currZoomLevel===this.zoomLevels.initial?this.zoomLevels.secondary:this.zoomLevels.initial,t,this.pswp.options.zoomAnimationDuration)}setZoomLevel(t){this.currZoomLevel=t,this.bounds.update(this.currZoomLevel)}calculateZoomToPanOffset(t,i,e){if(this.bounds.max[t]-this.bounds.min[t]===0)return this.bounds.center[t];i||(i=this.pswp.getViewportCenterPoint()),e||(e=this.zoomLevels.initial);const n=this.currZoomLevel/e;return this.bounds.correctPan(t,(this.pan[t]-i[t])*n+i[t])}panTo(t,i){this.pan.x=this.bounds.correctPan("x",t),this.pan.y=this.bounds.correctPan("y",i),this.applyCurrentZoomPan()}isPannable(){return!!this.width&&this.currZoomLevel>this.zoomLevels.fit}isZoomable(){return!!this.width&&this.content.isZoomable()}applyCurrentZoomPan(){this._applyZoomTransform(this.pan.x,this.pan.y,this.currZoomLevel),this===this.pswp.currSlide&&this.pswp.dispatch("zoomPanUpdate",{slide:this})}zoomAndPanToInitial(){this.currZoomLevel=this.zoomLevels.initial,this.bounds.update(this.currZoomLevel),p(this.pan,this.bounds.center),this.pswp.dispatch("initialZoomPan",{slide:this})}_applyZoomTransform(t,i,e){e/=this.currentResolution||this.zoomLevels.initial,y(this.container,t,i,e)}calculateSize(){const{pswp:t}=this;p(this.panAreaSize,N(t.options,t.viewportSize,this.data,this.index)),this.zoomLevels.update(this.width,this.height,this.panAreaSize),t.dispatch("calcSlideSize",{slide:this})}getCurrentTransform(){const t=this.currZoomLevel/(this.currentResolution||this.zoomLevels.initial);return b(this.pan.x,this.pan.y,t)}_setResolution(t){t!==this.currentResolution&&(this.currentResolution=t,this.updateContentSize(),this.pswp.dispatch("resolutionChanged"))}}const Q=.35,J=.6,z=.4,E=.5;function tt(r,t){return r*t/(1-t)}class it{constructor(t){this.gestures=t,this.pswp=t.pswp,this.startPan={x:0,y:0}}start(){this.pswp.currSlide&&p(this.startPan,this.pswp.currSlide.pan),this.pswp.animations.stopAll()}change(){const{p1:t,prevP1:i,dragAxis:e}=this.gestures,{currSlide:s}=this.pswp;if(e==="y"&&this.pswp.options.closeOnVerticalDrag&&s&&s.currZoomLevel<=s.zoomLevels.fit&&!this.gestures.isMultitouch){const n=s.pan.y+(t.y-i.y);if(!this.pswp.dispatch("verticalDrag",{panY:n}).defaultPrevented){this._setPanWithFriction("y",n,J);const o=1-Math.abs(this._getVerticalDragRatio(s.pan.y));this.pswp.applyBgOpacity(o),s.applyCurrentZoomPan()}}else this._panOrMoveMainScroll("x")||(this._panOrMoveMainScroll("y"),s&&(M(s.pan),s.applyCurrentZoomPan()))}end(){const{velocity:t}=this.gestures,{mainScroll:i,currSlide:e}=this.pswp;let s=0;if(this.pswp.animations.stopAll(),i.isShifted()){const o=(i.x-i.getCurrSlideX())/this.pswp.viewportSize.x;t.x<-E&&o<0||t.x<.1&&o<-.5?(s=1,t.x=Math.min(t.x,0)):(t.x>E&&o>0||t.x>-.1&&o>.5)&&(s=-1,t.x=Math.max(t.x,0)),i.moveIndexBy(s,!0,t.x)}e&&e.currZoomLevel>e.zoomLevels.max||this.gestures.isMultitouch?this.gestures.zoomLevels.correctZoomPan(!0):(this._finishPanGestureForAxis("x"),this._finishPanGestureForAxis("y"))}_finishPanGestureForAxis(t){const{velocity:i}=this.gestures,{currSlide:e}=this.pswp;if(!e)return;const{pan:s,bounds:n}=e,o=s[t],a=this.pswp.bgOpacity<1&&t==="y",l=o+tt(i[t],.995);if(a){const v=this._getVerticalDragRatio(o),w=this._getVerticalDragRatio(l);if(v<0&&w<-z||v>0&&w>z){this.pswp.close();return}}const c=n.correctPan(t,l);if(o===c)return;const d=c===l?1:.82,u=this.pswp.bgOpacity,m=c-o;this.pswp.animations.startSpring({name:"panGesture"+t,isPan:!0,start:o,end:c,velocity:i[t],dampingRatio:d,onUpdate:v=>{if(a&&this.pswp.bgOpacity<1){const w=1-(c-v)/m;this.pswp.applyBgOpacity(I(u+(1-u)*w,0,1))}s[t]=Math.floor(v),e.applyCurrentZoomPan()}})}_panOrMoveMainScroll(t){const{p1:i,dragAxis:e,prevP1:s,isMultitouch:n}=this.gestures,{currSlide:o,mainScroll:a}=this.pswp,h=i[t]-s[t],l=a.x+h;if(!h||!o)return!1;if(t==="x"&&!o.isPannable()&&!n)return a.moveTo(l,!0),!0;const{bounds:c}=o,d=o.pan[t]+h;if(this.pswp.options.allowPanToNext&&e==="x"&&t==="x"&&!n){const u=a.getCurrSlideX(),m=a.x-u,v=h>0,w=!v;if(d>c.min[t]&&v){if(c.min[t]<=this.startPan[t])return a.moveTo(l,!0),!0;this._setPanWithFriction(t,d)}else if(d0)return a.moveTo(Math.max(l,u),!0),!0;if(m<0)return a.moveTo(Math.min(l,u),!0),!0}else this._setPanWithFriction(t,d)}else t==="y"?!a.isShifted()&&c.min.y!==c.max.y&&this._setPanWithFriction(t,d):this._setPanWithFriction(t,d);return!1}_getVerticalDragRatio(t){var i,e;return(t-((i=(e=this.pswp.currSlide)===null||e===void 0?void 0:e.bounds.center.y)!==null&&i!==void 0?i:0))/(this.pswp.viewportSize.y/3)}_setPanWithFriction(t,i,e){const{currSlide:s}=this.pswp;if(!s)return;const{pan:n,bounds:o}=s;if(o.correctPan(t,i)!==i||e){const h=Math.round(i-n[t]);n[t]+=h*(e||Q)}else n[t]=i}}const et=.05,st=.15;function O(r,t,i){return r.x=(t.x+i.x)/2,r.y=(t.y+i.y)/2,r}class nt{constructor(t){this.gestures=t,this._startPan={x:0,y:0},this._startZoomPoint={x:0,y:0},this._zoomPoint={x:0,y:0},this._wasOverFitZoomLevel=!1,this._startZoomLevel=1}start(){const{currSlide:t}=this.gestures.pswp;t&&(this._startZoomLevel=t.currZoomLevel,p(this._startPan,t.pan)),this.gestures.pswp.animations.stopAllPan(),this._wasOverFitZoomLevel=!1}change(){const{p1:t,startP1:i,p2:e,startP2:s,pswp:n}=this.gestures,{currSlide:o}=n;if(!o)return;const a=o.zoomLevels.min,h=o.zoomLevels.max;if(!o.isZoomable()||n.mainScroll.isShifted())return;O(this._startZoomPoint,i,s),O(this._zoomPoint,t,e);let l=1/A(i,s)*A(t,e)*this._startZoomLevel;if(l>o.zoomLevels.initial+o.zoomLevels.initial/15&&(this._wasOverFitZoomLevel=!0),lh&&(l=h+(l-h)*et);o.pan.x=this._calculatePanForZoomLevel("x",l),o.pan.y=this._calculatePanForZoomLevel("y",l),o.setZoomLevel(l),o.applyCurrentZoomPan()}end(){const{pswp:t}=this.gestures,{currSlide:i}=t;(!i||i.currZoomLevele.zoomLevels.max?n=e.zoomLevels.max:(o=!1,n=s);const a=i.bgOpacity,h=i.bgOpacity<1,l=p({x:0,y:0},e.pan);let c=p({x:0,y:0},l);t&&(this._zoomPoint.x=0,this._zoomPoint.y=0,this._startZoomPoint.x=0,this._startZoomPoint.y=0,this._startZoomLevel=s,p(this._startPan,l)),o&&(c={x:this._calculatePanForZoomLevel("x",n),y:this._calculatePanForZoomLevel("y",n)}),e.setZoomLevel(n),c={x:e.bounds.correctPan("x",c.x),y:e.bounds.correctPan("y",c.y)},e.setZoomLevel(s);const d=!x(c,l);if(!d&&!o&&!h){e._setResolution(n),e.applyCurrentZoomPan();return}i.animations.stopAllPan(),i.animations.startSpring({isPan:!0,start:0,end:1e3,velocity:0,dampingRatio:1,naturalFrequency:40,onUpdate:u=>{if(u/=1e3,d||o){if(d&&(e.pan.x=l.x+(c.x-l.x)*u,e.pan.y=l.y+(c.y-l.y)*u),o){const m=s+(n-s)*u;e.setZoomLevel(m)}e.applyCurrentZoomPan()}h&&i.bgOpacity<1&&i.applyBgOpacity(I(a+(1-a)*u,0,1))},onComplete:()=>{e._setResolution(n),e.applyCurrentZoomPan()}})}}function Z(r){return!!r.target.closest(".pswp__container")}class ot{constructor(t){this.gestures=t}click(t,i){const e=i.target.classList,s=e.contains("pswp__img"),n=e.contains("pswp__item")||e.contains("pswp__zoom-wrap");s?this._doClickOrTapAction("imageClick",t,i):n&&this._doClickOrTapAction("bgClick",t,i)}tap(t,i){Z(i)&&this._doClickOrTapAction("tap",t,i)}doubleTap(t,i){Z(i)&&this._doClickOrTapAction("doubleTap",t,i)}_doClickOrTapAction(t,i,e){var s;const{pswp:n}=this.gestures,{currSlide:o}=n,a=t+"Action",h=n.options[a];if(!n.dispatch(a,{point:i,originalEvent:e}).defaultPrevented){if(typeof h=="function"){h.call(n,i,e);return}switch(h){case"close":case"next":n[h]();break;case"zoom":o==null||o.toggleZoom(i);break;case"zoom-or-close":o!=null&&o.isZoomable()&&o.zoomLevels.secondary!==o.zoomLevels.initial?o.toggleZoom(i):n.options.clickToCloseNonZoomable&&n.close();break;case"toggle-controls":(s=this.gestures.pswp.element)===null||s===void 0||s.classList.toggle("pswp--ui-visible");break}}}}const rt=10,at=300,ht=25;class lt{constructor(t){this.pswp=t,this.dragAxis=null,this.p1={x:0,y:0},this.p2={x:0,y:0},this.prevP1={x:0,y:0},this.prevP2={x:0,y:0},this.startP1={x:0,y:0},this.startP2={x:0,y:0},this.velocity={x:0,y:0},this._lastStartP1={x:0,y:0},this._intervalP1={x:0,y:0},this._numActivePoints=0,this._ongoingPointers=[],this._touchEventEnabled="ontouchstart"in window,this._pointerEventEnabled=!!window.PointerEvent,this.supportsTouch=this._touchEventEnabled||this._pointerEventEnabled&&navigator.maxTouchPoints>1,this._numActivePoints=0,this._intervalTime=0,this._velocityCalculated=!1,this.isMultitouch=!1,this.isDragging=!1,this.isZooming=!1,this.raf=null,this._tapTimer=null,this.supportsTouch||(t.options.allowPanToNext=!1),this.drag=new it(this),this.zoomLevels=new nt(this),this.tapHandler=new ot(this),t.on("bindEvents",()=>{t.events.add(t.scrollWrap,"click",this._onClick.bind(this)),this._pointerEventEnabled?this._bindEvents("pointer","down","up","cancel"):this._touchEventEnabled?(this._bindEvents("touch","start","end","cancel"),t.scrollWrap&&(t.scrollWrap.ontouchmove=()=>{},t.scrollWrap.ontouchend=()=>{})):this._bindEvents("mouse","down","up")})}_bindEvents(t,i,e,s){const{pswp:n}=this,{events:o}=n,a=s?t+s:"";o.add(n.scrollWrap,t+i,this.onPointerDown.bind(this)),o.add(window,t+"move",this.onPointerMove.bind(this)),o.add(window,t+e,this.onPointerUp.bind(this)),a&&o.add(n.scrollWrap,a,this.onPointerUp.bind(this))}onPointerDown(t){const i=t.type==="mousedown"||t.pointerType==="mouse";if(i&&t.button>0)return;const{pswp:e}=this;if(!e.opener.isOpen){t.preventDefault();return}e.dispatch("pointerDown",{originalEvent:t}).defaultPrevented||(i&&(e.mouseDetected(),this._preventPointerEventBehaviour(t,"down")),e.animations.stopAll(),this._updatePoints(t,"down"),this._numActivePoints===1&&(this.dragAxis=null,p(this.startP1,this.p1)),this._numActivePoints>1?(this._clearTapTimer(),this.isMultitouch=!0):this.isMultitouch=!1)}onPointerMove(t){this._preventPointerEventBehaviour(t,"move"),this._numActivePoints&&(this._updatePoints(t,"move"),!this.pswp.dispatch("pointerMove",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===1&&!this.isDragging?(this.dragAxis||this._calculateDragDirection(),this.dragAxis&&!this.isDragging&&(this.isZooming&&(this.isZooming=!1,this.zoomLevels.end()),this.isDragging=!0,this._clearTapTimer(),this._updateStartPoints(),this._intervalTime=Date.now(),this._velocityCalculated=!1,p(this._intervalP1,this.p1),this.velocity.x=0,this.velocity.y=0,this.drag.start(),this._rafStopLoop(),this._rafRenderLoop())):this._numActivePoints>1&&!this.isZooming&&(this._finishDrag(),this.isZooming=!0,this._updateStartPoints(),this.zoomLevels.start(),this._rafStopLoop(),this._rafRenderLoop())))}_finishDrag(){this.isDragging&&(this.isDragging=!1,this._velocityCalculated||this._updateVelocity(!0),this.drag.end(),this.dragAxis=null)}onPointerUp(t){this._numActivePoints&&(this._updatePoints(t,"up"),!this.pswp.dispatch("pointerUp",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===0&&(this._rafStopLoop(),this.isDragging?this._finishDrag():!this.isZooming&&!this.isMultitouch&&this._finishTap(t)),this._numActivePoints<2&&this.isZooming&&(this.isZooming=!1,this.zoomLevels.end(),this._numActivePoints===1&&(this.dragAxis=null,this._updateStartPoints()))))}_rafRenderLoop(){(this.isDragging||this.isZooming)&&(this._updateVelocity(),this.isDragging?x(this.p1,this.prevP1)||this.drag.change():(!x(this.p1,this.prevP1)||!x(this.p2,this.prevP2))&&this.zoomLevels.change(),this._updatePrevPoints(),this.raf=requestAnimationFrame(this._rafRenderLoop.bind(this)))}_updateVelocity(t){const i=Date.now(),e=i-this._intervalTime;e<50&&!t||(this.velocity.x=this._getVelocity("x",e),this.velocity.y=this._getVelocity("y",e),this._intervalTime=i,p(this._intervalP1,this.p1),this._velocityCalculated=!0)}_finishTap(t){const{mainScroll:i}=this.pswp;if(i.isShifted()){i.moveIndexBy(0,!0);return}if(t.type.indexOf("cancel")>0)return;if(t.type==="mouseup"||t.pointerType==="mouse"){this.tapHandler.click(this.startP1,t);return}const e=this.pswp.options.doubleTapAction?at:0;this._tapTimer?(this._clearTapTimer(),A(this._lastStartP1,this.startP1){this.tapHandler.tap(this.startP1,t),this._clearTapTimer()},e))}_clearTapTimer(){this._tapTimer&&(clearTimeout(this._tapTimer),this._tapTimer=null)}_getVelocity(t,i){const e=this.p1[t]-this._intervalP1[t];return Math.abs(e)>1&&i>5?e/i:0}_rafStopLoop(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null)}_preventPointerEventBehaviour(t,i){this.pswp.applyFilters("preventPointerEvent",!0,t,i)&&t.preventDefault()}_updatePoints(t,i){if(this._pointerEventEnabled){const e=t,s=this._ongoingPointers.findIndex(n=>n.id===e.pointerId);i==="up"&&s>-1?this._ongoingPointers.splice(s,1):i==="down"&&s===-1?this._ongoingPointers.push(this._convertEventPosToPoint(e,{x:0,y:0})):s>-1&&this._convertEventPosToPoint(e,this._ongoingPointers[s]),this._numActivePoints=this._ongoingPointers.length,this._numActivePoints>0&&p(this.p1,this._ongoingPointers[0]),this._numActivePoints>1&&p(this.p2,this._ongoingPointers[1])}else{const e=t;this._numActivePoints=0,e.type.indexOf("touch")>-1?e.touches&&e.touches.length>0&&(this._convertEventPosToPoint(e.touches[0],this.p1),this._numActivePoints++,e.touches.length>1&&(this._convertEventPosToPoint(e.touches[1],this.p2),this._numActivePoints++)):(this._convertEventPosToPoint(t,this.p1),i==="up"?this._numActivePoints=0:this._numActivePoints++)}}_updatePrevPoints(){p(this.prevP1,this.p1),p(this.prevP2,this.p2)}_updateStartPoints(){p(this.startP1,this.p1),p(this.startP2,this.p2),this._updatePrevPoints()}_calculateDragDirection(){if(this.pswp.mainScroll.isShifted())this.dragAxis="x";else{const t=Math.abs(this.p1.x-this.startP1.x)-Math.abs(this.p1.y-this.startP1.y);if(t!==0){const i=t>0?"x":"y";Math.abs(this.p1[i]-this.startP1[i])>=rt&&(this.dragAxis=i)}}}_convertEventPosToPoint(t,i){return i.x=t.pageX-this.pswp.offset.x,i.y=t.pageY-this.pswp.offset.y,"pointerId"in t?i.id=t.pointerId:t.identifier!==void 0&&(i.id=t.identifier),i}_onClick(t){this.pswp.mainScroll.isShifted()&&(t.preventDefault(),t.stopPropagation())}}const ct=.35;class dt{constructor(t){this.pswp=t,this.x=0,this.slideWidth=0,this._currPositionIndex=0,this._prevPositionIndex=0,this._containerShiftIndex=-1,this.itemHolders=[]}resize(t){const{pswp:i}=this,e=Math.round(i.viewportSize.x+i.viewportSize.x*i.options.spacing),s=e!==this.slideWidth;s&&(this.slideWidth=e,this.moveTo(this.getCurrSlideX())),this.itemHolders.forEach((n,o)=>{s&&y(n.el,(o+this._containerShiftIndex)*this.slideWidth),t&&n.slide&&n.slide.resize()})}resetPosition(){this._currPositionIndex=0,this._prevPositionIndex=0,this.slideWidth=0,this._containerShiftIndex=-1}appendHolders(){this.itemHolders=[];for(let t=0;t<3;t++){const i=f("pswp__item","div",this.pswp.container);i.setAttribute("role","group"),i.setAttribute("aria-roledescription","slide"),i.setAttribute("aria-hidden","true"),i.style.display=t===1?"block":"none",this.itemHolders.push({el:i})}}canBeSwiped(){return this.pswp.getNumItems()>1}moveIndexBy(t,i,e){const{pswp:s}=this;let n=s.potentialIndex+t;const o=s.getNumItems();if(s.canLoop()){n=s.getLoopedIndex(n);const h=(t+o)%o;h<=o/2?t=h:t=h-o}else n<0?n=0:n>=o&&(n=o-1),t=n-s.potentialIndex;s.potentialIndex=n,this._currPositionIndex-=t,s.animations.stopMainScroll();const a=this.getCurrSlideX();if(!i)this.moveTo(a),this.updateCurrItem();else{s.animations.startSpring({isMainScroll:!0,start:this.x,end:a,velocity:e||0,naturalFrequency:30,dampingRatio:1,onUpdate:l=>{this.moveTo(l)},onComplete:()=>{this.updateCurrItem(),s.appendHeavy()}});let h=s.potentialIndex-s.currIndex;if(s.canLoop()){const l=(h+o)%o;l<=o/2?h=l:h=l-o}Math.abs(h)>1&&this.updateCurrItem()}return!!t}getCurrSlideX(){return this.slideWidth*this._currPositionIndex}isShifted(){return this.x!==this.getCurrSlideX()}updateCurrItem(){var t;const{pswp:i}=this,e=this._prevPositionIndex-this._currPositionIndex;if(!e)return;this._prevPositionIndex=this._currPositionIndex,i.currIndex=i.potentialIndex;let s=Math.abs(e),n;s>=3&&(this._containerShiftIndex+=e+(e>0?-3:3),s=3,this.itemHolders.forEach(o=>{var a;(a=o.slide)===null||a===void 0||a.destroy(),o.slide=void 0}));for(let o=0;o0?(n=this.itemHolders.shift(),n&&(this.itemHolders[2]=n,this._containerShiftIndex++,y(n.el,(this._containerShiftIndex+2)*this.slideWidth),i.setContent(n,i.currIndex-s+o+2))):(n=this.itemHolders.pop(),n&&(this.itemHolders.unshift(n),this._containerShiftIndex--,y(n.el,this._containerShiftIndex*this.slideWidth),i.setContent(n,i.currIndex+s-o-2)));Math.abs(this._containerShiftIndex)>50&&!this.isShifted()&&(this.resetPosition(),this.resize()),i.animations.stopAllPan(),this.itemHolders.forEach((o,a)=>{o.slide&&o.slide.setIsActive(a===1)}),i.currSlide=(t=this.itemHolders[1])===null||t===void 0?void 0:t.slide,i.contentLoader.updateLazy(e),i.currSlide&&i.currSlide.applyCurrentZoomPan(),i.dispatch("change")}moveTo(t,i){if(!this.pswp.canLoop()&&i){let e=(this.slideWidth*this._currPositionIndex-t)/this.slideWidth;e+=this.pswp.currIndex;const s=Math.round(t-this.x);(e<0&&s>0||e>=this.pswp.getNumItems()-1&&s<0)&&(t=this.x+s*ct)}this.x=t,this.pswp.container&&y(this.pswp.container,t),this.pswp.dispatch("moveMainScroll",{x:t,dragging:i??!1})}}const pt={Escape:27,z:90,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Tab:9},g=(r,t)=>t?r:pt[r];class ut{constructor(t){this.pswp=t,this._wasFocused=!1,t.on("bindEvents",()=>{t.options.trapFocus&&(t.options.initialPointerPos||this._focusRoot(),t.events.add(document,"focusin",this._onFocusIn.bind(this))),t.events.add(document,"keydown",this._onKeyDown.bind(this))});const i=document.activeElement;t.on("destroy",()=>{t.options.returnFocus&&i&&this._wasFocused&&i.focus()})}_focusRoot(){!this._wasFocused&&this.pswp.element&&(this.pswp.element.focus(),this._wasFocused=!0)}_onKeyDown(t){const{pswp:i}=this;if(i.dispatch("keydown",{originalEvent:t}).defaultPrevented||G(t))return;let e,s,n=!1;const o="key"in t;switch(o?t.key:t.keyCode){case g("Escape",o):i.options.escKey&&(e="close");break;case g("z",o):e="toggleZoom";break;case g("ArrowLeft",o):s="x";break;case g("ArrowUp",o):s="y";break;case g("ArrowRight",o):s="x",n=!0;break;case g("ArrowDown",o):n=!0,s="y";break;case g("Tab",o):this._focusRoot();break}if(s){t.preventDefault();const{currSlide:a}=i;i.options.arrowKeys&&s==="x"&&i.getNumItems()>1?e=n?"next":"prev":a&&a.currZoomLevel>a.zoomLevels.fit&&(a.pan[s]+=n?-80:80,a.panTo(a.pan.x,a.pan.y))}e&&(t.preventDefault(),i[e]())}_onFocusIn(t){const{template:i}=this.pswp;i&&document!==t.target&&i!==t.target&&!i.contains(t.target)&&i.focus()}}const mt="cubic-bezier(.4,0,.22,1)";class ft{constructor(t){var i;this.props=t;const{target:e,onComplete:s,transform:n,onFinish:o=()=>{},duration:a=333,easing:h=mt}=t;this.onFinish=o;const l=n?"transform":"opacity",c=(i=t[l])!==null&&i!==void 0?i:"";this._target=e,this._onComplete=s,this._finished=!1,this._onTransitionEnd=this._onTransitionEnd.bind(this),this._helperTimeout=setTimeout(()=>{R(e,l,a,h),this._helperTimeout=setTimeout(()=>{e.addEventListener("transitionend",this._onTransitionEnd,!1),e.addEventListener("transitioncancel",this._onTransitionEnd,!1),this._helperTimeout=setTimeout(()=>{this._finalizeAnimation()},a+500),e.style[l]=c},30)},0)}_onTransitionEnd(t){t.target===this._target&&this._finalizeAnimation()}_finalizeAnimation(){this._finished||(this._finished=!0,this.onFinish(),this._onComplete&&this._onComplete())}destroy(){this._helperTimeout&&clearTimeout(this._helperTimeout),U(this._target),this._target.removeEventListener("transitionend",this._onTransitionEnd,!1),this._target.removeEventListener("transitioncancel",this._onTransitionEnd,!1),this._finished||this._finalizeAnimation()}}const _t=12,vt=.75;class gt{constructor(t,i,e){this.velocity=t*1e3,this._dampingRatio=i||vt,this._naturalFrequency=e||_t,this._dampedFrequency=this._naturalFrequency,this._dampingRatio<1&&(this._dampedFrequency*=Math.sqrt(1-this._dampingRatio*this._dampingRatio))}easeFrame(t,i){let e=0,s;i/=1e3;const n=Math.E**(-this._dampingRatio*this._naturalFrequency*i);if(this._dampingRatio===1)s=this.velocity+this._naturalFrequency*t,e=(t+s*i)*n,this.velocity=e*-this._naturalFrequency+s*n;else if(this._dampingRatio<1){s=1/this._dampedFrequency*(this._dampingRatio*this._naturalFrequency*t+this.velocity);const o=Math.cos(this._dampedFrequency*i),a=Math.sin(this._dampedFrequency*i);e=n*(t*o+s*a),this.velocity=e*-this._naturalFrequency*this._dampingRatio+n*(-this._dampedFrequency*t*a+this._dampedFrequency*s*o)}return e}}class yt{constructor(t){this.props=t,this._raf=0;const{start:i,end:e,velocity:s,onUpdate:n,onComplete:o,onFinish:a=()=>{},dampingRatio:h,naturalFrequency:l}=t;this.onFinish=a;const c=new gt(s,h,l);let d=Date.now(),u=i-e;const m=()=>{this._raf&&(u=c.easeFrame(u,Date.now()-d),Math.abs(u)<1&&Math.abs(c.velocity)<50?(n(e),o&&o(),this.onFinish()):(d=Date.now(),n(u+e),this._raf=requestAnimationFrame(m)))};this._raf=requestAnimationFrame(m)}destroy(){this._raf>=0&&cancelAnimationFrame(this._raf),this._raf=0}}class wt{constructor(){this.activeAnimations=[]}startSpring(t){this._start(t,!0)}startTransition(t){this._start(t)}_start(t,i){const e=i?new yt(t):new ft(t);return this.activeAnimations.push(e),e.onFinish=()=>this.stop(e),e}stop(t){t.destroy();const i=this.activeAnimations.indexOf(t);i>-1&&this.activeAnimations.splice(i,1)}stopAll(){this.activeAnimations.forEach(t=>{t.destroy()}),this.activeAnimations=[]}stopAllPan(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isPan?(t.destroy(),!1):!0)}stopMainScroll(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isMainScroll?(t.destroy(),!1):!0)}isPanRunning(){return this.activeAnimations.some(t=>t.props.isPan)}}class Pt{constructor(t){this.pswp=t,t.events.add(t.element,"wheel",this._onWheel.bind(this))}_onWheel(t){t.preventDefault();const{currSlide:i}=this.pswp;let{deltaX:e,deltaY:s}=t;if(i&&!this.pswp.dispatch("wheel",{originalEvent:t}).defaultPrevented)if(t.ctrlKey||this.pswp.options.wheelToZoom){if(i.isZoomable()){let n=-s;t.deltaMode===1?n*=.05:n*=t.deltaMode?1:.002,n=2**n;const o=i.currZoomLevel*n;i.zoomTo(o,{x:t.clientX,y:t.clientY})}}else i.isPannable()&&(t.deltaMode===1&&(e*=18,s*=18),i.panTo(i.pan.x-e,i.pan.y-s))}}function St(r){if(typeof r=="string")return r;if(!r||!r.isCustomSVG)return"";const t=r;let i='",i}class xt{constructor(t,i){var e;const s=i.name||i.className;let n=i.html;if(t.options[s]===!1)return;typeof t.options[s+"SVG"]=="string"&&(n=t.options[s+"SVG"]),t.dispatch("uiElementCreate",{data:i});let o="";i.isButton?(o+="pswp__button ",o+=i.className||`pswp__button--${i.name}`):o+=i.className||`pswp__${i.name}`;let a=i.isButton?i.tagName||"button":i.tagName||"div";a=a.toLowerCase();const h=f(o,a);if(i.isButton){a==="button"&&(h.type="button");let{title:d}=i;const{ariaLabel:u}=i;typeof t.options[s+"Title"]=="string"&&(d=t.options[s+"Title"]),d&&(h.title=d);const m=u||d;m&&h.setAttribute("aria-label",m)}h.innerHTML=St(n),i.onInit&&i.onInit(h,t),i.onClick&&(h.onclick=d=>{typeof i.onClick=="string"?t[i.onClick]():typeof i.onClick=="function"&&i.onClick(d,h,t)});const l=i.appendTo||"bar";let c=t.element;l==="bar"?(t.topBar||(t.topBar=f("pswp__top-bar pswp__hide-on-close","div",t.scrollWrap)),c=t.topBar):(h.classList.add("pswp__hide-on-close"),l==="wrapper"&&(c=t.scrollWrap)),(e=c)===null||e===void 0||e.appendChild(t.applyFilters("uiElement",h,i))}}function k(r,t,i){r.classList.add("pswp__button--arrow"),r.setAttribute("aria-controls","pswp__items"),t.on("change",()=>{t.options.loop||(i?r.disabled=!(t.currIndex0))})}const bt={name:"arrowPrev",className:"pswp__button--arrow--prev",title:"Previous",order:10,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"prev",onInit:k},It={name:"arrowNext",className:"pswp__button--arrow--next",title:"Next",order:11,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"next",onInit:(r,t)=>{k(r,t,!0)}},At={name:"close",title:"Close",order:20,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-close"},onClick:"close"},Lt={name:"zoom",title:"Zoom",order:10,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-zoom"},onClick:"toggleZoom"},Ct={name:"preloader",appendTo:"bar",order:7,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-loading"},onInit:(r,t)=>{let i,e=null;const s=(a,h)=>{r.classList.toggle("pswp__preloader--"+a,h)},n=a=>{i!==a&&(i=a,s("active",a))},o=()=>{var a;if(!((a=t.currSlide)!==null&&a!==void 0&&a.content.isLoading())){n(!1),e&&(clearTimeout(e),e=null);return}e||(e=setTimeout(()=>{var h;n(!!(!((h=t.currSlide)===null||h===void 0)&&h.content.isLoading())),e=null},t.options.preloaderDelay))};t.on("change",o),t.on("loadComplete",a=>{t.currSlide===a.slide&&o()}),t.ui&&(t.ui.updatePreloaderVisibility=o)}},Tt={name:"counter",order:5,onInit:(r,t)=>{t.on("change",()=>{r.innerText=t.currIndex+1+t.options.indexIndicatorSep+t.getNumItems()})}};function D(r,t){r.classList.toggle("pswp--zoomed-in",t)}class zt{constructor(t){this.pswp=t,this.isRegistered=!1,this.uiElementsData=[],this.items=[],this.updatePreloaderVisibility=()=>{},this._lastUpdatedZoomLevel=void 0}init(){const{pswp:t}=this;this.isRegistered=!1,this.uiElementsData=[At,bt,It,Lt,Ct,Tt],t.dispatch("uiRegister"),this.uiElementsData.sort((i,e)=>(i.order||0)-(e.order||0)),this.items=[],this.isRegistered=!0,this.uiElementsData.forEach(i=>{this.registerElement(i)}),t.on("change",()=>{var i;(i=t.element)===null||i===void 0||i.classList.toggle("pswp--one-slide",t.getNumItems()===1)}),t.on("zoomPanUpdate",()=>this._onZoomPanUpdate())}registerElement(t){this.isRegistered?this.items.push(new xt(this.pswp,t)):this.uiElementsData.push(t)}_onZoomPanUpdate(){const{template:t,currSlide:i,options:e}=this.pswp;if(this.pswp.opener.isClosing||!t||!i)return;let{currZoomLevel:s}=i;if(this.pswp.opener.isOpen||(s=i.zoomLevels.initial),s===this._lastUpdatedZoomLevel)return;this._lastUpdatedZoomLevel=s;const n=i.zoomLevels.initial-i.zoomLevels.secondary;if(Math.abs(n)<.01||!i.isZoomable()){D(t,!1),t.classList.remove("pswp--zoom-allowed");return}t.classList.add("pswp--zoom-allowed");const o=s===i.zoomLevels.initial?i.zoomLevels.secondary:i.zoomLevels.initial;D(t,o<=s),(e.imageClickAction==="zoom"||e.imageClickAction==="zoom-or-close")&&t.classList.add("pswp--click-to-zoom")}}function Et(r){const t=r.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width}}function Ot(r,t,i){const e=r.getBoundingClientRect(),s=e.width/t,n=e.height/i,o=s>n?s:n,a=(e.width-t*o)/2,h=(e.height-i*o)/2,l={x:e.left+a,y:e.top+h,w:t*o};return l.innerRect={w:e.width,h:e.height,x:a,y:h},l}function Zt(r,t,i){const e=i.dispatch("thumbBounds",{index:r,itemData:t,instance:i});if(e.thumbBounds)return e.thumbBounds;const{element:s}=t;let n,o;if(s&&i.options.thumbSelector!==!1){const a=i.options.thumbSelector||"img";o=s.matches(a)?s:s.querySelector(a)}return o=i.applyFilters("thumbEl",o,t,r),o&&(t.thumbCropped?n=Ot(o,t.width||t.w||0,t.height||t.h||0):n=Et(o)),i.applyFilters("thumbBounds",n,t,r)}class Dt{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class Mt{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,i,e=100){var s,n,o;this._filters[t]||(this._filters[t]=[]),(s=this._filters[t])===null||s===void 0||s.push({fn:i,priority:e}),(n=this._filters[t])===null||n===void 0||n.sort((a,h)=>a.priority-h.priority),(o=this.pswp)===null||o===void 0||o.addFilter(t,i,e)}removeFilter(t,i){this._filters[t]&&(this._filters[t]=this._filters[t].filter(e=>e.fn!==i)),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var e;return(e=this._filters[t])===null||e===void 0||e.forEach(s=>{i[0]=s.fn.apply(this,i)}),i[0]}on(t,i){var e,s;this._listeners[t]||(this._listeners[t]=[]),(e=this._listeners[t])===null||e===void 0||e.push(i),(s=this.pswp)===null||s===void 0||s.on(t,i)}off(t,i){var e;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter(s=>i!==s)),(e=this.pswp)===null||e===void 0||e.off(t,i)}dispatch(t,i){var e;if(this.pswp)return this.pswp.dispatch(t,i);const s=new Dt(t,i);return(e=this._listeners[t])===null||e===void 0||e.forEach(n=>{n.call(this,s)}),s}}class Rt{constructor(t,i){if(this.element=f("pswp__img pswp__img--placeholder",t?"img":"div",i),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,i){this.element&&(this.element.tagName==="IMG"?(L(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=b(0,0,t/250)):L(this.element,t,i))}destroy(){var t;(t=this.element)!==null&&t!==void 0&&t.parentNode&&this.element.remove(),this.element=null}}class Ft{constructor(t,i,e){this.instance=i,this.data=t,this.index=e,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=_.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout(()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)},1e3)}load(t,i){if(this.slide&&this.usePlaceholder())if(this.placeholder){const e=this.placeholder.element;e&&!e.parentElement&&this.slide.container.prepend(e)}else{const e=this.instance.applyFilters("placeholderSrc",this.data.msrc&&this.slide.isFirstSlide?this.data.msrc:!1,this);this.placeholder=new Rt(e,this.slide.container)}this.element&&!i||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=f("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=f("pswp__content","div"),this.element.innerHTML=this.data.html||""),i&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,e;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const s=this.element;this.updateSrcsetSizes(),this.data.srcset&&(s.srcset=this.data.srcset),s.src=(i=this.data.src)!==null&&i!==void 0?i:"",s.alt=(e=this.data.alt)!==null&&e!==void 0?e:"",this.state=_.LOADING,s.complete?this.onLoaded():(s.onload=()=>{this.onLoaded()},s.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=_.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder())}onError(){this.state=_.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===_.LOADING,this)}isError(){return this.state===_.ERROR}isImageContent(){return this.type==="image"}setDisplayedSize(t,i){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,i),!this.instance.dispatch("contentResize",{content:this,width:t,height:i}).defaultPrevented&&(L(this.element,t,i),this.isImageContent()&&!this.isError()))){const e=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=i,e?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:i,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==_.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,i;let e=f("pswp__error-msg","div");e.innerText=(t=(i=this.instance.options)===null||i===void 0?void 0:i.errorMsg)!==null&&t!==void 0?t:"",e=this.instance.applyFilters("contentErrorElement",e,this),this.element=f("pswp__content pswp__error-msg-container","div"),this.element.appendChild(e),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===_.ERROR){this.displayError();return}if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||C())?(this.isDecoding=!0,this.element.decode().catch(()=>{}).finally(()=>{this.isDecoding=!1,this.appendImage()})):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!C()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder()))}}const Bt=5;function W(r,t,i){const e=t.createContentFromData(r,i);let s;const{options:n}=t;if(n){s=new H(n,r,-1);let o;t.pswp?o=t.pswp.viewportSize:o=B(n,t);const a=N(n,o,r,i);s.update(e.width,e.height,a)}return e.lazyLoad(),s&&e.setDisplayedSize(Math.ceil(e.width*s.initial),Math.ceil(e.height*s.initial)),e}function Nt(r,t){const i=t.getItemData(r);if(!t.dispatch("lazyLoadSlide",{index:r,itemData:i}).defaultPrevented)return W(i,t,r)}class Ht{constructor(t){this.pswp=t,this.limit=Math.max(t.options.preload[0]+t.options.preload[1]+1,Bt),this._cachedItems=[]}updateLazy(t){const{pswp:i}=this;if(i.dispatch("lazyLoad").defaultPrevented)return;const{preload:e}=i.options,s=t===void 0?!0:t>=0;let n;for(n=0;n<=e[1];n++)this.loadSlideByIndex(i.currIndex+(s?n:-n));for(n=1;n<=e[0];n++)this.loadSlideByIndex(i.currIndex+(s?-n:n))}loadSlideByIndex(t){const i=this.pswp.getLoopedIndex(t);let e=this.getContentByIndex(i);e||(e=Nt(i,this.pswp),e&&this.addToCache(e))}getContentBySlide(t){let i=this.getContentByIndex(t.index);return i||(i=this.pswp.createContentFromData(t.data,t.index),this.addToCache(i)),i.setSlide(t),i}addToCache(t){if(this.removeByIndex(t.index),this._cachedItems.push(t),this._cachedItems.length>this.limit){const i=this._cachedItems.findIndex(e=>!e.isAttached&&!e.hasSlide);i!==-1&&this._cachedItems.splice(i,1)[0].destroy()}}removeByIndex(t){const i=this._cachedItems.findIndex(e=>e.index===t);i!==-1&&this._cachedItems.splice(i,1)}getContentByIndex(t){return this._cachedItems.find(i=>i.index===t)}destroy(){this._cachedItems.forEach(t=>t.destroy()),this._cachedItems=[]}}class kt extends Mt{getNumItems(){var t;let i=0;const e=(t=this.options)===null||t===void 0?void 0:t.dataSource;e&&"length"in e?i=e.length:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),e.items&&(i=e.items.length));const s=this.dispatch("numItems",{dataSource:e,numItems:i});return this.applyFilters("numItems",s.numItems,e)}createContentFromData(t,i){return new Ft(t,this,i)}getItemData(t){var i;const e=(i=this.options)===null||i===void 0?void 0:i.dataSource;let s={};Array.isArray(e)?s=e[t]:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),s=e.items[t]);let n=s;n instanceof Element&&(n=this._domElementToItemData(n));const o=this.dispatch("itemData",{itemData:n||{},index:t});return this.applyFilters("itemData",o.itemData,t)}_getGalleryDOMElements(t){var i,e;return(i=this.options)!==null&&i!==void 0&&i.children||(e=this.options)!==null&&e!==void 0&&e.childSelector?K(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const i={element:t},e=t.tagName==="A"?t:t.querySelector("a");if(e){i.src=e.dataset.pswpSrc||e.href,e.dataset.pswpSrcset&&(i.srcset=e.dataset.pswpSrcset),i.width=e.dataset.pswpWidth?parseInt(e.dataset.pswpWidth,10):0,i.height=e.dataset.pswpHeight?parseInt(e.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,e.dataset.pswpType&&(i.type=e.dataset.pswpType);const n=t.querySelector("img");if(n){var s;i.msrc=n.currentSrc||n.src,i.alt=(s=n.getAttribute("alt"))!==null&&s!==void 0?s:""}(e.dataset.pswpCropped||e.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,e)}lazyLoadData(t,i){return W(t,this,i)}}const P=.003;class Wt{constructor(t){this.pswp=t,this.isClosed=!0,this.isOpen=!1,this.isClosing=!1,this.isOpening=!1,this._duration=void 0,this._useAnimation=!1,this._croppedZoom=!1,this._animateRootOpacity=!1,this._animateBgOpacity=!1,this._placeholder=void 0,this._opacityElement=void 0,this._cropContainer1=void 0,this._cropContainer2=void 0,this._thumbBounds=void 0,this._prepareOpen=this._prepareOpen.bind(this),t.on("firstZoomPan",this._prepareOpen)}open(){this._prepareOpen(),this._start()}close(){if(this.isClosed||this.isClosing||this.isOpening)return;const t=this.pswp.currSlide;this.isOpen=!1,this.isOpening=!1,this.isClosing=!0,this._duration=this.pswp.options.hideAnimationDuration,t&&t.currZoomLevel*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps(),setTimeout(()=>{this._start()},this._croppedZoom?30:0)}_prepareOpen(){if(this.pswp.off("firstZoomPan",this._prepareOpen),!this.isOpening){const t=this.pswp.currSlide;this.isOpening=!0,this.isClosing=!1,this._duration=this.pswp.options.showAnimationDuration,t&&t.zoomLevels.initial*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps()}}_applyStartProps(){const{pswp:t}=this,i=this.pswp.currSlide,{options:e}=t;if(e.showHideAnimationType==="fade"?(e.showHideOpacity=!0,this._thumbBounds=void 0):e.showHideAnimationType==="none"?(e.showHideOpacity=!1,this._duration=0,this._thumbBounds=void 0):this.isOpening&&t._initialThumbBounds?this._thumbBounds=t._initialThumbBounds:this._thumbBounds=this.pswp.getThumbBounds(),this._placeholder=i==null?void 0:i.getPlaceholderElement(),t.animations.stopAll(),this._useAnimation=!!(this._duration&&this._duration>50),this._animateZoom=!!this._thumbBounds&&(i==null?void 0:i.content.usePlaceholder())&&(!this.isClosing||!t.mainScroll.isShifted()),!this._animateZoom)this._animateRootOpacity=!0,this.isOpening&&i&&(i.zoomAndPanToInitial(),i.applyCurrentZoomPan());else{var s;this._animateRootOpacity=(s=e.showHideOpacity)!==null&&s!==void 0?s:!1}if(this._animateBgOpacity=!this._animateRootOpacity&&this.pswp.options.bgOpacity>P,this._opacityElement=this._animateRootOpacity?t.element:t.bg,!this._useAnimation){this._duration=0,this._animateZoom=!1,this._animateBgOpacity=!1,this._animateRootOpacity=!0,this.isOpening&&(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1));return}if(this._animateZoom&&this._thumbBounds&&this._thumbBounds.innerRect){var n;this._croppedZoom=!0,this._cropContainer1=this.pswp.container,this._cropContainer2=(n=this.pswp.currSlide)===null||n===void 0?void 0:n.holderElement,t.container&&(t.container.style.overflow="hidden",t.container.style.width=t.viewportSize.x+"px")}else this._croppedZoom=!1;this.isOpening?(this._animateRootOpacity?(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1)):(this._animateBgOpacity&&t.bg&&(t.bg.style.opacity=String(P)),t.element&&(t.element.style.opacity="1")),this._animateZoom&&(this._setClosedStateZoomPan(),this._placeholder&&(this._placeholder.style.willChange="transform",this._placeholder.style.opacity=String(P)))):this.isClosing&&(t.mainScroll.itemHolders[0]&&(t.mainScroll.itemHolders[0].el.style.display="none"),t.mainScroll.itemHolders[2]&&(t.mainScroll.itemHolders[2].el.style.display="none"),this._croppedZoom&&t.mainScroll.x!==0&&(t.mainScroll.resetPosition(),t.mainScroll.resize()))}_start(){this.isOpening&&this._useAnimation&&this._placeholder&&this._placeholder.tagName==="IMG"?new Promise(t=>{let i=!1,e=!0;q(this._placeholder).finally(()=>{i=!0,e||t(!0)}),setTimeout(()=>{e=!1,i&&t(!0)},50),setTimeout(t,250)}).finally(()=>this._initiate()):this._initiate()}_initiate(){var t,i;(t=this.pswp.element)===null||t===void 0||t.style.setProperty("--pswp-transition-duration",this._duration+"ms"),this.pswp.dispatch(this.isOpening?"openingAnimationStart":"closingAnimationStart"),this.pswp.dispatch("initialZoom"+(this.isOpening?"In":"Out")),(i=this.pswp.element)===null||i===void 0||i.classList.toggle("pswp--ui-visible",this.isOpening),this.isOpening?(this._placeholder&&(this._placeholder.style.opacity="1"),this._animateToOpenState()):this.isClosing&&this._animateToClosedState(),this._useAnimation||this._onAnimationComplete()}_onAnimationComplete(){const{pswp:t}=this;if(this.isOpen=this.isOpening,this.isClosed=this.isClosing,this.isOpening=!1,this.isClosing=!1,t.dispatch(this.isOpen?"openingAnimationEnd":"closingAnimationEnd"),t.dispatch("initialZoom"+(this.isOpen?"InEnd":"OutEnd")),this.isClosed)t.destroy();else if(this.isOpen){var i;this._animateZoom&&t.container&&(t.container.style.overflow="visible",t.container.style.width="100%"),(i=t.currSlide)===null||i===void 0||i.applyCurrentZoomPan()}}_animateToOpenState(){const{pswp:t}=this;this._animateZoom&&(this._croppedZoom&&this._cropContainer1&&this._cropContainer2&&(this._animateTo(this._cropContainer1,"transform","translate3d(0,0,0)"),this._animateTo(this._cropContainer2,"transform","none")),t.currSlide&&(t.currSlide.zoomAndPanToInitial(),this._animateTo(t.currSlide.container,"transform",t.currSlide.getCurrentTransform()))),this._animateBgOpacity&&t.bg&&this._animateTo(t.bg,"opacity",String(t.options.bgOpacity)),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","1")}_animateToClosedState(){const{pswp:t}=this;this._animateZoom&&this._setClosedStateZoomPan(!0),this._animateBgOpacity&&t.bgOpacity>.01&&t.bg&&this._animateTo(t.bg,"opacity","0"),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","0")}_setClosedStateZoomPan(t){if(!this._thumbBounds)return;const{pswp:i}=this,{innerRect:e}=this._thumbBounds,{currSlide:s,viewportSize:n}=i;if(this._croppedZoom&&e&&this._cropContainer1&&this._cropContainer2){const o=-n.x+(this._thumbBounds.x-e.x)+e.w,a=-n.y+(this._thumbBounds.y-e.y)+e.h,h=n.x-e.w,l=n.y-e.h;t?(this._animateTo(this._cropContainer1,"transform",b(o,a)),this._animateTo(this._cropContainer2,"transform",b(h,l))):(y(this._cropContainer1,o,a),y(this._cropContainer2,h,l))}s&&(p(s.pan,e||this._thumbBounds),s.currZoomLevel=this._thumbBounds.w/s.width,t?this._animateTo(s.container,"transform",s.getCurrentTransform()):s.applyCurrentZoomPan())}_animateTo(t,i,e){if(!this._duration){t.style[i]=e;return}const{animations:s}=this.pswp,n={duration:this._duration,easing:this.pswp.options.easing,onComplete:()=>{s.activeAnimations.length||this._onAnimationComplete()},target:t};n[i]=e,s.startTransition(n)}}const Vt={allowPanToNext:!0,spacing:.1,loop:!0,pinchToClose:!0,closeOnVerticalDrag:!0,hideAnimationDuration:333,showAnimationDuration:333,zoomAnimationDuration:333,escKey:!0,arrowKeys:!0,trapFocus:!0,returnFocus:!0,maxWidthToAnimate:4e3,clickToCloseNonZoomable:!0,imageClickAction:"zoom-or-close",bgClickAction:"close",tapAction:"toggle-controls",doubleTapAction:"zoom",indexIndicatorSep:" / ",preloaderDelay:2e3,bgOpacity:.8,index:0,errorMsg:"The image cannot be loaded",preload:[1,2],easing:"cubic-bezier(.4,0,.22,1)"};class $t extends kt{constructor(t){super(),this.options=this._prepareOptions(t||{}),this.offset={x:0,y:0},this._prevViewportSize={x:0,y:0},this.viewportSize={x:0,y:0},this.bgOpacity=1,this.currIndex=0,this.potentialIndex=0,this.isOpen=!1,this.isDestroying=!1,this.hasMouse=!1,this._initialItemData={},this._initialThumbBounds=void 0,this.topBar=void 0,this.element=void 0,this.template=void 0,this.container=void 0,this.scrollWrap=void 0,this.currSlide=void 0,this.events=new X,this.animations=new wt,this.mainScroll=new dt(this),this.gestures=new lt(this),this.opener=new Wt(this),this.keyboard=new ut(this),this.contentLoader=new Ht(this)}init(){if(this.isOpen||this.isDestroying)return!1;this.isOpen=!0,this.dispatch("init"),this.dispatch("beforeOpen"),this._createMainStructure();let t="pswp--open";return this.gestures.supportsTouch&&(t+=" pswp--touch"),this.options.mainClass&&(t+=" "+this.options.mainClass),this.element&&(this.element.className+=" "+t),this.currIndex=this.options.index||0,this.potentialIndex=this.currIndex,this.dispatch("firstUpdate"),this.scrollWheel=new Pt(this),(Number.isNaN(this.currIndex)||this.currIndex<0||this.currIndex>=this.getNumItems())&&(this.currIndex=0),this.gestures.supportsTouch||this.mouseDetected(),this.updateSize(),this.offset.y=window.pageYOffset,this._initialItemData=this.getItemData(this.currIndex),this.dispatch("gettingData",{index:this.currIndex,data:this._initialItemData,slide:void 0}),this._initialThumbBounds=this.getThumbBounds(),this.dispatch("initialLayout"),this.on("openingAnimationEnd",()=>{const{itemHolders:i}=this.mainScroll;i[0]&&(i[0].el.style.display="block",this.setContent(i[0],this.currIndex-1)),i[2]&&(i[2].el.style.display="block",this.setContent(i[2],this.currIndex+1)),this.appendHeavy(),this.contentLoader.updateLazy(),this.events.add(window,"resize",this._handlePageResize.bind(this)),this.events.add(window,"scroll",this._updatePageScrollOffset.bind(this)),this.dispatch("bindEvents")}),this.mainScroll.itemHolders[1]&&this.setContent(this.mainScroll.itemHolders[1],this.currIndex),this.dispatch("change"),this.opener.open(),this.dispatch("afterInit"),!0}getLoopedIndex(t){const i=this.getNumItems();return this.options.loop&&(t>i-1&&(t-=i),t<0&&(t+=i)),I(t,0,i-1)}appendHeavy(){this.mainScroll.itemHolders.forEach(t=>{var i;(i=t.slide)===null||i===void 0||i.appendHeavy()})}goTo(t){this.mainScroll.moveIndexBy(this.getLoopedIndex(t)-this.potentialIndex)}next(){this.goTo(this.potentialIndex+1)}prev(){this.goTo(this.potentialIndex-1)}zoomTo(...t){var i;(i=this.currSlide)===null||i===void 0||i.zoomTo(...t)}toggleZoom(){var t;(t=this.currSlide)===null||t===void 0||t.toggleZoom()}close(){!this.opener.isOpen||this.isDestroying||(this.isDestroying=!0,this.dispatch("close"),this.events.removeAll(),this.opener.close())}destroy(){var t;if(!this.isDestroying){this.options.showHideAnimationType="none",this.close();return}this.dispatch("destroy"),this._listeners={},this.scrollWrap&&(this.scrollWrap.ontouchmove=null,this.scrollWrap.ontouchend=null),(t=this.element)===null||t===void 0||t.remove(),this.mainScroll.itemHolders.forEach(i=>{var e;(e=i.slide)===null||e===void 0||e.destroy()}),this.contentLoader.destroy(),this.events.removeAll()}refreshSlideContent(t){this.contentLoader.removeByIndex(t),this.mainScroll.itemHolders.forEach((i,e)=>{var s,n;let o=((s=(n=this.currSlide)===null||n===void 0?void 0:n.index)!==null&&s!==void 0?s:0)-1+e;if(this.canLoop()&&(o=this.getLoopedIndex(o)),o===t&&(this.setContent(i,t,!0),e===1)){var a;this.currSlide=i.slide,(a=i.slide)===null||a===void 0||a.setIsActive(!0)}}),this.dispatch("change")}setContent(t,i,e){if(this.canLoop()&&(i=this.getLoopedIndex(i)),t.slide){if(t.slide.index===i&&!e)return;t.slide.destroy(),t.slide=void 0}if(!this.canLoop()&&(i<0||i>=this.getNumItems()))return;const s=this.getItemData(i);t.slide=new j(s,i,this),i===this.currIndex&&(this.currSlide=t.slide),t.slide.append(t.el)}getViewportCenterPoint(){return{x:this.viewportSize.x/2,y:this.viewportSize.y/2}}updateSize(t){if(this.isDestroying)return;const i=B(this.options,this);!t&&x(i,this._prevViewportSize)||(p(this._prevViewportSize,i),this.dispatch("beforeResize"),p(this.viewportSize,this._prevViewportSize),this._updatePageScrollOffset(),this.dispatch("viewportSize"),this.mainScroll.resize(this.opener.isOpen),!this.hasMouse&&window.matchMedia("(any-hover: hover)").matches&&this.mouseDetected(),this.dispatch("resize"))}applyBgOpacity(t){this.bgOpacity=Math.max(t,0),this.bg&&(this.bg.style.opacity=String(this.bgOpacity*this.options.bgOpacity))}mouseDetected(){if(!this.hasMouse){var t;this.hasMouse=!0,(t=this.element)===null||t===void 0||t.classList.add("pswp--has_mouse")}}_handlePageResize(){this.updateSize(),/iPhone|iPad|iPod/i.test(window.navigator.userAgent)&&setTimeout(()=>{this.updateSize()},500)}_updatePageScrollOffset(){this.setScrollOffset(0,window.pageYOffset)}setScrollOffset(t,i){this.offset.x=t,this.offset.y=i,this.dispatch("updateScrollOffset")}_createMainStructure(){this.element=f("pswp","div"),this.element.setAttribute("tabindex","-1"),this.element.setAttribute("role","dialog"),this.template=this.element,this.bg=f("pswp__bg","div",this.element),this.scrollWrap=f("pswp__scroll-wrap","section",this.element),this.container=f("pswp__container","div",this.scrollWrap),this.scrollWrap.setAttribute("aria-roledescription","carousel"),this.container.setAttribute("aria-live","off"),this.container.setAttribute("id","pswp__items"),this.mainScroll.appendHolders(),this.ui=new zt(this),this.ui.init(),(this.options.appendToEl||document.body).appendChild(this.element)}getThumbBounds(){return Zt(this.currIndex,this.currSlide?this.currSlide.data:this._initialItemData,this)}canLoop(){return this.options.loop&&this.getNumItems()>2}_prepareOptions(t){return window.matchMedia("(prefers-reduced-motion), (update: slow)").matches&&(t.showHideAnimationType="none",t.zoomAnimationDuration=0),{...Vt,...t}}}export{$t as default}; diff --git a/assets/pieDiagram-bb1d19e5-BQhQYyps.js b/assets/pieDiagram-bb1d19e5-BQhQYyps.js new file mode 100644 index 00000000..00ce880e --- /dev/null +++ b/assets/pieDiagram-bb1d19e5-BQhQYyps.js @@ -0,0 +1,35 @@ +import{aK as q,aL as at,C as lt,D as ot,s as ct,g as ht,b as ut,a as yt,E as ft,d as pt,c as et,l as it,aM as gt,aJ as dt,aN as mt,i as _t}from"./mermaid.core-Bc1j4tiv.js";import{a as tt}from"./arc-BDtf7cdN.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import{a as kt}from"./array-BKyUJesY.js";import{c as F}from"./path-CbwjOpE9.js";import"./app-Ca-A-iaw.js";import"./init-Gi6I4Gst.js";function vt(e,u){return ue?1:u>=e?0:NaN}function bt(e){return e}function St(){var e=bt,u=vt,$=null,p=F(0),g=F(q),E=F(0);function y(a){var l,d=(a=kt(a)).length,m,I,T=0,_=new Array(d),v=new Array(d),c=+p.apply(this,arguments),A=Math.min(q,Math.max(-q,g.apply(this,arguments)-c)),O,w=Math.min(Math.abs(A)/d,E.apply(this,arguments)),b=w*(A<0?-1:1),t;for(l=0;l0&&(T+=t);for(u!=null?_.sort(function(i,n){return u(v[i],v[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=T?(A-d*b)/T:0;l0?t*I:0)+b,v[m]={data:a[m],index:l,value:t,startAngle:c,endAngle:O,padAngle:w};return v}return y.value=function(a){return arguments.length?(e=typeof a=="function"?a:F(+a),y):e},y.sortValues=function(a){return arguments.length?(u=a,$=null,y):u},y.sort=function(a){return arguments.length?($=a,u=null,y):$},y.startAngle=function(a){return arguments.length?(p=typeof a=="function"?a:F(+a),y):p},y.endAngle=function(a){return arguments.length?(g=typeof a=="function"?a:F(+a),y):g},y.padAngle=function(a){return arguments.length?(E=typeof a=="function"?a:F(+a),y):E},y}var H=function(){var e=function(b,t,i,n){for(i=i||{},n=b.length;n--;i[b[n]]=t);return i},u=[1,3],$=[1,4],p=[1,5],g=[1,6],E=[1,10,12,14,16,18,19,20,21,22],y=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],d=[2,7],m=[1,12],I=[1,13],T=[1,14],_=[1,15],v=[1,16],c=[1,17],A={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,o,s,P){var x=s.length-1;switch(o){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:u,20:$,21:p,22:g},{1:[3]},{3:7,4:2,5:u,20:$,21:p,22:g},e(E,y,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,d,{8:10,9:11,1:[2,2],10:m,12:I,14:T,16:_,18:v,19:c}),e(E,y,{6:18}),e(E,[2,5]),{4:19,20:$,21:p,22:g},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,d,{8:10,9:11,1:[2,3],10:m,12:I,14:T,16:_,18:v,19:c}),e(E,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],o=[null],s=[],P=this.table,x="",f=0,V=0,R=2,M=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),N={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(N.yy[Y]=this.yy[Y]);h.setInput(t,N.yy),N.yy.lexer=h,N.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var J=h.yylloc;s.push(J);var st=h.options&&h.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function rt(){var C;return C=r.pop()||h.lex()||M,typeof C!="number"&&(C instanceof Array&&(r=C,C=r.pop()),C=i.symbols_[C]||C),C}for(var k,L,S,K,z={},j,D,X,W;;){if(L=n[n.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((k===null||typeof k>"u")&&(k=rt()),S=P[L]&&P[L][k]),typeof S>"u"||!S.length||!S[0]){var Z="";W=[];for(j in P[L])this.terminals_[j]&&j>R&&W.push("'"+this.terminals_[j]+"'");h.showPosition?Z="Parse error on line "+(f+1)+`: +`+h.showPosition()+` +Expecting `+W.join(", ")+", got '"+(this.terminals_[k]||k)+"'":Z="Parse error on line "+(f+1)+": Unexpected "+(k==M?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(Z,{text:h.match,token:this.terminals_[k]||k,line:h.yylineno,loc:J,expected:W})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+k);switch(S[0]){case 1:n.push(k),o.push(h.yytext),s.push(h.yylloc),n.push(S[1]),k=null,V=h.yyleng,x=h.yytext,f=h.yylineno,J=h.yylloc;break;case 2:if(D=this.productions_[S[1]][1],z.$=o[o.length-D],z._$={first_line:s[s.length-(D||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(D||1)].first_column,last_column:s[s.length-1].last_column},st&&(z._$.range=[s[s.length-(D||1)].range[0],s[s.length-1].range[1]]),K=this.performAction.apply(z,[x,V,f,N.yy,S[1],o,s].concat(B)),typeof K<"u")return K;D&&(n=n.slice(0,-1*D*2),o=o.slice(0,-1*D),s=s.slice(0,-1*D)),n.push(this.productions_[S[1]][0]),o.push(z.$),s.push(z._$),X=P[n[n.length-2]][n[n.length-1]],n.push(X);break;case 3:return!0}}return!0}},O=function(){var b={EOF:1,parseError:function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+i+"^"},test_match:function(t,i){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;si[0].length)){if(i=n,r=s,this.options.backtrack_lexer){if(t=this.test_match(n,o[s]),t!==!1)return t;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(t=this.test_match(i,o[r]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var i=this.next();return i||this.lex()},begin:function(i){this.conditionStack.push(i)},popState:function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},pushState:function(i){this.begin(i)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(i,n,r,o){switch(r){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return b}();A.lexer=O;function w(){this.yy={}}return w.prototype=A,A.Parser=w,new w}();H.parser=H;const $t=H,nt=at.pie,G={sections:{},showData:!1,config:nt};let U=G.sections,Q=G.showData;const Et=structuredClone(nt),At=()=>structuredClone(Et),wt=()=>{U=structuredClone(G.sections),Q=G.showData,ft()},Tt=(e,u)=>{e=pt(e,et()),U[e]===void 0&&(U[e]=u,it.debug(`added new section: ${e}, with value: ${u}`))},It=()=>U,Dt=e=>(e.substring(0,1)===":"&&(e=e.substring(1).trim()),Number(e.trim())),Ct=e=>{Q=e},Ot=()=>Q,Pt={getConfig:At,clear:wt,setDiagramTitle:lt,getDiagramTitle:ot,setAccTitle:ct,getAccTitle:ht,setAccDescription:ut,getAccDescription:yt,addSection:Tt,getSections:It,cleanupValue:Dt,setShowData:Ct,getShowData:Ot},Vt=e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,Nt=Vt,Lt=e=>{const u=Object.entries(e).map(p=>({label:p[0],value:p[1]})).sort((p,g)=>g.value-p.value);return St().value(p=>p.value)(u)},Ft=(e,u,$,p)=>{it.debug(`rendering pie chart +`+e);const g=p.db,E=et(),y=gt(g.getConfig(),E.pie),a=40,l=18,d=4,m=450,I=m,T=dt(u),_=T.append("g"),v=g.getSections();_.attr("transform","translate("+I/2+","+m/2+")");const{themeVariables:c}=E;let[A]=mt(c.pieOuterStrokeWidth);A??(A=2);const O=y.textPosition,w=Math.min(I,m)/2-a,b=tt().innerRadius(0).outerRadius(w),t=tt().innerRadius(w*O).outerRadius(w*O);_.append("circle").attr("cx",0).attr("cy",0).attr("r",w+A/2).attr("class","pieOuterCircle");const i=Lt(v),n=[c.pie1,c.pie2,c.pie3,c.pie4,c.pie5,c.pie6,c.pie7,c.pie8,c.pie9,c.pie10,c.pie11,c.pie12],r=xt(n);_.selectAll("mySlices").data(i).enter().append("path").attr("d",b).attr("fill",f=>r(f.data.label)).attr("class","pieCircle");let o=0;Object.keys(v).forEach(f=>{o+=v[f]}),_.selectAll("mySlices").data(i).enter().append("text").text(f=>(f.data.value/o*100).toFixed(0)+"%").attr("transform",f=>"translate("+t.centroid(f)+")").style("text-anchor","middle").attr("class","slice"),_.append("text").text(g.getDiagramTitle()).attr("x",0).attr("y",-(m-50)/2).attr("class","pieTitleText");const s=_.selectAll(".legend").data(r.domain()).enter().append("g").attr("class","legend").attr("transform",(f,V)=>{const R=l+d,M=R*r.domain().length/2,B=12*l,h=V*R-M;return"translate("+B+","+h+")"});s.append("rect").attr("width",l).attr("height",l).style("fill",r).style("stroke",r),s.data(i).append("text").attr("x",l+d).attr("y",l-d).text(f=>{const{label:V,value:R}=f.data;return g.getShowData()?`${V} [${R}]`:V});const P=Math.max(...s.selectAll("text").nodes().map(f=>(f==null?void 0:f.getBoundingClientRect().width)??0)),x=I+a+l+d+P;T.attr("viewBox",`0 0 ${x} ${m}`),_t(T,m,x,y.useMaxWidth)},Rt={draw:Ft},Yt={parser:$t,db:Pt,renderer:Rt,styles:Nt};export{Yt as diagram}; diff --git a/assets/plugin-vue_export-helper-DlAUqK2U.js b/assets/plugin-vue_export-helper-DlAUqK2U.js new file mode 100644 index 00000000..718edd33 --- /dev/null +++ b/assets/plugin-vue_export-helper-DlAUqK2U.js @@ -0,0 +1 @@ +const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/assets/quadrantDiagram-c759a472-ChaDXyQS.js b/assets/quadrantDiagram-c759a472-ChaDXyQS.js new file mode 100644 index 00000000..62c6b79d --- /dev/null +++ b/assets/quadrantDiagram-c759a472-ChaDXyQS.js @@ -0,0 +1,7 @@ +import{a_ as vt,c as yt,aL as D,l as ot,s as Lt,g as Ct,C as zt,D as bt,a as Et,b as Dt,E as It,h as gt,i as Bt,d as wt}from"./mermaid.core-Bc1j4tiv.js";import{l as mt}from"./linear-BnGacGIF.js";import"./app-Ca-A-iaw.js";import"./init-Gi6I4Gst.js";var pt=function(){var e=function(K,n,r,l){for(r=r||{},l=K.length;l--;r[K[l]]=n);return r},s=[1,3],h=[1,4],x=[1,5],f=[1,6],d=[1,7],c=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],g=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],i=[32,33,34],y=[2,7],p=[1,13],B=[1,17],N=[1,18],V=[1,19],I=[1,20],b=[1,21],M=[1,22],X=[1,23],C=[1,24],it=[1,25],at=[1,26],nt=[1,27],U=[1,30],Q=[1,31],T=[1,32],m=[1,33],_=[1,34],t=[1,35],A=[1,36],S=[1,37],k=[1,38],F=[1,39],P=[1,40],v=[1,41],L=[1,42],O=[1,57],Y=[1,58],z=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(n,r,l,o,q,a,et){var u=a.length-1;switch(q){case 12:this.$=a[u].trim(),o.setDiagramTitle(this.$);break;case 13:this.$=a[u].trim(),o.setAccTitle(this.$);break;case 14:case 15:this.$=a[u].trim(),o.setAccDescription(this.$);break;case 16:o.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 17:o.addPoint(a[u-3],a[u-1],a[u]);break;case 18:o.setXAxisLeftText(a[u-2]),o.setXAxisRightText(a[u]);break;case 19:a[u-1].text+=" ⟶ ",o.setXAxisLeftText(a[u-1]);break;case 20:o.setXAxisLeftText(a[u]);break;case 21:o.setYAxisBottomText(a[u-2]),o.setYAxisTopText(a[u]);break;case 22:a[u-1].text+=" ⟶ ",o.setYAxisBottomText(a[u-1]);break;case 23:o.setYAxisBottomText(a[u]);break;case 24:o.setQuadrant1Text(a[u]);break;case 25:o.setQuadrant2Text(a[u]);break;case 26:o.setQuadrant3Text(a[u]);break;case 27:o.setQuadrant4Text(a[u]);break;case 31:this.$={text:a[u],type:"text"};break;case 32:this.$={text:a[u-1].text+""+a[u],type:a[u-1].type};break;case 33:this.$={text:a[u],type:"text"};break;case 34:this.$={text:a[u],type:"markdown"};break;case 35:this.$=a[u];break;case 36:this.$=a[u-1]+""+a[u];break}},table:[{3:1,4:2,5:s,6:h,32:x,33:f,34:d},{1:[3]},{3:8,4:2,5:s,6:h,32:x,33:f,34:d},{3:9,4:2,5:s,6:h,32:x,33:f,34:d},e(c,[2,4],{7:10}),e(g,[2,28]),e(g,[2,29]),e(g,[2,30]),{1:[2,1]},{1:[2,2]},e(i,y,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(c,[2,5]),{4:43,32:x,33:f,34:d},e(i,y,{10:14,11:15,12:16,21:28,35:29,9:44,5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,9]),e(i,[2,10]),e(i,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},e(i,[2,15]),e(i,[2,16]),{21:48,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:49,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:50,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:51,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:52,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:53,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{5:O,22:[1,54],35:56,36:55,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y},e(z,[2,31]),e(z,[2,33]),e(z,[2,34]),e(z,[2,37]),e(z,[2,38]),e(z,[2,39]),e(z,[2,40]),e(z,[2,41]),e(z,[2,42]),e(z,[2,43]),e(z,[2,44]),e(z,[2,45]),e(z,[2,46]),e(z,[2,47]),e(c,[2,6]),e(i,[2,8]),e(i,[2,12]),e(i,[2,13]),e(i,[2,14]),e(i,[2,20],{36:55,35:56,5:O,26:[1,59],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,23],{36:55,35:56,5:O,26:[1,60],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,24],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,25],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,26],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,27],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),{23:[1,61]},e(z,[2,32]),e(z,[2,48]),e(z,[2,49]),e(z,[2,50]),e(i,[2,19],{35:29,21:62,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,22],{35:29,21:63,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),{24:[1,64]},e(i,[2,18],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,21],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var l=new Error(n);throw l.hash=r,l}},parse:function(n){var r=this,l=[0],o=[],q=[null],a=[],et=this.table,u="",st=0,qt=0,St=2,Tt=1,kt=a.slice.call(arguments,1),E=Object.create(this.lexer),Z={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Z.yy[dt]=this.yy[dt]);E.setInput(n,Z.yy),Z.yy.lexer=E,Z.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ut=E.yylloc;a.push(ut);var Ft=E.options&&E.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pt(){var j;return j=o.pop()||E.lex()||Tt,typeof j!="number"&&(j instanceof Array&&(o=j,j=o.pop()),j=r.symbols_[j]||j),j}for(var W,J,H,xt,tt={},rt,$,_t,lt;;){if(J=l[l.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((W===null||typeof W>"u")&&(W=Pt()),H=et[J]&&et[J][W]),typeof H>"u"||!H.length||!H[0]){var ft="";lt=[];for(rt in et[J])this.terminals_[rt]&&rt>St&<.push("'"+this.terminals_[rt]+"'");E.showPosition?ft="Parse error on line "+(st+1)+`: +`+E.showPosition()+` +Expecting `+lt.join(", ")+", got '"+(this.terminals_[W]||W)+"'":ft="Parse error on line "+(st+1)+": Unexpected "+(W==Tt?"end of input":"'"+(this.terminals_[W]||W)+"'"),this.parseError(ft,{text:E.match,token:this.terminals_[W]||W,line:E.yylineno,loc:ut,expected:lt})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+W);switch(H[0]){case 1:l.push(W),q.push(E.yytext),a.push(E.yylloc),l.push(H[1]),W=null,qt=E.yyleng,u=E.yytext,st=E.yylineno,ut=E.yylloc;break;case 2:if($=this.productions_[H[1]][1],tt.$=q[q.length-$],tt._$={first_line:a[a.length-($||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-($||1)].first_column,last_column:a[a.length-1].last_column},Ft&&(tt._$.range=[a[a.length-($||1)].range[0],a[a.length-1].range[1]]),xt=this.performAction.apply(tt,[u,qt,st,Z.yy,H[1],q,a].concat(kt)),typeof xt<"u")return xt;$&&(l=l.slice(0,-1*$*2),q=q.slice(0,-1*$),a=a.slice(0,-1*$)),l.push(this.productions_[H[1]][0]),q.push(tt.$),a.push(tt._$),_t=et[l[l.length-2]][l[l.length-1]],l.push(_t);break;case 3:return!0}}return!0}},At=function(){var K={EOF:1,parseError:function(r,l){if(this.yy.parser)this.yy.parser.parseError(r,l);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,l=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===o.length?this.yylloc.first_column:0)+o[o.length-l.length].length-l[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` +`+r+"^"},test_match:function(n,r){var l,o,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),o=n[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],l=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var a in q)this[a]=q[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,r,l,o;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),a=0;ar[0].length)){if(r=l,o=a,this.options.backtrack_lexer){if(n=this.test_match(l,q[a]),n!==!1)return n;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(n=this.test_match(r,q[o]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,l,o,q){switch(o){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return K}();ht.lexer=At;function ct(){this.yy={}}return ct.prototype=ht,ht.Parser=ct,new ct}();pt.parser=pt;const Rt=pt,R=vt();class Vt{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var s,h,x,f,d,c,g,i,y,p,B,N,V,I,b,M,X,C;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((s=D.quadrantChart)==null?void 0:s.chartWidth)||500,chartWidth:((h=D.quadrantChart)==null?void 0:h.chartHeight)||500,titlePadding:((x=D.quadrantChart)==null?void 0:x.titlePadding)||10,titleFontSize:((f=D.quadrantChart)==null?void 0:f.titleFontSize)||20,quadrantPadding:((d=D.quadrantChart)==null?void 0:d.quadrantPadding)||5,xAxisLabelPadding:((c=D.quadrantChart)==null?void 0:c.xAxisLabelPadding)||5,yAxisLabelPadding:((g=D.quadrantChart)==null?void 0:g.yAxisLabelPadding)||5,xAxisLabelFontSize:((i=D.quadrantChart)==null?void 0:i.xAxisLabelFontSize)||16,yAxisLabelFontSize:((y=D.quadrantChart)==null?void 0:y.yAxisLabelFontSize)||16,quadrantLabelFontSize:((p=D.quadrantChart)==null?void 0:p.quadrantLabelFontSize)||16,quadrantTextTopPadding:((B=D.quadrantChart)==null?void 0:B.quadrantTextTopPadding)||5,pointTextPadding:((N=D.quadrantChart)==null?void 0:N.pointTextPadding)||5,pointLabelFontSize:((V=D.quadrantChart)==null?void 0:V.pointLabelFontSize)||12,pointRadius:((I=D.quadrantChart)==null?void 0:I.pointRadius)||5,xAxisPosition:((b=D.quadrantChart)==null?void 0:b.xAxisPosition)||"top",yAxisPosition:((M=D.quadrantChart)==null?void 0:M.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((X=D.quadrantChart)==null?void 0:X.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((C=D.quadrantChart)==null?void 0:C.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:R.quadrant1Fill,quadrant2Fill:R.quadrant2Fill,quadrant3Fill:R.quadrant3Fill,quadrant4Fill:R.quadrant4Fill,quadrant1TextFill:R.quadrant1TextFill,quadrant2TextFill:R.quadrant2TextFill,quadrant3TextFill:R.quadrant3TextFill,quadrant4TextFill:R.quadrant4TextFill,quadrantPointFill:R.quadrantPointFill,quadrantPointTextFill:R.quadrantPointTextFill,quadrantXAxisTextFill:R.quadrantXAxisTextFill,quadrantYAxisTextFill:R.quadrantYAxisTextFill,quadrantTitleFill:R.quadrantTitleFill,quadrantInternalBorderStrokeFill:R.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:R.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),ot.info("clear called")}setData(s){this.data={...this.data,...s}}addPoints(s){this.data.points=[...s,...this.data.points]}setConfig(s){ot.trace("setConfig called with: ",s),this.config={...this.config,...s}}setThemeConfig(s){ot.trace("setThemeConfig called with: ",s),this.themeConfig={...this.themeConfig,...s}}calculateSpace(s,h,x,f){const d=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,c={top:s==="top"&&h?d:0,bottom:s==="bottom"&&h?d:0},g=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,i={left:this.config.yAxisPosition==="left"&&x?g:0,right:this.config.yAxisPosition==="right"&&x?g:0},y=this.config.titleFontSize+this.config.titlePadding*2,p={top:f?y:0},B=this.config.quadrantPadding+i.left,N=this.config.quadrantPadding+c.top+p.top,V=this.config.chartWidth-this.config.quadrantPadding*2-i.left-i.right,I=this.config.chartHeight-this.config.quadrantPadding*2-c.top-c.bottom-p.top,b=V/2,M=I/2;return{xAxisSpace:c,yAxisSpace:i,titleSpace:p,quadrantSpace:{quadrantLeft:B,quadrantTop:N,quadrantWidth:V,quadrantHalfWidth:b,quadrantHeight:I,quadrantHalfHeight:M}}}getAxisLabels(s,h,x,f){const{quadrantSpace:d,titleSpace:c}=f,{quadrantHalfHeight:g,quadrantHeight:i,quadrantLeft:y,quadrantHalfWidth:p,quadrantTop:B,quadrantWidth:N}=d,V=!!this.data.xAxisRightText,I=!!this.data.yAxisTopText,b=[];return this.data.xAxisLeftText&&h&&b.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&h&&b.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+p+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&x&&b.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+i-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&x&&b.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+g-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),b}getQuadrants(s){const{quadrantSpace:h}=s,{quadrantHalfHeight:x,quadrantLeft:f,quadrantHalfWidth:d,quadrantTop:c}=h,g=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c,width:d,height:x,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c,width:d,height:x,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant4Fill}];for(const i of g)i.text.x=i.x+i.width/2,this.data.points.length===0?(i.text.y=i.y+i.height/2,i.text.horizontalPos="middle"):(i.text.y=i.y+this.config.quadrantTextTopPadding,i.text.horizontalPos="top");return g}getQuadrantPoints(s){const{quadrantSpace:h}=s,{quadrantHeight:x,quadrantLeft:f,quadrantTop:d,quadrantWidth:c}=h,g=mt().domain([0,1]).range([f,c+f]),i=mt().domain([0,1]).range([x+d,d]);return this.data.points.map(p=>({x:g(p.x),y:i(p.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:p.text,fill:this.themeConfig.quadrantPointTextFill,x:g(p.x),y:i(p.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(s){const h=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:x}=s,{quadrantHalfHeight:f,quadrantHeight:d,quadrantLeft:c,quadrantHalfWidth:g,quadrantTop:i,quadrantWidth:y}=x;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i,x2:c+y+h,y2:i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c+y,y1:i+h,x2:c+y,y2:i+d-h},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i+d,x2:c+y+h,y2:i+d},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c,y1:i+h,x2:c,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+g,y1:i+h,x2:c+g,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+h,y1:i+f,x2:c+y-h,y2:i+f}]}getTitle(s){if(s)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const s=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),h=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),x=this.config.showTitle&&!!this.data.titleText,f=this.data.points.length>0?"bottom":this.config.xAxisPosition,d=this.calculateSpace(f,s,h,x);return{points:this.getQuadrantPoints(d),quadrants:this.getQuadrants(d),axisLabels:this.getAxisLabels(f,s,h,d),borderLines:this.getBorders(d),title:this.getTitle(x)}}}const Wt=yt();function G(e){return wt(e.trim(),Wt)}const w=new Vt;function Nt(e){w.setData({quadrant1Text:G(e.text)})}function Ut(e){w.setData({quadrant2Text:G(e.text)})}function Qt(e){w.setData({quadrant3Text:G(e.text)})}function Ht(e){w.setData({quadrant4Text:G(e.text)})}function Mt(e){w.setData({xAxisLeftText:G(e.text)})}function Xt(e){w.setData({xAxisRightText:G(e.text)})}function Ot(e){w.setData({yAxisTopText:G(e.text)})}function Yt(e){w.setData({yAxisBottomText:G(e.text)})}function $t(e,s,h){w.addPoints([{x:s,y:h,text:G(e.text)}])}function jt(e){w.setConfig({chartWidth:e})}function Gt(e){w.setConfig({chartHeight:e})}function Kt(){const e=yt(),{themeVariables:s,quadrantChart:h}=e;return h&&w.setConfig(h),w.setThemeConfig({quadrant1Fill:s.quadrant1Fill,quadrant2Fill:s.quadrant2Fill,quadrant3Fill:s.quadrant3Fill,quadrant4Fill:s.quadrant4Fill,quadrant1TextFill:s.quadrant1TextFill,quadrant2TextFill:s.quadrant2TextFill,quadrant3TextFill:s.quadrant3TextFill,quadrant4TextFill:s.quadrant4TextFill,quadrantPointFill:s.quadrantPointFill,quadrantPointTextFill:s.quadrantPointTextFill,quadrantXAxisTextFill:s.quadrantXAxisTextFill,quadrantYAxisTextFill:s.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:s.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:s.quadrantInternalBorderStrokeFill,quadrantTitleFill:s.quadrantTitleFill}),w.setData({titleText:bt()}),w.build()}const Zt=function(){w.clear(),It()},Jt={setWidth:jt,setHeight:Gt,setQuadrant1Text:Nt,setQuadrant2Text:Ut,setQuadrant3Text:Qt,setQuadrant4Text:Ht,setXAxisLeftText:Mt,setXAxisRightText:Xt,setYAxisTopText:Ot,setYAxisBottomText:Yt,addPoint:$t,getQuadrantData:Kt,clear:Zt,setAccTitle:Lt,getAccTitle:Ct,setDiagramTitle:zt,getDiagramTitle:bt,getAccDescription:Et,setAccDescription:Dt},te=(e,s,h,x)=>{var f,d,c;function g(t){return t==="top"?"hanging":"middle"}function i(t){return t==="left"?"start":"middle"}function y(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const p=yt();ot.debug(`Rendering quadrant chart +`+e);const B=p.securityLevel;let N;B==="sandbox"&&(N=gt("#i"+s));const I=(B==="sandbox"?gt(N.nodes()[0].contentDocument.body):gt("body")).select(`[id="${s}"]`),b=I.append("g").attr("class","main"),M=((f=p.quadrantChart)==null?void 0:f.chartWidth)||500,X=((d=p.quadrantChart)==null?void 0:d.chartHeight)||500;Bt(I,X,M,((c=p.quadrantChart)==null?void 0:c.useMaxWidth)||!0),I.attr("viewBox","0 0 "+M+" "+X),x.db.setHeight(X),x.db.setWidth(M);const C=x.db.getQuadrantData(),it=b.append("g").attr("class","quadrants"),at=b.append("g").attr("class","border"),nt=b.append("g").attr("class","data-points"),U=b.append("g").attr("class","labels"),Q=b.append("g").attr("class","title");C.title&&Q.append("text").attr("x",0).attr("y",0).attr("fill",C.title.fill).attr("font-size",C.title.fontSize).attr("dominant-baseline",g(C.title.horizontalPos)).attr("text-anchor",i(C.title.verticalPos)).attr("transform",y(C.title)).text(C.title.text),C.borderLines&&at.selectAll("line").data(C.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);const T=it.selectAll("g.quadrant").data(C.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text)).text(t=>t.text.text),U.selectAll("g.label").data(C.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>g(t.horizontalPos)).attr("text-anchor",t=>i(t.verticalPos)).attr("transform",t=>y(t));const _=nt.selectAll("g.data-point").data(C.points).enter().append("g").attr("class","data-point");_.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill),_.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text))},ee={draw:te},re={parser:Rt,db:Jt,renderer:ee,styles:()=>""};export{re as diagram}; diff --git a/assets/requirementDiagram-87253d64-Dkgz-B9P.js b/assets/requirementDiagram-87253d64-Dkgz-B9P.js new file mode 100644 index 00000000..91acbfa8 --- /dev/null +++ b/assets/requirementDiagram-87253d64-Dkgz-B9P.js @@ -0,0 +1,52 @@ +import{c as Te,s as Ce,g as Fe,b as Me,a as De,l as Ne,E as Pe,h as oe,i as Ye,j as ke}from"./mermaid.core-Bc1j4tiv.js";import{G as Ue}from"./graph-DkiqFSuU.js";import{l as Be}from"./layout-BZLwH4ql.js";import{l as Qe}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";var ce=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],E=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],fe=[1,48],ye=[1,49],_e=[1,50],Ee=[1,51],ge=[1,52],Re=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],j=[1,69],z=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:E,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:fe,57:ye,58:_e,59:Ee,60:ge,61:Re},{52:54,55:pe,56:fe,57:ye,58:_e,59:Ee,60:ge,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:j,30:z,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:110,47:X,49:J},{5:j,30:z,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,me=0,Ve=2,Ie=1,qe=s.slice.call(arguments,1),g=Object.create(this.lexer),L={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(L.yy[ne]=this.yy[ne]);g.setInput(i,L.yy),L.yy.lexer=g,L.yy.parser=this,typeof g.yylloc>"u"&&(g.yylloc={});var se=g.yylloc;s.push(se);var Oe=g.options&&g.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var $;return $=r.pop()||g.lex()||Ie,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,ae,Q={},ee,w,be,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=Le()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var le="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ve&&te.push("'"+this.terminals_[ee]+"'");g.showPosition?le="Parse error on line "+(Z+1)+`: +`+g.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[I]||I)+"'":le="Parse error on line "+(Z+1)+": Unexpected "+(I==Ie?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(le,{text:g.match,token:this.terminals_[I]||I,line:g.yylineno,loc:se,expected:te})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+I);switch(S[0]){case 1:a.push(I),f.push(g.yytext),s.push(g.yylloc),a.push(S[1]),I=null,me=g.yyleng,_=g.yytext,Z=g.yylineno,se=g.yylloc;break;case 2:if(w=this.productions_[S[1]][1],Q.$=f[f.length-w],Q._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},Oe&&(Q._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),ae=this.performAction.apply(Q,[_,me,Z,L.yy,S[1],f,s].concat(qe)),typeof ae<"u")return ae;w&&(a=a.slice(0,-1*w*2),f=f.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),f.push(Q.$),s.push(Q._$),be=W[a[a.length-2]][a[a.length-1]],a.push(be);break;case 3:return!0}}return!0}},$e=function(){var V={EOF:1,parseError:function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},setInput:function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},test_match:function(i,n){var a,r,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),r=i[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in f)this[s]=f[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,r;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),s=0;sn[0].length)){if(n=a,r=s,this.options.backtrack_lexer){if(i=this.test_match(a,f[s]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,f[r]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,a,r,f){switch(r){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return a.yytext=a.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return V}();ie.lexer=$e;function re(){this.yy={}}return re.prototype=ie,ie.Parser=re,new re}();ce.parser=ce;const He=ce;let ue=[],b={},K={},q={},G={};const We={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Ke={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},Ge={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},je={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},ze=(e,t)=>(K[e]===void 0&&(K[e]={name:e,type:t,id:b.id,text:b.text,risk:b.risk,verifyMethod:b.verifyMethod}),b={},K[e]),Xe=()=>K,Je=e=>{b!==void 0&&(b.id=e)},Ze=e=>{b!==void 0&&(b.text=e)},et=e=>{b!==void 0&&(b.risk=e)},tt=e=>{b!==void 0&&(b.verifyMethod=e)},it=e=>(G[e]===void 0&&(G[e]={name:e,type:q.type,docRef:q.docRef},Ne.info("Added new requirement: ",e)),q={},G[e]),rt=()=>G,nt=e=>{q!==void 0&&(q.type=e)},st=e=>{q!==void 0&&(q.docRef=e)},at=(e,t,l)=>{ue.push({type:e,src:t,dst:l})},lt=()=>ue,ot=()=>{ue=[],b={},K={},q={},G={},Pe()},ct={RequirementType:We,RiskLevel:Ke,VerifyType:Ge,Relationships:je,getConfig:()=>Te().req,addRequirement:ze,getRequirements:Xe,setNewReqId:Je,setNewReqText:Ze,setNewReqRisk:et,setNewReqVerifyMethod:tt,setAccTitle:Ce,getAccTitle:Fe,setAccDescription:Me,getAccDescription:De,addElement:it,getElements:rt,setNewElementType:nt,setNewElementDocRef:st,addRelationship:at,getRelationships:lt,clear:ot},ht=e=>` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + +`,ut=ht,he={CONTAINS:"contains",ARROW:"arrow"},dt=(e,t)=>{let l=e.append("defs").append("marker").attr("id",he.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");l.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),l.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),l.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",he.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${t.line_height},${t.line_height/2} + M${t.line_height},${t.line_height/2} + L0,${t.line_height}`).attr("stroke-width",1)},xe={ReqMarkers:he,insertLineEndings:dt};let y={},Se=0;const Ae=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",y.rect_min_width+"px").attr("height",y.rect_min_height+"px"),ve=(e,t,l)=>{let c=y.rect_min_width/2,u=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",c).attr("y",y.rect_padding).attr("dominant-baseline","hanging"),d=0;l.forEach(E=>{d==0?u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",0).text(E):u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",y.line_height*.75).text(E),d++});let p=1.5*y.rect_padding,h=d*y.line_height*.75,o=p+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",y.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:u,y:o}},we=(e,t,l,c)=>{let u=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",y.rect_padding).attr("y",c).attr("dominant-baseline","hanging"),d=0;const p=30;let h=[];return l.forEach(o=>{let E=o.length;for(;E>p&&d<3;){let R=o.substring(0,p);o=o.substring(p,o.length),E=o.length,h[h.length]=R,d++}if(d==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;d=0}),h.forEach(o=>{u.append("tspan").attr("x",y.rect_padding).attr("dy",y.line_height).text(o)}),u},pt=(e,t,l,c)=>{const u=t.node().getTotalLength(),d=t.node().getPointAtLength(u*.5),p="rel"+Se;Se++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",p).attr("x",d.x).attr("y",d.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(c).node().getBBox();e.insert("rect","#"+p).attr("class","req reqLabelBox").attr("x",d.x-o.width/2).attr("y",d.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},ft=function(e,t,l,c,u){const d=l.edge(H(t.src),H(t.dst)),p=Qe().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+c).attr("class","er relationshipLine").attr("d",p(d.points)).attr("fill","none");t.type==u.db.Relationships.CONTAINS?h.attr("marker-start","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+xe.ReqMarkers.ARROW+"_line_ending)")),pt(e,h,y,`<<${t.type}>>`)},yt=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];c=H(c),Ne.info("Added new requirement: ",c);const d=l.append("g").attr("id",c),p="req-"+c,h=Ae(d,p);let o=ve(d,c+"_title",[`<<${u.type}>>`,`${u.name}`]);we(d,c+"_body",[`Id: ${u.id}`,`Text: ${u.text}`,`Risk: ${u.risk}`,`Verification: ${u.verifyMethod}`],o.y);const E=h.node().getBBox();t.setNode(c,{width:E.width,height:E.height,shape:"rect",id:c})})},_t=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];const d=H(c),p=l.append("g").attr("id",d),h="element-"+d,o=Ae(p,h);let E=ve(p,h+"_title",["<>",`${c}`]);we(p,h+"_body",[`Type: ${u.type||"Not Specified"}`,`Doc Ref: ${u.docRef||"None"}`],E.y);const R=o.node().getBBox();t.setNode(d,{width:R.width,height:R.height,shape:"rect",id:d})})},Et=(e,t)=>(e.forEach(function(l){let c=H(l.src),u=H(l.dst);t.setEdge(c,u,{relationship:l})}),e),gt=function(e,t){t.nodes().forEach(function(l){l!==void 0&&t.node(l)!==void 0&&(e.select("#"+l),e.select("#"+l).attr("transform","translate("+(t.node(l).x-t.node(l).width/2)+","+(t.node(l).y-t.node(l).height/2)+" )"))})},H=e=>e.replace(/\s/g,"").replace(/\./g,"_"),Rt=(e,t,l,c)=>{y=Te().requirement;const u=y.securityLevel;let d;u==="sandbox"&&(d=oe("#i"+t));const h=(u==="sandbox"?oe(d.nodes()[0].contentDocument.body):oe("body")).select(`[id='${t}']`);xe.insertLineEndings(h,y);const o=new Ue({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:y.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let E=c.db.getRequirements(),R=c.db.getElements(),A=c.db.getRelationships();yt(E,o,h),_t(R,o,h),Et(A,o),Be(o),gt(h,o),A.forEach(function(x){ft(h,x,o,t,c)});const T=y.rect_padding,N=h.node().getBBox(),v=N.width+T*2,k=N.height+T*2;Ye(h,k,v,y.useMaxWidth),h.attr("viewBox",`${N.x-T} ${N.y-T} ${v} ${k}`)},mt={draw:Rt},At={parser:He,db:ct,renderer:mt,styles:ut};export{At as diagram}; diff --git a/assets/sankeyDiagram-707fac0f-BXumW6Uv.js b/assets/sankeyDiagram-707fac0f-BXumW6Uv.js new file mode 100644 index 00000000..c595ec38 --- /dev/null +++ b/assets/sankeyDiagram-707fac0f-BXumW6Uv.js @@ -0,0 +1,8 @@ +import{c as rt,g as mt,s as kt,a as _t,b as xt,D as vt,C as bt,E as wt,j as St,V as Lt,h as G,t as Et}from"./mermaid.core-Bc1j4tiv.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import{s as Tt}from"./Tableau10-B-NsZVaP.js";import"./app-Ca-A-iaw.js";import"./init-Gi6I4Gst.js";function ot(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s=u)&&(s=u)}return s}function yt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function Z(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let u of t)(u=+n(u,++a,t))&&(s+=u)}return s}function Mt(t){return t.target.depth}function Nt(t){return t.depth}function Ct(t,n){return n-1-t.height}function dt(t,n){return t.sourceLinks.length?t.depth:n-1}function Pt(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?yt(t.sourceLinks,Mt)-1:0}function Y(t){return function(){return t}}function lt(t,n){return H(t.source,n.source)||t.index-n.index}function at(t,n){return H(t.target,n.target)||t.index-n.index}function H(t,n){return t.y0-n.y0}function J(t){return t.value}function It(t){return t.index}function $t(t){return t.nodes}function Ot(t){return t.links}function ct(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function ut({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const u of n.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of n.targetLinks)u.y1=a+u.width/2,a+=u.width}}function jt(){let t=0,n=0,s=1,a=1,u=24,_=8,g,p=It,i=dt,o,c,m=$t,b=Ot,y=6;function x(){const e={nodes:m.apply(null,arguments),links:b.apply(null,arguments)};return E(e),L(e),A(e),N(e),S(e),ut(e),e}x.update=function(e){return ut(e),e},x.nodeId=function(e){return arguments.length?(p=typeof e=="function"?e:Y(e),x):p},x.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:Y(e),x):i},x.nodeSort=function(e){return arguments.length?(o=e,x):o},x.nodeWidth=function(e){return arguments.length?(u=+e,x):u},x.nodePadding=function(e){return arguments.length?(_=g=+e,x):_},x.nodes=function(e){return arguments.length?(m=typeof e=="function"?e:Y(e),x):m},x.links=function(e){return arguments.length?(b=typeof e=="function"?e:Y(e),x):b},x.linkSort=function(e){return arguments.length?(c=e,x):c},x.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],x):[s-t,a-n]},x.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],x):[[t,n],[s,a]]},x.iterations=function(e){return arguments.length?(y=+e,x):y};function E({nodes:e,links:f}){for(const[h,r]of e.entries())r.index=h,r.sourceLinks=[],r.targetLinks=[];const l=new Map(e.map((h,r)=>[p(h,r,e),h]));for(const[h,r]of f.entries()){r.index=h;let{source:k,target:v}=r;typeof k!="object"&&(k=r.source=ct(l,k)),typeof v!="object"&&(v=r.target=ct(l,v)),k.sourceLinks.push(r),v.targetLinks.push(r)}if(c!=null)for(const{sourceLinks:h,targetLinks:r}of e)h.sort(c),r.sort(c)}function L({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(Z(f.sourceLinks,J),Z(f.targetLinks,J)):f.fixedValue}function A({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.depth=r;for(const{target:v}of k.sourceLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function N({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.height=r;for(const{source:v}of k.targetLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function I({nodes:e}){const f=ot(e,r=>r.depth)+1,l=(s-t-u)/(f-1),h=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*l,r.x1=r.x0+u,h[k]?h[k].push(r):h[k]=[r]}if(o)for(const r of h)r.sort(o);return h}function j(e){const f=yt(e,l=>(a-n-(l.length-1)*g)/Z(l,J));for(const l of e){let h=n;for(const r of l){r.y0=h,r.y1=h+r.value*f,h=r.y1+g;for(const k of r.sourceLinks)k.width=k.value*f}h=(a-h+g)/(l.length+1);for(let r=0;rl.length)-1)),j(f);for(let l=0;l0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),C(k,l)}}function O(e,f,l){for(let h=e.length,r=h-2;r>=0;--r){const k=e[r];for(const v of k){let R=0,z=0;for(const{target:W,value:K}of v.sourceLinks){let F=K*(W.layer-v.layer);R+=V(v,W)*F,z+=F}if(!(z>0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),C(k,l)}}function C(e,f){const l=e.length>>1,h=e[l];d(e,h.y0-g,l-1,f),P(e,h.y1+g,l+1,f),d(e,a,e.length-1,f),P(e,n,0,f)}function P(e,f,l,h){for(;l1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+g}}function d(e,f,l,h){for(;l>=0;--l){const r=e[l],k=(r.y1-f)*h;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-g}}function w({sourceLinks:e,targetLinks:f}){if(c===void 0){for(const{source:{sourceLinks:l}}of f)l.sort(at);for(const{target:{targetLinks:l}}of e)l.sort(lt)}}function $(e){if(c===void 0)for(const{sourceLinks:f,targetLinks:l}of e)f.sort(at),l.sort(lt)}function T(e,f){let l=e.y0-(e.sourceLinks.length-1)*g/2;for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l+=r+g}for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l-=r}return l}function V(e,f){let l=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l+=r+g}for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l-=r}return l}return x}var tt=Math.PI,et=2*tt,D=1e-6,zt=et-D;function nt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function gt(){return new nt}nt.prototype=gt.prototype={constructor:nt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,u,_){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+u)+","+(this._y1=+_)},arcTo:function(t,n,s,a,u){t=+t,n=+n,s=+s,a=+a,u=+u;var _=this._x1,g=this._y1,p=s-t,i=a-n,o=_-t,c=g-n,m=o*o+c*c;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(m>D)if(!(Math.abs(c*p-i*o)>D)||!u)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var b=s-_,y=a-g,x=p*p+i*i,E=b*b+y*y,L=Math.sqrt(x),A=Math.sqrt(m),N=u*Math.tan((tt-Math.acos((x+m-E)/(2*L*A)))/2),I=N/A,j=N/L;Math.abs(I-1)>D&&(this._+="L"+(t+I*o)+","+(n+I*c)),this._+="A"+u+","+u+",0,0,"+ +(c*b>o*y)+","+(this._x1=t+j*p)+","+(this._y1=n+j*i)}},arc:function(t,n,s,a,u,_){t=+t,n=+n,s=+s,_=!!_;var g=s*Math.cos(a),p=s*Math.sin(a),i=t+g,o=n+p,c=1^_,m=_?a-u:u-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>D||Math.abs(this._y1-o)>D)&&(this._+="L"+i+","+o),s&&(m<0&&(m=m%et+et),m>zt?this._+="A"+s+","+s+",0,1,"+c+","+(t-g)+","+(n-p)+"A"+s+","+s+",0,1,"+c+","+(this._x1=i)+","+(this._y1=o):m>D&&(this._+="A"+s+","+s+",0,"+ +(m>=tt)+","+c+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=n+s*Math.sin(u))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function ht(t){return function(){return t}}function Dt(t){return t[0]}function Bt(t){return t[1]}var Vt=Array.prototype.slice;function Rt(t){return t.source}function Ut(t){return t.target}function Wt(t){var n=Rt,s=Ut,a=Dt,u=Bt,_=null;function g(){var p,i=Vt.call(arguments),o=n.apply(this,i),c=s.apply(this,i);if(_||(_=p=gt()),t(_,+a.apply(this,(i[0]=o,i)),+u.apply(this,i),+a.apply(this,(i[0]=c,i)),+u.apply(this,i)),p)return _=null,p+""||null}return g.source=function(p){return arguments.length?(n=p,g):n},g.target=function(p){return arguments.length?(s=p,g):s},g.x=function(p){return arguments.length?(a=typeof p=="function"?p:ht(+p),g):a},g.y=function(p){return arguments.length?(u=typeof p=="function"?p:ht(+p),g):u},g.context=function(p){return arguments.length?(_=p??null,g):_},g}function Ft(t,n,s,a,u){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,u,a,u)}function Gt(){return Wt(Ft)}function Yt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Gt().source(Yt).target(Ht)}var it=function(){var t=function(p,i,o,c){for(o=o||{},c=p.length;c--;o[p[c]]=i);return o},n=[1,9],s=[1,10],a=[1,5,10,12],u={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(i,o,c,m,b,y,x){var E=y.length-1;switch(b){case 7:const L=m.findOrCreateNode(y[E-4].trim().replaceAll('""','"')),A=m.findOrCreateNode(y[E-2].trim().replaceAll('""','"')),N=parseFloat(y[E].trim());m.addLink(L,A,N);break;case 8:case 9:case 11:this.$=y[E];break;case 10:this.$=y[E-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(i,o){if(o.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=o,c}},parse:function(i){var o=this,c=[0],m=[],b=[null],y=[],x=this.table,E="",L=0,A=0,N=2,I=1,j=y.slice.call(arguments,1),S=Object.create(this.lexer),M={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(M.yy[O]=this.yy[O]);S.setInput(i,M.yy),M.yy.lexer=S,M.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var C=S.yylloc;y.push(C);var P=S.options&&S.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function d(){var v;return v=m.pop()||S.lex()||I,typeof v!="number"&&(v instanceof Array&&(m=v,v=m.pop()),v=o.symbols_[v]||v),v}for(var w,$,T,V,e={},f,l,h,r;;){if($=c[c.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((w===null||typeof w>"u")&&(w=d()),T=x[$]&&x[$][w]),typeof T>"u"||!T.length||!T[0]){var k="";r=[];for(f in x[$])this.terminals_[f]&&f>N&&r.push("'"+this.terminals_[f]+"'");S.showPosition?k="Parse error on line "+(L+1)+`: +`+S.showPosition()+` +Expecting `+r.join(", ")+", got '"+(this.terminals_[w]||w)+"'":k="Parse error on line "+(L+1)+": Unexpected "+(w==I?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(k,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:C,expected:r})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+w);switch(T[0]){case 1:c.push(w),b.push(S.yytext),y.push(S.yylloc),c.push(T[1]),w=null,A=S.yyleng,E=S.yytext,L=S.yylineno,C=S.yylloc;break;case 2:if(l=this.productions_[T[1]][1],e.$=b[b.length-l],e._$={first_line:y[y.length-(l||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(l||1)].first_column,last_column:y[y.length-1].last_column},P&&(e._$.range=[y[y.length-(l||1)].range[0],y[y.length-1].range[1]]),V=this.performAction.apply(e,[E,A,L,M.yy,T[1],b,y].concat(j)),typeof V<"u")return V;l&&(c=c.slice(0,-1*l*2),b=b.slice(0,-1*l),y=y.slice(0,-1*l)),c.push(this.productions_[T[1]][0]),b.push(e.$),y.push(e._$),h=x[c[c.length-2]][c[c.length-1]],c.push(h);break;case 3:return!0}}return!0}},_=function(){var p={EOF:1,parseError:function(o,c){if(this.yy.parser)this.yy.parser.parseError(o,c);else throw new Error(o)},setInput:function(i,o){return this.yy=o||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var o=i.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var o=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===m.length?this.yylloc.first_column:0)+m[m.length-c.length].length-c[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),o=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+o+"^"},test_match:function(i,o){var c,m,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),m=i[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var y in b)this[y]=b[y];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,o,c,m;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),y=0;yo[0].length)){if(o=c,m=y,this.options.backtrack_lexer){if(i=this.test_match(c,b[y]),i!==!1)return i;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(i=this.test_match(o,b[m]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(o,c,m,b){switch(m){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return p}();u.lexer=_;function g(){this.yy={}}return g.prototype=u,u.Parser=g,new g}();it.parser=it;const X=it;let q=[],Q=[],B={};const qt=()=>{q=[],Q=[],B={},wt()};class Qt{constructor(n,s,a=0){this.source=n,this.target=s,this.value=a}}const Kt=(t,n,s)=>{q.push(new Qt(t,n,s))};class Zt{constructor(n){this.ID=n}}const Jt=t=>(t=St.sanitizeText(t,rt()),B[t]||(B[t]=new Zt(t),Q.push(B[t])),B[t]),te=()=>Q,ee=()=>q,ne=()=>({nodes:Q.map(t=>({id:t.ID})),links:q.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),ie={nodesMap:B,getConfig:()=>rt().sankey,getNodes:te,getLinks:ee,getGraph:ne,addLink:Kt,findOrCreateNode:Jt,getAccTitle:mt,setAccTitle:kt,getAccDescription:_t,setAccDescription:xt,getDiagramTitle:vt,setDiagramTitle:bt,clear:qt},pt=class st{static next(n){return new st(n+ ++st.count)}constructor(n){this.id=n,this.href=`#${n}`}toString(){return"url("+this.href+")"}};pt.count=0;let ft=pt;const se={left:Nt,right:Ct,center:Pt,justify:dt},re=function(t,n,s,a){const{securityLevel:u,sankey:_}=rt(),g=Lt.sankey;let p;u==="sandbox"&&(p=G("#i"+n));const i=u==="sandbox"?G(p.nodes()[0].contentDocument.body):G("body"),o=u==="sandbox"?i.select(`[id="${n}"]`):G(`[id="${n}"]`),c=(_==null?void 0:_.width)??g.width,m=(_==null?void 0:_.height)??g.width,b=(_==null?void 0:_.useMaxWidth)??g.useMaxWidth,y=(_==null?void 0:_.nodeAlignment)??g.nodeAlignment,x=(_==null?void 0:_.prefix)??g.prefix,E=(_==null?void 0:_.suffix)??g.suffix,L=(_==null?void 0:_.showValues)??g.showValues,A=a.db.getGraph(),N=se[y];jt().nodeId(d=>d.id).nodeWidth(10).nodePadding(10+(L?15:0)).nodeAlign(N).extent([[0,0],[c,m]])(A);const S=At(Tt);o.append("g").attr("class","nodes").selectAll(".node").data(A.nodes).join("g").attr("class","node").attr("id",d=>(d.uid=ft.next("node-")).id).attr("transform",function(d){return"translate("+d.x0+","+d.y0+")"}).attr("x",d=>d.x0).attr("y",d=>d.y0).append("rect").attr("height",d=>d.y1-d.y0).attr("width",d=>d.x1-d.x0).attr("fill",d=>S(d.id));const M=({id:d,value:w})=>L?`${d} +${x}${Math.round(w*100)/100}${E}`:d;o.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(A.nodes).join("text").attr("x",d=>d.x0(d.y1+d.y0)/2).attr("dy",`${L?"0":"0.35"}em`).attr("text-anchor",d=>d.x0(w.uid=ft.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",w=>w.source.x1).attr("x2",w=>w.target.x0);d.append("stop").attr("offset","0%").attr("stop-color",w=>S(w.source.id)),d.append("stop").attr("offset","100%").attr("stop-color",w=>S(w.target.id))}let P;switch(C){case"gradient":P=d=>d.uid;break;case"source":P=d=>S(d.source.id);break;case"target":P=d=>S(d.target.id);break;default:P=C}O.append("path").attr("d",Xt()).attr("stroke",P).attr("stroke-width",d=>Math.max(1,d.width)),Et(void 0,o,0,b)},oe={draw:re},le=t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),ae=X.parse.bind(X);X.parse=t=>ae(le(t));const de={parser:X,db:ie,renderer:oe};export{de as diagram}; diff --git a/assets/sequenceDiagram-6894f283-8w1yt_A5.js b/assets/sequenceDiagram-6894f283-8w1yt_A5.js new file mode 100644 index 00000000..0c4e6758 --- /dev/null +++ b/assets/sequenceDiagram-6894f283-8w1yt_A5.js @@ -0,0 +1,122 @@ +import{g as we,D as ve,C as _e,c as st,s as $t,b as ke,a as Pe,E as Le,l as X,d as At,j as v,e as Ie,h as Lt,i as Ae,A as B,b0 as nt,b1 as wt,m as te,r as ee,a$ as Bt,aN as se,b2 as Ne}from"./mermaid.core-Bc1j4tiv.js";import{d as Se,a as Me,g as Nt,b as zt,c as Re,e as Ce}from"./svgDrawCommon-5e1cfd1d-B4aG73a4.js";import"./app-Ca-A-iaw.js";var Yt=function(){var t=function(dt,w,k,L){for(k=k||{},L=dt.length;L--;k[dt[L]]=w);return k},e=[1,2],c=[1,3],s=[1,4],i=[2,4],a=[1,9],o=[1,11],l=[1,13],p=[1,14],r=[1,16],x=[1,17],T=[1,18],u=[1,24],g=[1,25],m=[1,26],_=[1,27],I=[1,28],V=[1,29],S=[1,30],O=[1,31],R=[1,32],q=[1,33],z=[1,34],J=[1,35],$=[1,36],H=[1,37],U=[1,38],F=[1,39],W=[1,41],Z=[1,42],K=[1,43],Q=[1,44],tt=[1,45],N=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],rt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],A=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Gt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],ht=[68,69,70],ot=[1,120],Mt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(w,k,L,b,M,h,Et){var d=h.length-1;switch(M){case 3:return b.apply(h[d]),h[d];case 4:case 9:this.$=[];break;case 5:case 10:h[d-1].push(h[d]),this.$=h[d-1];break;case 6:case 7:case 11:case 12:this.$=h[d];break;case 8:case 13:this.$=[];break;case 15:h[d].type="createParticipant",this.$=h[d];break;case 16:h[d-1].unshift({type:"boxStart",boxData:b.parseBoxData(h[d-2])}),h[d-1].push({type:"boxEnd",boxText:h[d-2]}),this.$=h[d-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-2]),sequenceIndexStep:Number(h[d-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-1]};break;case 29:b.setDiagramTitle(h[d].substring(6)),this.$=h[d].substring(6);break;case 30:b.setDiagramTitle(h[d].substring(7)),this.$=h[d].substring(7);break;case 31:this.$=h[d].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=h[d].trim(),b.setAccDescription(this.$);break;case 34:h[d-1].unshift({type:"loopStart",loopText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.LOOP_START}),h[d-1].push({type:"loopEnd",loopText:h[d-2],signalType:b.LINETYPE.LOOP_END}),this.$=h[d-1];break;case 35:h[d-1].unshift({type:"rectStart",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_START}),h[d-1].push({type:"rectEnd",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_END}),this.$=h[d-1];break;case 36:h[d-1].unshift({type:"optStart",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_START}),h[d-1].push({type:"optEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_END}),this.$=h[d-1];break;case 37:h[d-1].unshift({type:"altStart",altText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.ALT_START}),h[d-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=h[d-1];break;case 38:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 39:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_OVER_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 40:h[d-1].unshift({type:"criticalStart",criticalText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.CRITICAL_START}),h[d-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=h[d-1];break;case 41:h[d-1].unshift({type:"breakStart",breakText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_START}),h[d-1].push({type:"breakEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_END}),this.$=h[d-1];break;case 43:this.$=h[d-3].concat([{type:"option",optionText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.CRITICAL_OPTION},h[d]]);break;case 45:this.$=h[d-3].concat([{type:"and",parText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.PAR_AND},h[d]]);break;case 47:this.$=h[d-3].concat([{type:"else",altText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.ALT_ELSE},h[d]]);break;case 48:h[d-3].draw="participant",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 49:h[d-1].draw="participant",h[d-1].type="addParticipant",this.$=h[d-1];break;case 50:h[d-3].draw="actor",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 51:h[d-1].draw="actor",h[d-1].type="addParticipant",this.$=h[d-1];break;case 52:h[d-1].type="destroyParticipant",this.$=h[d-1];break;case 53:this.$=[h[d-1],{type:"addNote",placement:h[d-2],actor:h[d-1].actor,text:h[d]}];break;case 54:h[d-2]=[].concat(h[d-1],h[d-1]).slice(0,2),h[d-2][0]=h[d-2][0].actor,h[d-2][1]=h[d-2][1].actor,this.$=[h[d-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:h[d-2].slice(0,2),text:h[d]}];break;case 55:this.$=[h[d-1],{type:"addLinks",actor:h[d-1].actor,text:h[d]}];break;case 56:this.$=[h[d-1],{type:"addALink",actor:h[d-1].actor,text:h[d]}];break;case 57:this.$=[h[d-1],{type:"addProperties",actor:h[d-1].actor,text:h[d]}];break;case 58:this.$=[h[d-1],{type:"addDetails",actor:h[d-1].actor,text:h[d]}];break;case 61:this.$=[h[d-2],h[d]];break;case 62:this.$=h[d];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]}];break;case 66:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-4]}];break;case 67:this.$=[h[d-3],h[d-1],{type:"addMessage",from:h[d-3].actor,to:h[d-1].actor,signalType:h[d-2],msg:h[d]}];break;case 68:this.$={type:"addParticipant",actor:h[d]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.DOTTED;break;case 73:this.$=b.LINETYPE.SOLID_CROSS;break;case 74:this.$=b.LINETYPE.DOTTED_CROSS;break;case 75:this.$=b.LINETYPE.SOLID_POINT;break;case 76:this.$=b.LINETYPE.DOTTED_POINT;break;case 77:this.$=b.parseMessage(h[d].trim().substring(1));break}},table:[{3:1,4:e,5:c,6:s},{1:[3]},{3:5,4:e,5:c,6:s},{3:6,4:e,5:c,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,5]),{9:47,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,7]),t(y,[2,8]),t(y,[2,14]),{12:48,50:H,52:U,53:F},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:N},{22:55,70:N},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(y,[2,29]),t(y,[2,30]),{32:[1,61]},{34:[1,62]},t(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:N},{22:72,70:N},{22:73,70:N},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:N},{22:88,70:N},{22:89,70:N},{22:90,70:N},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(y,[2,6]),t(y,[2,15]),t(P,[2,9],{10:91}),t(y,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(y,[2,21]),{5:[1,95]},{5:[1,96]},t(y,[2,24]),t(y,[2,25]),t(y,[2,26]),t(y,[2,27]),t(y,[2,28]),t(y,[2,31]),t(y,[2,32]),t(j,i,{7:97}),t(j,i,{7:98}),t(j,i,{7:99}),t(rt,i,{40:100,7:101}),t(A,i,{42:102,7:103}),t(A,i,{7:103,42:104}),t(Gt,i,{45:105,7:106}),t(j,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:N},t(ht,[2,69]),t(ht,[2,70]),t(ht,[2,71]),t(ht,[2,72]),t(ht,[2,73]),t(ht,[2,74]),t(ht,[2,75]),t(ht,[2,76]),{22:116,70:N},{22:118,58:117,70:N},{70:[2,63]},{70:[2,64]},{56:119,79:ot},{56:121,79:ot},{56:122,79:ot},{56:123,79:ot},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:H,52:U,53:F},{5:[1,129]},t(y,[2,19]),t(y,[2,20]),t(y,[2,22]),t(y,[2,23]),{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,130],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,131],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,132],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,133]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,46],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,49:[1,134],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,135]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,44],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,48:[1,136],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,137]},{16:[1,138]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,42],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,47:[1,139],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,140],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{15:[1,141]},t(y,[2,49]),{15:[1,142]},t(y,[2,51]),t(y,[2,52]),{22:143,70:N},{22:144,70:N},{56:145,79:ot},{56:146,79:ot},{56:147,79:ot},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(y,[2,16]),t(P,[2,10]),{12:149,50:H,52:U,53:F},t(P,[2,12]),t(P,[2,13]),t(y,[2,18]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),{15:[1,150]},t(y,[2,38]),{15:[1,151]},t(y,[2,39]),t(y,[2,40]),{15:[1,152]},t(y,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:ot},{56:156,79:ot},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:N},t(P,[2,11]),t(rt,i,{7:101,40:158}),t(A,i,{7:103,42:159}),t(Gt,i,{7:106,45:160}),t(y,[2,48]),t(y,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(w,k){if(k.recoverable)this.trace(w);else{var L=new Error(w);throw L.hash=k,L}},parse:function(w){var k=this,L=[0],b=[],M=[null],h=[],Et=this.table,d="",_t=0,Xt=0,Te=2,Jt=1,be=h.slice.call(arguments,1),Y=Object.create(this.lexer),pt={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(pt.yy[Ct]=this.yy[Ct]);Y.setInput(w,pt.yy),pt.yy.lexer=Y,pt.yy.parser=this,typeof Y.yylloc>"u"&&(Y.yylloc={});var Dt=Y.yylloc;h.push(Dt);var Ee=Y.options&&Y.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var lt;return lt=b.pop()||Y.lex()||Jt,typeof lt!="number"&&(lt instanceof Array&&(b=lt,lt=b.pop()),lt=k.symbols_[lt]||lt),lt}for(var G,ut,et,Vt,yt={},kt,ct,Zt,Pt;;){if(ut=L[L.length-1],this.defaultActions[ut]?et=this.defaultActions[ut]:((G===null||typeof G>"u")&&(G=me()),et=Et[ut]&&Et[ut][G]),typeof et>"u"||!et.length||!et[0]){var Ot="";Pt=[];for(kt in Et[ut])this.terminals_[kt]&&kt>Te&&Pt.push("'"+this.terminals_[kt]+"'");Y.showPosition?Ot="Parse error on line "+(_t+1)+`: +`+Y.showPosition()+` +Expecting `+Pt.join(", ")+", got '"+(this.terminals_[G]||G)+"'":Ot="Parse error on line "+(_t+1)+": Unexpected "+(G==Jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(Ot,{text:Y.match,token:this.terminals_[G]||G,line:Y.yylineno,loc:Dt,expected:Pt})}if(et[0]instanceof Array&&et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ut+", token: "+G);switch(et[0]){case 1:L.push(G),M.push(Y.yytext),h.push(Y.yylloc),L.push(et[1]),G=null,Xt=Y.yyleng,d=Y.yytext,_t=Y.yylineno,Dt=Y.yylloc;break;case 2:if(ct=this.productions_[et[1]][1],yt.$=M[M.length-ct],yt._$={first_line:h[h.length-(ct||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(ct||1)].first_column,last_column:h[h.length-1].last_column},Ee&&(yt._$.range=[h[h.length-(ct||1)].range[0],h[h.length-1].range[1]]),Vt=this.performAction.apply(yt,[d,Xt,_t,pt.yy,et[1],M,h].concat(be)),typeof Vt<"u")return Vt;ct&&(L=L.slice(0,-1*ct*2),M=M.slice(0,-1*ct),h=h.slice(0,-1*ct)),L.push(this.productions_[et[1]][0]),M.push(yt.$),h.push(yt._$),Zt=Et[L[L.length-2]][L[L.length-1]],L.push(Zt);break;case 3:return!0}}return!0}},ye=function(){var dt={EOF:1,parseError:function(k,L){if(this.yy.parser)this.yy.parser.parseError(k,L);else throw new Error(k)},setInput:function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},unput:function(w){var k=w.length,L=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===b.length?this.yylloc.first_column:0)+b[b.length-L.length].length-L[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(w){this.unput(this.match.slice(w))},pastInput:function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},test_match:function(w,k){var L,b,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),b=w[0].match(/(?:\r\n?|\n).*/g),b&&(this.yylineno+=b.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:b?b[b.length-1].length-b[b.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],L=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var h in M)this[h]=M[h];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,L,b;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),h=0;hk[0].length)){if(k=L,b=h,this.options.backtrack_lexer){if(w=this.test_match(L,M[h]),w!==!1)return w;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(w=this.test_match(k,M[b]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var k=this.next();return k||this.lex()},begin:function(k){this.conditionStack.push(k)},popState:function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},pushState:function(k){this.begin(k)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(k,L,b,M){switch(b){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return L.yytext=L.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return L.yytext=L.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return dt}();Mt.lexer=ye;function Rt(){this.yy={}}return Rt.prototype=Mt,Mt.Parser=Rt,new Rt}();Yt.parser=Yt;const De=Yt;class Ve{constructor(e){this.init=e,this.records=this.init()}reset(){this.records=this.init()}}const E=new Ve(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),Oe=function(t){E.records.boxes.push({name:t.text,wrap:t.wrap===void 0&>()||!!t.wrap,fill:t.color,actorKeys:[]}),E.records.currentBox=E.records.boxes.slice(-1)[0]},Ft=function(t,e,c,s){let i=E.records.currentBox;const a=E.records.actors[t];if(a){if(E.records.currentBox&&a.box&&E.records.currentBox!==a.box)throw new Error("A same participant should only be defined in one Box: "+a.name+" can't be in '"+a.box.name+"' and in '"+E.records.currentBox.name+"' at the same time.");if(i=a.box?a.box:E.records.currentBox,a.box=i,a&&e===a.name&&c==null)return}(c==null||c.text==null)&&(c={text:e,wrap:null,type:s}),(s==null||c.text==null)&&(c={text:e,wrap:null,type:s}),E.records.actors[t]={box:i,name:e,description:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,prevActor:E.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:s||"participant"},E.records.prevActor&&E.records.actors[E.records.prevActor]&&(E.records.actors[E.records.prevActor].nextActor=t),E.records.currentBox&&E.records.currentBox.actorKeys.push(t),E.records.prevActor=t},Be=t=>{let e,c=0;for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},o}return E.records.messages.push({from:t,to:e,message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,type:s,activate:i}),!0},Fe=function(){return E.records.boxes.length>0},We=function(){return E.records.boxes.some(t=>t.name)},qe=function(){return E.records.messages},ze=function(){return E.records.boxes},He=function(){return E.records.actors},Ue=function(){return E.records.createdActors},Ke=function(){return E.records.destroyedActors},vt=function(t){return E.records.actors[t]},Ge=function(){return Object.keys(E.records.actors)},Xe=function(){E.records.sequenceNumbersEnabled=!0},Je=function(){E.records.sequenceNumbersEnabled=!1},Ze=()=>E.records.sequenceNumbersEnabled,Qe=function(t){E.records.wrapEnabled=t},gt=()=>E.records.wrapEnabled!==void 0?E.records.wrapEnabled:st().sequence.wrap,je=function(){E.reset(),Le()},$e=function(t){const e=t.trim(),c={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return X.debug("parseMessage:",c),c},t0=function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let c=e!=null&&e[1]?e[1].trim():"transparent",s=e!=null&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",c)||(c="transparent",s=t.trim());else{const i=new Option().style;i.color=c,i.color!==c&&(c="transparent",s=t.trim())}return{color:c,text:s!==void 0?At(s.replace(/^:?(?:no)?wrap:/,""),st()):void 0,wrap:s!==void 0?s.match(/^:?wrap:/)!==null?!0:s.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},mt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},e0={FILLED:0,OPEN:1},s0={LEFTOF:0,RIGHTOF:1,OVER:2},re=function(t,e,c){const s={actor:t,placement:e,message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap},i=[].concat(t,t);E.records.notes.push(s),E.records.messages.push({from:i[0],to:i[1],message:c.text,wrap:c.wrap===void 0&>()||!!c.wrap,type:mt.NOTE,placement:e})},ie=function(t,e){const c=vt(t);try{let s=At(e.text,st());s=s.replace(/&/g,"&"),s=s.replace(/=/g,"=");const i=JSON.parse(s);Ht(c,i)}catch(s){X.error("error while parsing actor link text",s)}},r0=function(t,e){const c=vt(t);try{const o={};let l=At(e.text,st());var s=l.indexOf("@");l=l.replace(/&/g,"&"),l=l.replace(/=/g,"=");var i=l.slice(0,s-1).trim(),a=l.slice(s+1).trim();o[i]=a,Ht(c,o)}catch(o){X.error("error while parsing actor link text",o)}};function Ht(t,e){if(t.links==null)t.links=e;else for(let c in e)t.links[c]=e[c]}const ae=function(t,e){const c=vt(t);try{let s=At(e.text,st());const i=JSON.parse(s);ne(c,i)}catch(s){X.error("error while parsing actor properties text",s)}};function ne(t,e){if(t.properties==null)t.properties=e;else for(let c in e)t.properties[c]=e[c]}function i0(){E.records.currentBox=void 0}const oe=function(t,e){const c=vt(t),s=document.getElementById(e.text);try{const i=s.innerHTML,a=JSON.parse(i);a.properties&&ne(c,a.properties),a.links&&Ht(c,a.links)}catch(i){X.error("error while parsing actor details text",i)}},a0=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},ce=function(t){if(Array.isArray(t))t.forEach(function(e){ce(e)});else switch(t.type){case"sequenceIndex":E.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":Ft(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(E.records.actors[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");E.records.lastCreated=t.actor,Ft(t.actor,t.actor,t.description,t.draw),E.records.createdActors[t.actor]=E.records.messages.length;break;case"destroyParticipant":E.records.lastDestroyed=t.actor,E.records.destroyedActors[t.actor]=E.records.messages.length;break;case"activeStart":C(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":C(t.actor,void 0,void 0,t.signalType);break;case"addNote":re(t.actor,t.placement,t.text);break;case"addLinks":ie(t.actor,t.text);break;case"addALink":r0(t.actor,t.text);break;case"addProperties":ae(t.actor,t.text);break;case"addDetails":oe(t.actor,t.text);break;case"addMessage":if(E.records.lastCreated){if(t.to!==E.records.lastCreated)throw new Error("The created participant "+E.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");E.records.lastCreated=void 0}else if(E.records.lastDestroyed){if(t.to!==E.records.lastDestroyed&&t.from!==E.records.lastDestroyed)throw new Error("The destroyed participant "+E.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");E.records.lastDestroyed=void 0}C(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":Oe(t.boxData);break;case"boxEnd":i0();break;case"loopStart":C(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":C(void 0,void 0,void 0,t.signalType);break;case"rectStart":C(void 0,void 0,t.color,t.signalType);break;case"rectEnd":C(void 0,void 0,void 0,t.signalType);break;case"optStart":C(void 0,void 0,t.optText,t.signalType);break;case"optEnd":C(void 0,void 0,void 0,t.signalType);break;case"altStart":C(void 0,void 0,t.altText,t.signalType);break;case"else":C(void 0,void 0,t.altText,t.signalType);break;case"altEnd":C(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":$t(t.text);break;case"parStart":C(void 0,void 0,t.parText,t.signalType);break;case"and":C(void 0,void 0,t.parText,t.signalType);break;case"parEnd":C(void 0,void 0,void 0,t.signalType);break;case"criticalStart":C(void 0,void 0,t.criticalText,t.signalType);break;case"option":C(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":C(void 0,void 0,void 0,t.signalType);break;case"breakStart":C(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":C(void 0,void 0,void 0,t.signalType);break}},Qt={addActor:Ft,addMessage:Ye,addSignal:C,addLinks:ie,addDetails:oe,addProperties:ae,autoWrap:gt,setWrap:Qe,enableSequenceNumbers:Xe,disableSequenceNumbers:Je,showSequenceNumbers:Ze,getMessages:qe,getActors:He,getCreatedActors:Ue,getDestroyedActors:Ke,getActor:vt,getActorKeys:Ge,getActorProperty:a0,getAccTitle:we,getBoxes:ze,getDiagramTitle:ve,setDiagramTitle:_e,getConfig:()=>st().sequence,clear:je,parseMessage:$e,parseBoxData:t0,LINETYPE:mt,ARROWTYPE:e0,PLACEMENT:s0,addNote:re,setAccTitle:$t,apply:ce,setAccDescription:ke,getAccDescription:Pe,hasAtLeastOneBox:Fe,hasAtLeastOneBoxWithTitle:We},n0=t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,o0=n0,ft=18*2,le="actor-top",he="actor-bottom",Ut=function(t,e){return Se(t,e)},c0=function(t,e,c,s,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const a=e.links,o=e.actorCnt,l=e.rectData;var p="none";i&&(p="block !important");const r=t.append("g");r.attr("id","actor"+o+"_popup"),r.attr("class","actorPopupMenu"),r.attr("display",p);var x="";l.class!==void 0&&(x=" "+l.class);let T=l.width>c?l.width:c;const u=r.append("rect");if(u.attr("class","actorPopupMenuPanel"+x),u.attr("x",l.x),u.attr("y",l.height),u.attr("fill",l.fill),u.attr("stroke",l.stroke),u.attr("width",T),u.attr("height",l.height),u.attr("rx",l.rx),u.attr("ry",l.ry),a!=null){var g=20;for(let I in a){var m=r.append("a"),_=te.sanitizeUrl(a[I]);m.attr("xlink:href",_),m.attr("target","_blank"),k0(s)(I,m,l.x+10,l.height+g,T,20,{class:"actor"},s),g+=30}}return u.attr("height",g),{height:l.height+g,width:T}},l0=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},It=async function(t,e,c=null){let s=t.append("foreignObject");const i=await ee(e.text,Bt()),o=s.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(s.attr("height",Math.round(o.height)).attr("width",Math.round(o.width)),e.class==="noteText"){const l=t.node().firstChild;l.setAttribute("height",o.height+2*e.textMargin);const p=l.getBBox();s.attr("x",Math.round(p.x+p.width/2-o.width/2)).attr("y",Math.round(p.y+p.height/2-o.height/2))}else if(c){let{startx:l,stopx:p,starty:r}=c;if(l>p){const x=l;l=p,p=x}s.attr("x",Math.round(l+Math.abs(l-p)/2-o.width/2)),e.class==="loopText"?s.attr("y",Math.round(r)):s.attr("y",Math.round(r-o.height))}return[s]},bt=function(t,e){let c=0,s=0;const i=e.text.split(v.lineBreakRegex),[a,o]=se(e.fontSize);let l=[],p=0,r=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":r=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":r=()=>Math.round(e.y+(c+s+e.textMargin)/2);break;case"bottom":case"end":r=()=>Math.round(e.y+(c+s+2*e.textMargin)-e.textMargin);break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[x,T]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(p=x*a);const u=t.append("text");u.attr("x",e.x),u.attr("y",r()),e.anchor!==void 0&&u.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&u.style("font-family",e.fontFamily),o!==void 0&&u.style("font-size",o),e.fontWeight!==void 0&&u.style("font-weight",e.fontWeight),e.fill!==void 0&&u.attr("fill",e.fill),e.class!==void 0&&u.attr("class",e.class),e.dy!==void 0?u.attr("dy",e.dy):p!==0&&u.attr("dy",p);const g=T||Ne;if(e.tspan){const m=u.append("tspan");m.attr("x",e.x),e.fill!==void 0&&m.attr("fill",e.fill),m.text(g)}else u.text(g);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(s+=(u._groups||u)[0][0].getBBox().height,c=s),l.push(u)}return l},de=function(t,e){function c(i,a,o,l,p){return i+","+a+" "+(i+o)+","+a+" "+(i+o)+","+(a+l-p)+" "+(i+o-p*1.2)+","+(a+l)+" "+i+","+(a+l)}const s=t.append("polygon");return s.attr("points",c(e.x,e.y,e.width,e.height,7)),s.attr("class","labelBox"),e.y=e.y+e.height/2,bt(t,e),s};let at=-1;const pe=(t,e,c,s)=>{t.select&&c.forEach(i=>{const a=e[i],o=t.select("#actor"+a.actorCnt);!s.mirrorActors&&a.stopy?o.attr("y2",a.stopy+a.height/2):s.mirrorActors&&o.attr("y2",a.stopy)})},h0=async function(t,e,c,s){const i=s?e.stopy:e.starty,a=e.x+e.width/2,o=i+5,l=t.append("g").lower();var p=l;s||(at++,Object.keys(e.links||{}).length&&!c.forceMenus&&p.attr("onclick",l0(`actor${at}_popup`)).attr("cursor","pointer"),p.append("line").attr("id","actor"+at).attr("x1",a).attr("y1",o).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),p=l.append("g"),e.actorCnt=at,e.links!=null&&p.attr("id","root-"+at));const r=Nt();var x="actor";e.properties!=null&&e.properties.class?x=e.properties.class:r.fill="#eaeaea",s?x+=` ${he}`:x+=` ${le}`,r.x=e.x,r.y=i,r.width=e.width,r.height=e.height,r.class=x,r.rx=3,r.ry=3,r.name=e.name;const T=Ut(p,r);if(e.rectData=r,e.properties!=null&&e.properties.icon){const g=e.properties.icon.trim();g.charAt(0)==="@"?Re(p,r.x+r.width-20,r.y+10,g.substr(1)):Ce(p,r.x+r.width-20,r.y+10,g)}await Kt(c,nt(e.description))(e.description,p,r.x,r.y,r.width,r.height,{class:"actor"},c);let u=e.height;if(T.node){const g=T.node().getBBox();e.height=g.height,u=g.height}return u},d0=async function(t,e,c,s){const i=s?e.stopy:e.starty,a=e.x+e.width/2,o=i+80;t.lower(),s||(at++,t.append("line").attr("id","actor"+at).attr("x1",a).attr("y1",o).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=at);const l=t.append("g");let p="actor-man";s?p+=` ${he}`:p+=` ${le}`,l.attr("class",p),l.attr("name",e.name);const r=Nt();r.x=e.x,r.y=i,r.fill="#eaeaea",r.width=e.width,r.height=e.height,r.class="actor",r.rx=3,r.ry=3,l.append("line").attr("id","actor-man-torso"+at).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),l.append("line").attr("id","actor-man-arms"+at).attr("x1",a-ft/2).attr("y1",i+33).attr("x2",a+ft/2).attr("y2",i+33),l.append("line").attr("x1",a-ft/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),l.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+ft/2-2).attr("y2",i+60);const x=l.append("circle");x.attr("cx",e.x+e.width/2),x.attr("cy",i+10),x.attr("r",15),x.attr("width",e.width),x.attr("height",e.height);const T=l.node().getBBox();return e.height=T.height,await Kt(c,nt(e.description))(e.description,l,r.x,r.y+35,r.width,r.height,{class:"actor"},c),e.height},p0=async function(t,e,c,s){switch(e.type){case"actor":return await d0(t,e,c,s);case"participant":return await h0(t,e,c,s)}},u0=async function(t,e,c){const i=t.append("g");ue(i,e),e.name&&await Kt(c)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},c),i.lower()},f0=function(t){return t.append("g")},g0=function(t,e,c,s,i){const a=Nt(),o=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=c-e.starty,Ut(o,a)},x0=async function(t,e,c,s){const{boxMargin:i,boxTextMargin:a,labelBoxHeight:o,labelBoxWidth:l,messageFontFamily:p,messageFontSize:r,messageFontWeight:x}=s,T=t.append("g"),u=function(_,I,V,S){return T.append("line").attr("x1",_).attr("y1",I).attr("x2",V).attr("y2",S).attr("class","loopLine")};u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(_){u(e.startx,_.y,e.stopx,_.y).style("stroke-dasharray","3, 3")});let g=zt();g.text=c,g.x=e.startx,g.y=e.starty,g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.anchor="middle",g.valign="middle",g.tspan=!1,g.width=l||50,g.height=o||20,g.textMargin=a,g.class="labelText",de(T,g),g=fe(),g.text=e.title,g.x=e.startx+l/2+(e.stopx-e.startx)/2,g.y=e.starty+i+a,g.anchor="middle",g.valign="middle",g.textMargin=a,g.class="loopText",g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.wrap=!0;let m=nt(g.text)?await It(T,g,e):bt(T,g);if(e.sectionTitles!==void 0){for(const[_,I]of Object.entries(e.sectionTitles))if(I.message){g.text=I.message,g.x=e.startx+(e.stopx-e.startx)/2,g.y=e.sections[_].y+i+a,g.class="loopText",g.anchor="middle",g.valign="middle",g.tspan=!1,g.fontFamily=p,g.fontSize=r,g.fontWeight=x,g.wrap=e.wrap,nt(g.text)?(e.starty=e.sections[_].y,await It(T,g,e)):bt(T,g);let V=Math.round(m.map(S=>(S._groups||S)[0][0].getBBox().height).reduce((S,O)=>S+O));e.sections[_].height+=V-(i+a)}}return e.height=Math.round(e.stopy-e.starty),T},ue=function(t,e){Me(t,e)},y0=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},T0=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},b0=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},E0=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},m0=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},w0=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},v0=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},fe=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},_0=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Kt=function(){function t(a,o,l,p,r,x,T){const u=o.append("text").attr("x",l+r/2).attr("y",p+x/2+5).style("text-anchor","middle").text(a);i(u,T)}function e(a,o,l,p,r,x,T,u){const{actorFontSize:g,actorFontFamily:m,actorFontWeight:_}=u,[I,V]=se(g),S=a.split(v.lineBreakRegex);for(let O=0;Ot.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,xe(st())},updateVal:function(t,e,c,s){t[e]===void 0?t[e]=c:t[e]=s(c,t[e])},updateBounds:function(t,e,c,s){const i=this;let a=0;function o(l){return function(r){a++;const x=i.sequenceItems.length-a+1;i.updateVal(r,"starty",e-x*n.boxMargin,Math.min),i.updateVal(r,"stopy",s+x*n.boxMargin,Math.max),i.updateVal(f.data,"startx",t-x*n.boxMargin,Math.min),i.updateVal(f.data,"stopx",c+x*n.boxMargin,Math.max),l!=="activation"&&(i.updateVal(r,"startx",t-x*n.boxMargin,Math.min),i.updateVal(r,"stopx",c+x*n.boxMargin,Math.max),i.updateVal(f.data,"starty",e-x*n.boxMargin,Math.min),i.updateVal(f.data,"stopy",s+x*n.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,c,s){const i=v.getMin(t,c),a=v.getMax(t,c),o=v.getMin(e,s),l=v.getMax(e,s);this.updateVal(f.data,"startx",i,Math.min),this.updateVal(f.data,"starty",o,Math.min),this.updateVal(f.data,"stopx",a,Math.max),this.updateVal(f.data,"stopy",l,Math.max),this.updateBounds(i,o,a,l)},newActivation:function(t,e,c){const s=c[t.from.actor],i=St(t.from.actor).length||0,a=s.x+s.width/2+(i-1)*n.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+n.activationWidth,stopy:void 0,actor:t.from.actor,anchored:D.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(c){return c.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:f.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=v.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},P0=async function(t,e){f.bumpVerticalPos(n.boxMargin),e.height=n.boxMargin,e.starty=f.getVerticalPos();const c=Nt();c.x=e.startx,c.y=e.starty,c.width=e.width||n.width,c.class="note";const s=t.append("g"),i=D.drawRect(s,c),a=zt();a.x=e.startx,a.y=e.starty,a.width=c.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=n.noteFontFamily,a.fontSize=n.noteFontSize,a.fontWeight=n.noteFontWeight,a.anchor=n.noteAlign,a.textMargin=n.noteMargin,a.valign="center";const o=nt(a.text)?await It(s,a):bt(s,a),l=Math.round(o.map(p=>(p._groups||p)[0][0].getBBox().height).reduce((p,r)=>p+r));i.attr("height",l+2*n.noteMargin),e.height+=l+2*n.noteMargin,f.bumpVerticalPos(l+2*n.noteMargin),e.stopy=e.starty+l+2*n.noteMargin,e.stopx=e.startx+c.width,f.insert(e.startx,e.starty,e.stopx,e.stopy),f.models.addNote(e)},xt=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Tt=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Wt=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});async function L0(t,e){f.bumpVerticalPos(10);const{startx:c,stopx:s,message:i}=e,a=v.splitBreaks(i).length,o=nt(i),l=o?await wt(i,st()):B.calculateTextDimensions(i,xt(n));if(!o){const T=l.height/a;e.height+=T,f.bumpVerticalPos(T)}let p,r=l.height-10;const x=l.width;if(c===s){p=f.getVerticalPos()+r,n.rightAngles||(r+=n.boxMargin,p=f.getVerticalPos()+r),r+=30;const T=v.getMax(x/2,n.width/2);f.insert(c-T,f.getVerticalPos()-10+r,s+T,f.getVerticalPos()+30+r)}else r+=n.boxMargin,p=f.getVerticalPos()+r,f.insert(c,p-10,s,p);return f.bumpVerticalPos(r),e.height+=r,e.stopy=e.starty+e.height,f.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),p}const I0=async function(t,e,c,s){const{startx:i,stopx:a,starty:o,message:l,type:p,sequenceIndex:r,sequenceVisible:x}=e,T=B.calculateTextDimensions(l,xt(n)),u=zt();u.x=i,u.y=o+10,u.width=a-i,u.class="messageText",u.dy="1em",u.text=l,u.fontFamily=n.messageFontFamily,u.fontSize=n.messageFontSize,u.fontWeight=n.messageFontWeight,u.anchor=n.messageAlign,u.valign="center",u.textMargin=n.wrapPadding,u.tspan=!1,nt(u.text)?await It(t,u,{startx:i,stopx:a,starty:c}):bt(t,u);const g=T.width;let m;i===a?n.rightAngles?m=t.append("path").attr("d",`M ${i},${c} H ${i+v.getMax(n.width/2,g/2)} V ${c+25} H ${i}`):m=t.append("path").attr("d","M "+i+","+c+" C "+(i+60)+","+(c-10)+" "+(i+60)+","+(c+30)+" "+i+","+(c+20)):(m=t.append("line"),m.attr("x1",i),m.attr("y1",c),m.attr("x2",a),m.attr("y2",c)),p===s.db.LINETYPE.DOTTED||p===s.db.LINETYPE.DOTTED_CROSS||p===s.db.LINETYPE.DOTTED_POINT||p===s.db.LINETYPE.DOTTED_OPEN?(m.style("stroke-dasharray","3, 3"),m.attr("class","messageLine1")):m.attr("class","messageLine0");let _="";n.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),m.attr("stroke-width",2),m.attr("stroke","none"),m.style("fill","none"),(p===s.db.LINETYPE.SOLID||p===s.db.LINETYPE.DOTTED)&&m.attr("marker-end","url("+_+"#arrowhead)"),(p===s.db.LINETYPE.SOLID_POINT||p===s.db.LINETYPE.DOTTED_POINT)&&m.attr("marker-end","url("+_+"#filled-head)"),(p===s.db.LINETYPE.SOLID_CROSS||p===s.db.LINETYPE.DOTTED_CROSS)&&m.attr("marker-end","url("+_+"#crosshead)"),(x||n.showSequenceNumbers)&&(m.attr("marker-start","url("+_+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",c+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(r))},A0=async function(t,e,c,s,i,a,o){let l=0,p=0,r,x=0;for(const T of s){const u=e[T],g=u.box;r&&r!=g&&(f.models.addBox(r),p+=n.boxMargin+r.margin),g&&g!=r&&(g.x=l+p,g.y=i,p+=g.margin),u.width=u.width||n.width,u.height=v.getMax(u.height||n.height,n.height),u.margin=u.margin||n.actorMargin,x=v.getMax(x,u.height),c[u.name]&&(p+=u.width/2),u.x=l+p,u.starty=f.getVerticalPos(),f.insert(u.x,i,u.x+u.width,u.height),l+=u.width+p,u.box&&(u.box.width=l+g.margin-u.box.x),p=u.margin,r=u.box,f.models.addActor(u)}r&&!o&&f.models.addBox(r),f.bumpVerticalPos(x)},qt=async function(t,e,c,s){if(s){let i=0;f.bumpVerticalPos(n.boxMargin*2);for(const a of c){const o=e[a];o.stopy||(o.stopy=f.getVerticalPos());const l=await D.drawActor(t,o,n,!0);i=v.getMax(i,l)}f.bumpVerticalPos(i+n.boxMargin)}else for(const i of c){const a=e[i];await D.drawActor(t,a,n,!1)}},ge=function(t,e,c,s){let i=0,a=0;for(const o of c){const l=e[o],p=R0(l),r=D.drawPopup(t,l,p,n,n.forceMenus,s);r.height>i&&(i=r.height),r.width+l.x>a&&(a=r.width+l.x)}return{maxHeight:i,maxWidth:a}},xe=function(t){Ie(n,t),t.fontFamily&&(n.actorFontFamily=n.noteFontFamily=n.messageFontFamily=t.fontFamily),t.fontSize&&(n.actorFontSize=n.noteFontSize=n.messageFontSize=t.fontSize),t.fontWeight&&(n.actorFontWeight=n.noteFontWeight=n.messageFontWeight=t.fontWeight)},St=function(t){return f.activations.filter(function(e){return e.actor===t})},jt=function(t,e){const c=e[t],s=St(t),i=s.reduce(function(o,l){return v.getMin(o,l.startx)},c.x+c.width/2-1),a=s.reduce(function(o,l){return v.getMax(o,l.stopx)},c.x+c.width/2+1);return[i,a]};function it(t,e,c,s,i){f.bumpVerticalPos(c);let a=s;if(e.id&&e.message&&t[e.id]){const o=t[e.id].width,l=xt(n);e.message=B.wrapLabel(`[${e.message}]`,o-2*n.wrapPadding,l),e.width=o,e.wrap=!0;const p=B.calculateTextDimensions(e.message,l),r=v.getMax(p.height,n.labelBoxHeight);a=s+r,X.debug(`${r} - ${e.message}`)}i(e),f.bumpVerticalPos(a)}function N0(t,e,c,s,i,a,o){function l(r,x){r.x{y.add(P.from),y.add(P.to)}),m=m.filter(P=>y.has(P))}await A0(r,x,T,m,0,_,!1);const R=await O0(_,x,O,s);D.insertArrowHead(r),D.insertArrowCrossHead(r),D.insertArrowFilledHead(r),D.insertSequenceNumber(r);function q(y,P){const j=f.endActivation(y);j.starty+18>P&&(j.starty=P-6,P+=12),D.drawActivation(r,j,P,n,St(y.from.actor).length),f.insert(j.startx,P-10,j.stopx,P)}let z=1,J=1;const $=[],H=[];let U=0;for(const y of _){let P,j,rt;switch(y.type){case s.db.LINETYPE.NOTE:f.resetVerticalPos(),j=y.noteModel,await P0(r,j);break;case s.db.LINETYPE.ACTIVE_START:f.newActivation(y,r,x);break;case s.db.LINETYPE.ACTIVE_END:q(y,f.getVerticalPos());break;case s.db.LINETYPE.LOOP_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.LOOP_END:P=f.endLoop(),await D.drawLoop(r,P,"loop",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.RECT_START:it(R,y,n.boxMargin,n.boxMargin,A=>f.newLoop(void 0,A.message));break;case s.db.LINETYPE.RECT_END:P=f.endLoop(),H.push(P),f.models.addLoop(P),f.bumpVerticalPos(P.stopy-f.getVerticalPos());break;case s.db.LINETYPE.OPT_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.OPT_END:P=f.endLoop(),await D.drawLoop(r,P,"opt",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.ALT_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.ALT_ELSE:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.ALT_END:P=f.endLoop(),await D.drawLoop(r,P,"alt",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A)),f.saveVerticalPos();break;case s.db.LINETYPE.PAR_AND:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.PAR_END:P=f.endLoop(),await D.drawLoop(r,P,"par",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.AUTONUMBER:z=y.message.start||z,J=y.message.step||J,y.message.visible?s.db.enableSequenceNumbers():s.db.disableSequenceNumbers();break;case s.db.LINETYPE.CRITICAL_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.CRITICAL_OPTION:it(R,y,n.boxMargin+n.boxTextMargin,n.boxMargin,A=>f.addSectionToLoop(A));break;case s.db.LINETYPE.CRITICAL_END:P=f.endLoop(),await D.drawLoop(r,P,"critical",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;case s.db.LINETYPE.BREAK_START:it(R,y,n.boxMargin,n.boxMargin+n.boxTextMargin,A=>f.newLoop(A));break;case s.db.LINETYPE.BREAK_END:P=f.endLoop(),await D.drawLoop(r,P,"break",n),f.bumpVerticalPos(P.stopy-f.getVerticalPos()),f.models.addLoop(P);break;default:try{rt=y.msgModel,rt.starty=f.getVerticalPos(),rt.sequenceIndex=z,rt.sequenceVisible=s.db.showSequenceNumbers();const A=await L0(r,rt);N0(y,rt,A,U,x,T,u),$.push({messageModel:rt,lineStartY:A}),f.models.addMessage(rt)}catch(A){X.error("error while drawing message",A)}}[s.db.LINETYPE.SOLID_OPEN,s.db.LINETYPE.DOTTED_OPEN,s.db.LINETYPE.SOLID,s.db.LINETYPE.DOTTED,s.db.LINETYPE.SOLID_CROSS,s.db.LINETYPE.DOTTED_CROSS,s.db.LINETYPE.SOLID_POINT,s.db.LINETYPE.DOTTED_POINT].includes(y.type)&&(z=z+J),U++}X.debug("createdActors",T),X.debug("destroyedActors",u),await qt(r,x,m,!1);for(const y of $)await I0(r,y.messageModel,y.lineStartY,s);n.mirrorActors&&await qt(r,x,m,!0),H.forEach(y=>D.drawBackgroundRect(r,y)),pe(r,x,m,n);for(const y of f.models.boxes)y.height=f.getVerticalPos()-y.y,f.insert(y.x,y.y,y.x+y.width,y.height),y.startx=y.x,y.starty=y.y,y.stopx=y.startx+y.width,y.stopy=y.starty+y.height,y.stroke="rgb(0,0,0, 0.5)",await D.drawBox(r,y,n);V&&f.bumpVerticalPos(n.boxMargin);const F=ge(r,x,m,p),{bounds:W}=f.getBounds();let Z=W.stopy-W.starty;Z{const o=xt(n);let l=a.actorKeys.reduce((x,T)=>x+=t[T].width+(t[T].margin||0),0);l-=2*n.boxTextMargin,a.wrap&&(a.name=B.wrapLabel(a.name,l-2*n.wrapPadding,o));const p=B.calculateTextDimensions(a.name,o);i=v.getMax(p.height,i);const r=v.getMax(l,p.width+2*n.wrapPadding);if(a.margin=n.boxTextMargin,la.textMaxHeight=i),v.getMax(s,n.height)}const D0=async function(t,e,c){const s=e[t.from].x,i=e[t.to].x,a=t.wrap&&t.message;let o=nt(t.message)?await wt(t.message,st()):B.calculateTextDimensions(a?B.wrapLabel(t.message,n.width,Tt(n)):t.message,Tt(n));const l={width:a?n.width:v.getMax(n.width,o.width+2*n.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===c.db.PLACEMENT.RIGHTOF?(l.width=a?v.getMax(n.width,o.width):v.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*n.noteMargin),l.startx=s+(e[t.from].width+n.actorMargin)/2):t.placement===c.db.PLACEMENT.LEFTOF?(l.width=a?v.getMax(n.width,o.width+2*n.noteMargin):v.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*n.noteMargin),l.startx=s-l.width+(e[t.from].width-n.actorMargin)/2):t.to===t.from?(o=B.calculateTextDimensions(a?B.wrapLabel(t.message,v.getMax(n.width,e[t.from].width),Tt(n)):t.message,Tt(n)),l.width=a?v.getMax(n.width,e[t.from].width):v.getMax(e[t.from].width,n.width,o.width+2*n.noteMargin),l.startx=s+(e[t.from].width-l.width)/2):(l.width=Math.abs(s+e[t.from].width/2-(i+e[t.to].width/2))+n.actorMargin,l.startx=s2,T=_=>l?-_:_;t.from===t.to?r=p:(t.activate&&!x&&(r+=T(n.activationWidth/2-1)),[c.db.LINETYPE.SOLID_OPEN,c.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(r+=T(3)));const u=[s,i,a,o],g=Math.abs(p-r);t.wrap&&t.message&&(t.message=B.wrapLabel(t.message,v.getMax(g+2*n.wrapPadding,n.width),xt(n)));const m=B.calculateTextDimensions(t.message,xt(n));return{width:v.getMax(t.wrap?0:m.width+2*n.wrapPadding,g+2*n.wrapPadding,n.width),height:0,startx:p,stopx:r,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}},O0=async function(t,e,c,s){const i={},a=[];let o,l,p;for(const r of t){switch(r.id=B.random({length:10}),r.type){case s.db.LINETYPE.LOOP_START:case s.db.LINETYPE.ALT_START:case s.db.LINETYPE.OPT_START:case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:case s.db.LINETYPE.CRITICAL_START:case s.db.LINETYPE.BREAK_START:a.push({id:r.id,msg:r.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case s.db.LINETYPE.ALT_ELSE:case s.db.LINETYPE.PAR_AND:case s.db.LINETYPE.CRITICAL_OPTION:r.message&&(o=a.pop(),i[o.id]=o,i[r.id]=o,a.push(o));break;case s.db.LINETYPE.LOOP_END:case s.db.LINETYPE.ALT_END:case s.db.LINETYPE.OPT_END:case s.db.LINETYPE.PAR_END:case s.db.LINETYPE.CRITICAL_END:case s.db.LINETYPE.BREAK_END:o=a.pop(),i[o.id]=o;break;case s.db.LINETYPE.ACTIVE_START:{const T=e[r.from?r.from.actor:r.to.actor],u=St(r.from?r.from.actor:r.to.actor).length,g=T.x+T.width/2+(u-1)*n.activationWidth/2,m={startx:g,stopx:g+n.activationWidth,actor:r.from.actor,enabled:!0};f.activations.push(m)}break;case s.db.LINETYPE.ACTIVE_END:{const T=f.activations.map(u=>u.actor).lastIndexOf(r.from.actor);delete f.activations.splice(T,1)[0]}break}r.placement!==void 0?(l=await D0(r,e,s),r.noteModel=l,a.forEach(T=>{o=T,o.from=v.getMin(o.from,l.startx),o.to=v.getMax(o.to,l.startx+l.width),o.width=v.getMax(o.width,Math.abs(o.from-o.to))-n.labelBoxWidth})):(p=V0(r,e,s),r.msgModel=p,p.startx&&p.stopx&&a.length>0&&a.forEach(T=>{if(o=T,p.startx===p.stopx){const u=e[r.from],g=e[r.to];o.from=v.getMin(u.x-p.width/2,u.x-u.width/2,o.from),o.to=v.getMax(g.x+p.width/2,g.x+u.width/2,o.to),o.width=v.getMax(o.width,Math.abs(o.to-o.from))-n.labelBoxWidth}else o.from=v.getMin(p.startx,o.from),o.to=v.getMax(p.stopx,o.to),o.width=v.getMax(o.width,p.width)-n.labelBoxWidth}))}return f.activations=[],X.debug("Loop type widths:",i),i},B0={bounds:f,drawActors:qt,drawActorsPopup:ge,setConf:xe,draw:S0},q0={parser:De,db:Qt,renderer:B0,styles:o0,init:({wrap:t})=>{Qt.setWrap(t)}};export{q0 as diagram}; diff --git a/assets/stateDiagram-5dee940d-QdyITvZy.js b/assets/stateDiagram-5dee940d-QdyITvZy.js new file mode 100644 index 00000000..ae2f58af --- /dev/null +++ b/assets/stateDiagram-5dee940d-QdyITvZy.js @@ -0,0 +1 @@ +import{p as P,d as N,s as W}from"./styles-0784dbeb-Bh_1Vl1K.js";import{c as t,h as H,l as b,i as R,j as T,F as v,A as U}from"./mermaid.core-Bc1j4tiv.js";import{G as C}from"./graph-DkiqFSuU.js";import{l as F}from"./layout-BZLwH4ql.js";import{l as $}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
    ");p=p.replace(/\n/g,"
    ");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let A=0;const K=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+A).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}A++};let B;const z={},Q=function(){},V=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);V(r);const y=c.db.getRootDoc();G(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,G=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),K(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:Q,draw:D},lt={parser:P,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram}; diff --git a/assets/stateDiagram-v2-1992cada-BYeiqQmL.js b/assets/stateDiagram-v2-1992cada-BYeiqQmL.js new file mode 100644 index 00000000..e7beb2c4 --- /dev/null +++ b/assets/stateDiagram-v2-1992cada-BYeiqQmL.js @@ -0,0 +1 @@ +import{p as J,d as B,s as Q,D as H,a as X,S as Z,b as F,c as I}from"./styles-0784dbeb-Bh_1Vl1K.js";import{G as tt}from"./graph-DkiqFSuU.js";import{l as E,c as g,h as x,A as et,i as ot,j as w}from"./mermaid.core-Bc1j4tiv.js";import{r as st}from"./index-01f381cb-wllKWk9M.js";import"./layout-BZLwH4ql.js";import"./app-Ca-A-iaw.js";import"./clone-CH2yQtrO.js";import"./edges-066a5561-CYMTSPpJ.js";import"./createText-ca0c5216-bYdpW0Zp.js";import"./line-DS2p6aKt.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",W="fill: #333",z="c",j="text",q="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===X?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:W,labelpos:z,labelType:j,thickness:q})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case Z:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:W,labelpos:z,labelType:j,thickness:q,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let i=0;i{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram}; diff --git a/assets/style-C0gC8zyW.css b/assets/style-C0gC8zyW.css new file mode 100644 index 00000000..57cc42b8 --- /dev/null +++ b/assets/style-C0gC8zyW.css @@ -0,0 +1 @@ +@charset "UTF-8";html[data-theme=dark]{--text-color: #9e9e9e;--bg-color: #0d1117;--bg-color-secondary: #161b22;--bg-color-tertiary: #21262c;--border-color: #30363d;--box-shadow: #282a32;--card-shadow: rgba(0, 0, 0, .3);--black: #fff;--grey-dark: #999;--grey-light: #666;--white: #000;--grey-darker: #bbb;--grey-lighter: #333;--grey14: #111;--bg-color-light: #161b22;--bg-color-back: #0d1117;--bg-color-float: #161b22;--bg-color-blur: rgba(13, 17, 23, .9);--bg-color-float-blur: rgba(22, 27, 34, .9);--text-color-light: rgb(167.7, 167.7, 167.7);--text-color-lighter: rgb(177.4, 177.4, 177.4);--text-color-bright: rgb(196.8, 196.8, 196.8);--border-color-light: rgb(45.6, 51.3, 57.95);--border-color-dark: rgb(56.8293577982, 63.9330275229, 72.2206422018)}:root{--theme-color: #3eaf7c;--text-color: #2c3e50;--bg-color: #fff;--bg-color-secondary: #f8f8f8;--bg-color-tertiary: #efeef4;--border-color: #eaecef;--box-shadow: #f0f1f2;--card-shadow: rgba(0, 0, 0, .15);--code-highlight-error-bg-color: rgba(244, 63, 94, .16);--code-highlight-warning-bg-color: rgba(255, 193, 7, .16);--code-line-diff-add-color: rgba(16, 185, 129, .16);--code-line-diff-add-symbol-color: #298459;--code-line-diff-remove-color: rgba(244, 63, 94, .16);--code-line-diff-remove-symbol-color: #e0575b;--code-word-highlight-bg-color: rgba(0, 0, 0, .2);--code-word-highlight-border: #636363;--black: #000;--grey-dark: #666;--grey-light: #999;--white: #fff;--grey-darker: #333;--grey-lighter: #bbb;--grey14: #eee;--navbar-height: 3.75rem;--navbar-horizontal-padding: 1.5rem;--navbar-vertical-padding: .7rem;--navbar-mobile-height: 3.25rem;--navbar-mobile-horizontal-padding: 1rem;--navbar-mobile-vertical-padding: .5rem;--sidebar-width: 18rem;--sidebar-mobile-width: 16rem;--content-width: 780px;--home-page-width: 1160px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", STHeiti, "Microsoft YaHei", SimSun, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", STHeiti, "Microsoft YaHei", SimSun, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-mono: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;--code-line-number-width: 2rem;--color-transition: .3s ease;--transform-transition: .3s ease;--vp-bg: var(--bg-color);--vp-bgl: var(--bg-color-light);--vp-bglt: var(--bg-color-tertiary);--vp-c: var(--text-color);--vp-cl: var(--text-color-light);--vp-clt: var(--text-color-lighter);--vp-brc: var(--border-color);--vp-brcd: var(--border-color-dark);--vp-tc: var(--theme-color);--vp-tcl: var(--theme-color-light);--vp-ct: var(--color-transition);--vp-tt: var(--transform-transition);--bg-color-light: #fff;--bg-color-back: #f8f8f8;--bg-color-float: #fff;--bg-color-blur: rgba(255, 255, 255, .9);--bg-color-float-blur: rgba(255, 255, 255, .9);--text-color-light: rgb(57.6967741935, 81.3, 104.9032258065);--text-color-lighter: rgb(71.3935483871, 100.6, 129.8064516129);--text-color-bright: rgb(105.5806451613, 139.2, 172.8193548387);--border-color-light: rgb(236.1, 237.9, 240.6);--border-color-dark: rgb(207.1540540541, 211.7108108108, 218.5459459459);--theme-color-dark: rgb(55.8, 157.5, 111.6);--theme-color-light: rgb(73.5759493671, 190.7240506329, 137.8518987342);--theme-color-mask: rgba(62, 175, 124, .15)}:root{--badge-tip-color: #42b983;--badge-warning-color: #f4cd00;--badge-danger-color: #f55;--badge-info-color: #0295ff;--badge-note-color: #666}.vp-badge{display:inline-block;vertical-align:center;height:18px;padding:0 6px;border-radius:3px;background:var(--vp-tc);color:var(--white);font-size:14px;line-height:18px;transition:background var(--vp-ct),color var(--vp-ct)}.vp-badge+.vp-badge{margin-inline-start:5px}h1 .vp-badge,h2 .vp-badge,h3 .vp-badge,h4 .vp-badge,h5 .vp-badge,h6 .vp-badge{vertical-align:top}.vp-badge.tip{background:var(--badge-tip-color)}.vp-badge.warning{background:var(--badge-warning-color)}.vp-badge.danger{background:var(--badge-danger-color)}.vp-badge.info{background:var(--badge-info-color)}.vp-badge.note{background:var(--badge-note-color)}.font-icon{display:inline-block}.theme-hope-content .font-icon{vertical-align:middle}@media screen{.sr-only{position:absolute;overflow:hidden;clip:rect 0,0,0,0;width:1px;height:1px;margin:-1px;padding:0;border:0}}@media print{.sr-only{display:none}}.vp-catalog-wrapper{margin-top:8px;margin-bottom:8px}.vp-catalog-wrapper.index ol{padding-inline-start:0}.vp-catalog-wrapper.index li{list-style-type:none}.vp-catalog-wrapper.index .vp-catalogs{padding-inline-start:0}.vp-catalog-wrapper.index .vp-catalog{list-style-type:none}.vp-catalog-wrapper.index .vp-catalog-title:before{content:"§" counter(catalog-item,upper-roman) " "}.vp-catalog-wrapper.index .vp-child-catalogs{counter-reset:child-catalog}.vp-catalog-wrapper.index .vp-child-catalog{counter-increment:child-catalog}.vp-catalog-wrapper.index .vp-child-catalog .vp-catalog-title:before{content:counter(catalog-item) "." counter(child-catalog) " "}.vp-catalog-wrapper.index .vp-sub-catalogs{padding-inline-start:.5rem}.vp-catalogs{margin:0;counter-reset:catalog-item}.vp-catalogs.deep{padding-inline-start:0}.vp-catalogs.deep .vp-catalog{list-style-type:none}.vp-catalogs .font-icon{vertical-align:baseline;margin-inline-end:.25rem}.vp-catalog{counter-increment:catalog-item}.vp-catalog-main-title{margin-top:calc(1rem - var(--navbar-height, 3.6rem));margin-bottom:.5rem;padding-top:var(--navbar-height, 3.6rem);font-weight:500;font-size:1.75rem}.vp-catalog-main-title:first-child{margin-bottom:.5rem!important}.vp-catalog-main-title:only-child{margin-bottom:0!important}.vp-catalog-main-title .vp-link{text-decoration:none!important}.vp-catalog-child-title{margin-bottom:.5rem!important}.vp-catalog-child-title.has-children{margin-top:calc(1rem - var(--navbar-height, 3.6rem));padding-top:var(--navbar-height, 3.6rem);border-bottom:1px solid var(--catalog-border-color);font-weight:500;font-size:1.3rem;transition:border-color .3s}.vp-catalog-child-title.has-children:only-child{margin-bottom:0!important}.vp-catalog-child-title .vp-link{text-decoration:none!important}.vp-catalog-sub-title{font-weight:500;font-size:1.1rem}.vp-catalog-sub-title:only-child{margin-bottom:0!important}.vp-catalog-title{color:inherit;text-decoration:none}.vp-catalog-title:hover{color:var(--catalog-active-color)}.vp-child-catalogs{margin:0}.vp-child-catalog{list-style-type:disc}.vp-sub-catalogs{counter-reset:sub-catalog}.vp-sub-catalog{counter-increment:sub-catalog}.vp-sub-catalog .vp-link:before{content:counter(catalog-item) "." counter(child-catalog) "." counter(sub-catalog) " "}.vp-sub-catalogs-wrapper{display:flex;flex-wrap:wrap}.vp-sub-catalog-link{display:inline-block;margin:4px 8px;padding:4px 8px;border-radius:6px;background-color:var(--catalog-bg-secondary-color);line-height:1.5;overflow-wrap:break-word;transition:background-color .3s,color .3s}.vp-sub-catalog-link:hover{background-color:var(--catalog-hover-color);color:var(--catalog-bg-color);text-decoration:none!important}.vp-catalog-header-anchor{content:"¶";float:left;margin-top:.125em;margin-left:-1em;padding-right:0;font-size:.85em;text-decoration:none;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media print{.vp-catalog-header-anchor{display:none}}h2:hover .vp-catalog-header-anchor,h3:hover .vp-catalog-header-anchor{text-decoration:none;opacity:1}.vp-catalog-header-anchor:focus-visible{opacity:1}.vp-empty-catalog{font-size:1.25rem;text-align:center}:root{--catalog-bg-color: #fff;--catalog-bg-secondary-color: #f8f8f8;--catalog-border-color: #e5e5e5;--catalog-active-color: #3eaf7c;--catalog-hover-color: #71cda3}.vp-back-to-top-button{position:fixed!important;bottom:4rem;inset-inline-end:1rem;z-index:100;width:48px;height:48px;padding:12px;border-width:0;border-radius:50%;background:var(--back-to-top-bg-color);color:var(--back-to-top-color);box-shadow:2px 2px 10px 4px var(--back-to-top-shadow);cursor:pointer}@media (max-width: 959px){.vp-back-to-top-button{transform:scale(.8);transform-origin:100% 100%}}@media print{.vp-back-to-top-button{display:none}}.vp-back-to-top-button:hover{color:var(--back-to-top-color-hover)}.vp-back-to-top-button .back-to-top-icon{overflow:hidden;width:24px;height:24px;margin:0 auto;background:var(--back-to-top-icon-color);-webkit-mask-image:var(--back-to-top-icon);mask-image:var(--back-to-top-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover}.vp-scroll-progress{position:absolute;right:-2px;bottom:-2px;width:52px;height:52px}.vp-scroll-progress svg{width:100%;height:100%}.vp-scroll-progress circle{opacity:.9;transform:rotate(-90deg);transform-origin:50% 50%}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--back-to-top-z-index: 5;--back-to-top-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='4'%20d='M24.008%2014.1V42M12%2026l12-12l12%2012M12%206h24'%20/%3e%3c/svg%3e");--back-to-top-bg-color: #fff;--back-to-top-color: #3eaf7c;--back-to-top-icon-color: currentcolor;--back-to-top-color-hover: #71cda3;--back-to-top-shadow: rgb(0 0 0 / 20%)}:root{--nprogress-color: #29d;--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{position:fixed;top:0;left:0;z-index:var(--nprogress-z-index);width:100%;height:2px;background:var(--nprogress-color)}:root{--code-copy-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2' /%3e%3c/svg%3e");--code-copied-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4' /%3e%3c/svg%3e");--copy-code-color: #9e9e9e;--copy-code-hover: rgb(0 0 0 / 50%)}.vp-copy-code-button{position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-width:0;border-radius:.5rem;background:transparent;outline:none;opacity:0;cursor:pointer;transition:opacity .4s}@media print{.vp-copy-code-button{display:none}}.vp-copy-code-button:before{content:"";display:inline-block;width:1.25rem;height:1.25rem;padding:.625rem;background:currentcolor;color:var(--copy-code-color);font-size:1.25rem;-webkit-mask-image:var(--code-copy-icon);mask-image:var(--code-copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1em;mask-size:1em}.vp-copy-code-button:focus,.vp-copy-code-button.copied{opacity:1}.vp-copy-code-button:hover,.vp-copy-code-button.copied{background:var(--copy-code-hover)}.vp-copy-code-button.copied:before{-webkit-mask-image:var(--code-copied-icon);mask-image:var(--code-copied-icon)}.vp-copy-code-button.copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--copy-code-hover);color:var(--copy-code-color);font-weight:500;line-height:1.25rem;white-space:nowrap}.copy-code-disabled .vp-copy-code-button{display:none}body:not(.copy-code-disabled) div[class*=language-]:hover:before{display:none}body:not(.copy-code-disabled) div[class*=language-]:hover .vp-copy-code-button{opacity:1}.chartjs-title{margin:.5rem auto;font-weight:600;font-size:18px;text-align:center}.chartjs-loading{color:var(--vp-tc)}.chartjs-wrapper{overflow-x:auto;padding:.6em .4em;text-align:center;transition:all 1s}@media print{.chartjs-wrapper{page-break-inside:avoid}}@media (max-width: 719px){.chartjs-wrapper{margin:0 -1rem;padding:.6em 0}}.vp-code-tabs-nav{overflow-x:auto;margin:.875rem 0 -.875rem;padding:0;border-radius:6px 6px 0 0;background:var(--code-tabs-nav-bg-color, #3a404c);list-style:none;white-space:nowrap;transition:background var(--vp-ct)}@media print{.vp-code-tabs-nav{display:none}}@media (max-width: 419px){.vp-code-tabs-nav{margin-inline:-1.5rem;border-radius:0}}.vp-code-tab-nav{border-width:0;position:relative;min-width:3rem;margin:0;padding:6px 12px;border-radius:6px 6px 0 0;background:transparent;color:var(--code-tabs-nav-text-color, #eee);font-weight:600;font-size:.875em;line-height:1.4;cursor:pointer;transition:background var(--vp-ct),color var(--vp-ct)}.vp-code-tab-nav:hover{background:var(--code-tabs-nav-hover-color, #434a57)}.vp-code-tab-nav:before,.vp-code-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:6px;height:6px}.vp-code-tab-nav:before{right:100%}.vp-code-tab-nav:after{left:100%}.vp-code-tab-nav.active{background:var(--code-bg-color, #282c34)}.vp-code-tab-nav.active:before{background:radial-gradient(12px at left top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.vp-code-tab-nav.active:after{background:radial-gradient(12px at right top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.vp-code-tab-nav:first-child:before{display:none}html[dir=rtl] .vp-code-tab-nav:first-child:before{display:block}html[dir=rtl] .vp-code-tab-nav:first-child:after{display:none}.vp-code-tab{display:none}@media print{.vp-code-tab{display:block}}.vp-code-tab.active{display:block}.vp-code-tab div[class*=language-]{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-]{margin:.875rem -1.5rem;border-radius:0}}@media print{.vp-code-tab div[class*=language-] code{white-space:pre-wrap}}.vp-code-tab-title{display:none;font-weight:500}@media print{.vp-code-tab-title{display:block}}.code-group-nav{display:flex;margin:.875rem 0 -.875rem;padding:0;border-radius:6px 6px 0 0;background:var(--code-tabs-nav-bg-color, #3a404c);list-style:none;transition:background var(--vp-ct)}@media (max-width: 419px){.code-group-nav{margin-inline:-1.5rem;border-radius:0}}.code-group-nav-tab{border-width:0;position:relative;min-width:3rem;margin:0;padding:6px 10px;border-radius:6px 6px 0 0;background:transparent;color:var(--code-tabs-nav-text-color, #eee);font-weight:600;font-size:.875em;line-height:1.4;cursor:pointer;transition:background var(--vp-ct),color var(--vp-ct)}.code-group-nav-tab:hover{background:var(--code-tabs-nav-hover-color, #434a57)}.code-group-nav-tab:before,.code-group-nav-tab:after{content:" ";position:absolute;bottom:0;z-index:1;width:6px;height:6px}.code-group-nav-tab:before{right:100%}.code-group-nav-tab:after{left:100%}.code-group-nav-tab.active{background:var(--code-bg-color, #282c34)}.code-group-nav-tab.active:before{background:radial-gradient(12px at left top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.code-group-nav-tab.active:after{background:radial-gradient(12px at right top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.code-group-nav-tab:first-child:before{display:none}html[dir=rtl] .code-group-nav-tab:first-child:before{display:block}html[dir=rtl] .code-group-nav-tab:first-child:after{display:none}.code-group-item{display:none}.code-group-item.active{display:block}.code-group-item div[class*=language-]{border-top-left-radius:0;border-top-right-radius:0}.vp-card{display:inline-flex;align-items:center;max-width:400px;margin:1rem .5rem;padding:1rem;border-radius:.5rem;background:var(--vp-bg);color:inherit;box-shadow:2px 2px 10px 0 var(--card-shadow);transition:background var(--vp-ct),box-shadow var(--vp-ct)}.vp-card:hover{background:var(--vp-bgl);text-decoration:none!important}.vp-card hr{margin:.25em 0}.vp-card-logo{width:3em;height:3em;margin-inline-end:1em;border-radius:50%}.vp-card-content{flex:1}.vp-card-title{font-weight:500;font-size:1.1em}.vp-card-desc{color:#888;font-size:.9em;line-height:1.5;transition:color var(--vp-ct)}.vp-card-container{display:flex;flex-wrap:wrap;place-content:stretch center;align-items:stretch}.vp-card-container .vp-card{flex-basis:calc(50% - 3rem);max-width:unset;margin:.5rem}@media (max-width: 959px){.vp-card-container .vp-card{flex-basis:100%}}@media (max-width: 719px){.vp-card-container .vp-card{font-size:.95rem}}@media (max-width: 419px){.vp-card-container .vp-card{font-size:.9rem}}.echarts-title{margin:1rem auto .5rem;font-weight:600;font-size:18px;text-align:center}.echarts-wrapper{position:relative;text-align:center;transition:all 1s}@media (max-width: 719px){.echarts-wrapper{margin:0 -1rem}}.echarts-wrapper .echarts-container{min-height:360px}@media print{.echarts-wrapper .echarts-container{page-break-inside:avoid}}.echarts-wrapper .echarts-loading{position:absolute;inset:0 0 auto;color:var(--vp-tc)}.theme-hope-content figure{position:relative;display:flex;flex-flow:column;width:auto;margin:1rem auto;text-align:center;transition:transform var(--vp-tt)}.theme-hope-content figure>a[href*="://"]:after,.theme-hope-content figure>a[target=_blank]:after{display:none!important}.theme-hope-content figure img{overflow:hidden;margin:0 auto;border-radius:8px}.theme-hope-content figure img[tabindex]:hover,.theme-hope-content figure img[tabindex]:focus{box-shadow:2px 2px 10px 0 var(--card-shadow)}.theme-hope-content figure figcaption{display:inline-block;margin:6px auto;font-size:.8rem}.flowchart-loading{color:var(--vp-tc)}.flowchart-wrapper{overflow-x:auto;padding:.6em .4em;text-align:center;direction:ltr;transition:all 1s}@media print{.flowchart-wrapper{page-break-inside:avoid}}@media (max-width: 719px){.flowchart-wrapper{margin:0 -1.5rem;padding:.6em 0}}.flowchart-wrapper.vue .start-element,.flowchart-wrapper.vue .end-element,.flowchart-wrapper.vue .operation-element,.flowchart-wrapper.vue .parallel-element{rx:5px;ry:5px}.footnote-item{margin-top:calc(0rem - var(--navbar-height, 3.6rem));padding-top:calc(var(--navbar-height, 3.6rem) + .5rem)}.footnote-item>p{margin-bottom:0}.footnote-ref{position:relative}.footnote-anchor{position:absolute;top:calc(-.5rem - var(--navbar-height, 3.6rem))}:root{--important-title-color: #230555;--important-bg-color: #f4eefe;--important-border-color: #a371f7;--important-code-bg-color: rgb(163 113 247 / 10%);--info-title-color: #193c47;--info-bg-color: #eef9fd;--info-border-color: #4cb3d4;--info-code-bg-color: rgb(76 179 212 / 10%);--note-title-color: #474748;--note-bg-color: #fdfdfe;--note-border-color: #ccc;--note-code-bg-color: rgb(212 213 216 / 20%);--tip-title-color: #003100;--tip-bg-color: #e6f6e6;--tip-border-color: #009400;--tip-code-bg-color: rgb(0 148 0 / 15%);--warning-title-color: #4d3800;--warning-bg-color: #fff8e6;--warning-border-color: #e6a700;--warning-code-bg-color: rgb(230 167 0 / 15%);--caution-title-color: #4b1113;--caution-bg-color: #ffebec;--caution-border-color: #e13238;--caution-code-bg-color: rgb(225 50 56 / 15%);--detail-bg-color: #eee;--detail-text-color: inherit;--detail-code-bg-color: rgb(127 127 127 / 15%)}html[data-theme=dark]{--important-title-color: #f4eefe;--important-bg-color: #230555;--info-title-color: #eef9fd;--info-bg-color: #193c47;--note-title-color: #fdfdfe;--note-bg-color: #474748;--tip-title-color: #e6f6e6;--tip-bg-color: #003100;--warning-title-color: #fff8e6;--warning-bg-color: #4d3800;--caution-title-color: #ffebec;--caution-bg-color: #4b1113;--detail-bg-color: #333;--detail-text-color: #a8a8a8}.hint-container{position:relative;transition:background var(--vp-ct),border-color var(--vp-ct),color var(--vp-ct)}@media print{.hint-container{page-break-inside:avoid}}.hint-container .hint-container-title{position:relative;font-weight:600;line-height:1.25}.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin:1rem 0;padding:.25rem 1rem;border-inline-start-width:.3rem;border-inline-start-style:solid;border-radius:.5rem;color:inherit}@media (max-width: 419px){.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin-inline:-.75rem}}.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:1.75rem}@media print{.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:0}}.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{content:" ";position:absolute;inset-inline-start:0;top:calc(50% - .6125em);width:1.25em;height:1.25em;background-position:left;background-repeat:no-repeat}@media print{.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{display:none}}.hint-container.important p,.hint-container.info p,.hint-container.note p,.hint-container.tip p,.hint-container.warning p,.hint-container.caution p{line-height:1.5}.hint-container.important a,.hint-container.info a,.hint-container.note a,.hint-container.tip a,.hint-container.warning a,.hint-container.caution a{color:var(--vp-tc)}.hint-container.important{border-color:var(--important-border-color);background:var(--important-bg-color)}.hint-container.important>.hint-container-title{color:var(--important-title-color)}.hint-container.important>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z' fill='%23a371f7'/%3E%3C/svg%3E")}.hint-container.important :not(pre)>code{background:var(--important-code-bg-color)}.hint-container.info{border-color:var(--info-border-color);background:var(--info-bg-color)}.hint-container.info>.hint-container-title{color:var(--info-title-color)}.hint-container.info>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%234cb3d4'/%3E%3C/svg%3E")}.hint-container.info :not(pre)>code{background:var(--info-code-bg-color)}.hint-container.note{border-color:var(--note-border-color);background:var(--note-bg-color)}.hint-container.note>.hint-container-title{color:var(--note-title-color)}.hint-container.note>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%23ccc'/%3E%3C/svg%3E")}.hint-container.note :not(pre)>code{background:var(--note-code-bg-color)}.hint-container.tip{border-color:var(--tip-border-color);background:var(--tip-bg-color)}.hint-container.tip>.hint-container-title{color:var(--tip-title-color)}.hint-container.tip>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23009400' d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E")}.hint-container.tip :not(pre)>code{background:var(--tip-code-bg-color)}.hint-container.warning{border-color:var(--warning-border-color);background:var(--warning-bg-color)}.hint-container.warning>.hint-container-title{color:var(--warning-title-color)}.hint-container.warning>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z' fill='%23e6a700'/%3E%3C/svg%3E")}.hint-container.warning :not(pre)>code{background:var(--warning-code-bg-color)}.hint-container.caution{border-color:var(--caution-border-color);background:var(--caution-bg-color)}.hint-container.caution>.hint-container-title{color:var(--caution-title-color)}.hint-container.caution>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z' fill='%23e13238'/%3E%3C/svg%3E")}.hint-container.caution :not(pre)>code{background:var(--caution-code-bg-color)}.hint-container.details{position:relative;display:block;margin:1rem 0;padding:1.5rem;border-radius:.5rem;background:var(--detail-bg-color);color:var(--detail-text-color);transition:background var(--vp-tt),color var(--vp-tt)}@media (max-width: 419px){.hint-container.details{margin-inline:-.75rem}}.hint-container.details h4{margin-top:0}.hint-container.details figure:last-child,.hint-container.details p:last-child{margin-bottom:0;padding-bottom:0}.hint-container.details a{color:var(--vp-tc)}.hint-container.details :not(pre)>code{background:var(--detail-code-bg-color)}.hint-container.details summary{position:relative;margin:-1.5rem;padding-block:1.5rem;padding-inline:4rem 1.5rem;list-style:none;cursor:pointer}.hint-container.details summary::-webkit-details-marker{display:none}.hint-container.details summary::marker{color:transparent;font-size:0}.hint-container.details summary:before,.hint-container.details summary:after{content:" ";position:absolute;inset-inline-start:1.5rem;top:calc(50% - .75rem);width:1.5rem;height:1.5rem}.hint-container.details summary:before{border-radius:50%;background:#ccc;transition:background var(--vp-ct),transform var(--vp-tt)}html[data-theme=dark] .hint-container.details summary:before{background:#555}.hint-container.details summary:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");line-height:normal;transition:transform var(--vp-tt);transform:rotate(90deg)}html[data-theme=dark] .hint-container.details summary:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.hint-container.details[open]>summary{margin-bottom:.5em}.hint-container.details[open]>summary:after{transform:rotate(180deg)}html[data-theme=light] figure:has(img[data-mode=darkmode-only]),html[data-theme=light] img[data-mode=darkmode-only]{display:none!important}html[data-theme=dark] figure:has(img[data-mode=lightmode-only]),html[data-theme=dark] img[data-mode=lightmode-only]{display:none!important}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/ModernCpp-ConcurrentProgramming-Tutorial/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.11"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.katex{font-size:1.05em;direction:ltr}.katex-display{overflow:auto hidden;padding-top:.2em;padding-bottom:.2em;-webkit-overflow-scrolling:touch}.katex-display::-webkit-scrollbar{height:3px}.katex-display .katex{font-size:1.21em}.katex-error{color:red}.mermaid-preview .node rect,.mermaid-preview .clusters rect,.mermaid-preview rect.note,.mermaid-preview .actor,.mermaid-wrapper .node rect,.mermaid-wrapper .clusters rect,.mermaid-wrapper rect.note,.mermaid-wrapper .actor{rx:8;ry:8}.mermaid-wrapper{position:relative;overflow-x:auto;padding:.6em .4em;text-align:center;transition:all 1s}@media (max-width: 419px){.mermaid-wrapper{margin:0 -1.5rem;padding:.6em 0}}.mermaid-loading{color:var(--vp-tc)}@media print{.mermaid-content{page-break-inside:avoid}}.mermaid-actions{text-align:end}@media print{.mermaid-actions{display:none}}.mermaid-preview{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;display:flex;align-items:center;justify-content:center;background-color:#fffc}html[data-theme=dark] .mermaid-preview{background-color:#000c}.mermaid-preview svg{max-width:100%;max-height:100%}.preview-button,.download-button{border-width:0;background:transparent;cursor:pointer;width:2rem;height:2rem;padding:.25rem;color:var(--grey-dark)}@media (max-width: 719px){.preview-button,.download-button{width:1.5rem;height:1.5rem}}.preview-button:hover,.download-button:hover{color:var(--vp-tc)}.preview-button svg,.download-button svg{width:100%;height:100%}:root{--tab-bg-color: var(--vp-bg);--tab-nav-text-color: var(--vp-c);--tab-nav-bg-color: #e0e0e0;--tab-nav-hover-color: #eee}html[data-theme=dark]{--tab-nav-bg-color: #34343f;--tab-nav-hover-color: #2d2d38}.vp-tabs{margin:1.5rem 0;border:2px solid var(--vp-brc);border-radius:8px}@media (max-width: 419px){.theme-hope-content>.vp-tabs{margin-inline:-1.5rem;border-radius:0}}.vp-tabs-nav{overflow-x:auto;margin:0;padding:0;border-radius:8px 8px 0 0;background:var(--tab-nav-bg-color);list-style:none;white-space:nowrap;transition:background var(--vp-ct)}@media print{.vp-tabs-nav{display:none}}@media (max-width: 419px){.vp-tabs-nav{border-radius:0}}.vp-tab-nav{border-width:0;position:relative;min-width:4rem;margin:0;padding:.5em 1em;border-radius:8px 8px 0 0;background:transparent;color:var(--tab-nav-text-color);font-weight:600;font-size:.875em;line-height:1.75;cursor:pointer;transition:background var(--vp-ct),color var(--vp-ct)}.vp-tab-nav:hover{background:var(--tab-nav-hover-color)}.vp-tab-nav:before,.vp-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:8px;height:8px}.vp-tab-nav:before{right:100%}.vp-tab-nav:after{left:100%}.vp-tab-nav.active{background:var(--tab-bg-color)}.vp-tab-nav.active:before{background:radial-gradient(16px at left top,transparent 50%,var(--tab-bg-color) 50%)}.vp-tab-nav.active:after{background:radial-gradient(16px at right top,transparent 50%,var(--tab-bg-color) 50%)}.vp-tab-nav:first-child:before{display:none}.vp-tab{display:none;padding:1rem .75rem;background:var(--tab-bg-color);transition:background var(--vp-ct)}@media print{.vp-tab{display:block;padding:.5rem}}.vp-tab.active{display:block}.vp-tab:nth-child(n+2) .vp-tab-title{border-top:none}.vp-tab-title{display:none;padding:.25rem 0;border-top:1px solid var(--vp-brc);font-weight:500}@media print{.vp-tab-title{display:block}}.task-list-container{padding-inline-start:0;list-style-position:inside}.task-list-container .task-list-container{padding-inline-start:1.5em}.task-list-item{list-style:none}.task-list-item-checkbox{position:relative;cursor:pointer}.task-list-item-checkbox:after{content:" ";position:absolute;top:0;display:inline-block;box-sizing:border-box;width:1em;height:1em;padding-inline-start:0;border:1px solid #ddd;border-radius:2px;background:#fff;text-align:center;visibility:visible;transition:background var(--vp-ct),border-color var(--vp-ct)}@media print{.task-list-item-checkbox:after{border-color:var(--vp-c)}}html[data-theme=dark] .task-list-item-checkbox:after{border-color:#666;background:#333}.task-list-item-checkbox:checked:after{content:"";border-color:var(--vp-tc);background:var(--vp-tc)}@media print{.task-list-item-checkbox:checked:after{border-color:var(--vp-c);background:transparent}}html[data-theme=dark] .task-list-item-checkbox:checked:after{border-color:var(--vp-tc);background:var(--vp-tc)}.task-list-item-checkbox:checked:before{content:"";position:absolute;inset-inline-start:.4em;top:.1em;z-index:1;width:.2em;height:.5em;border:solid var(--white);border-width:0 .15em .15em 0;transform:rotate(45deg)}@media print{.task-list-item-checkbox:checked:before{border-color:var(--vp-c)}}/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */.pswp{--pswp-bg: #000;--pswp-placeholder-bg: #222;--pswp-root-z-index: 100000;--pswp-preloader-color: rgba(79, 79, 79, .4);--pswp-preloader-color-secondary: rgba(255, 255, 255, .9);--pswp-icon-color: #fff;--pswp-icon-color-secondary: #4f4f4f;--pswp-icon-stroke-color: #4f4f4f;--pswp-icon-stroke-width: 2px;--pswp-error-text-color: var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:none;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{transition:none;padding:0;background:none;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary)}.pswp__icn{position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:none;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none}.photo-swipe-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.photo-swipe-bullets-indicator{position:absolute;bottom:30px;left:50%;display:flex;flex-direction:row;align-items:center;transform:translate(-50%)}.photo-swipe-bullet{width:12px;height:6px;margin:0 5px;border-radius:3px;background:var(--photo-swipe-bullet);transition:width .3s,color .3s}.photo-swipe-bullet.active{width:30px;background:var(--photo-swipe-bullet-active)}:root{--photo-swipe-bullet: #fff;--photo-swipe-bullet-active: #3eaf7c}.search-pro-button{border-width:0;background:transparent;display:inline-flex;align-items:center;box-sizing:content-box;height:1.25rem;margin-inline:1rem 0;margin-top:0;margin-bottom:0;padding:.5rem;border:0;border:1px solid var(--vp-c-border);border-radius:1rem;background:var(--vp-c-control);color:var(--vp-c-text);font-weight:500;cursor:pointer;transition:background var(--vp-t-color),color var(--vp-t-color)}@media print{.search-pro-button{display:none}}@media (max-width: 959px){.search-pro-button{border-radius:50%}}.search-pro-button:hover{border:1px solid var(--vp-c-accent-bg);background-color:var(--vp-c-control-hover)}.search-pro-button .search-icon{width:1.25rem;height:1.25rem}.search-pro-placeholder{margin-inline:.25rem;font-size:1rem}@media (max-width: 959px){.search-pro-placeholder{display:none}}.search-pro-key-hints{font-size:.75rem}@media (max-width: 959px){.search-pro-key-hints{display:none}}.search-pro-key{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25rem;border:1px solid var(--vp-c-border);border-radius:4px;box-shadow:1px 1px 4px 0 var(--vp-c-shadow);line-height:1;letter-spacing:-.1em;transition:background var(--vp-t-color),color var(--vp-t-color),border var(--vp-t-color),box-shadow var(--vp-t-transform)}@keyframes search-pro-fade-in{0%{opacity:.2}to{opacity:1}}.search-pro-modal-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;z-index:997;display:flex;align-items:center;justify-content:center;overflow:auto;cursor:default}.search-pro-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:.25s search-pro-fade-in}.search-pro-modal{position:absolute;z-index:999;display:flex;flex-flow:column;width:calc(100% - 6rem);max-width:50em;border-radius:10px;background:var(--vp-c-bg);box-shadow:2px 2px 10px 0 var(--vp-c-shadow);transition:background var(--vp-t-color);animation:.15s pwa-opened}@media (max-width: 1280px){.search-pro-modal{animation:.25s pwa-mobile}}@media (max-width: 719px){.search-pro-modal{top:0;right:0;bottom:0;left:0;box-sizing:border-box;width:100%;max-width:unset;padding:env(--safe-area-inset-top) env(--safe-area-inset-right) env(--safe-area-inset-bottom) env(--safe-area-inset-left)}}.search-pro-box{display:flex;margin:1rem}.search-pro-box form{position:relative;display:flex;flex:1}.search-pro-box label{position:absolute;inset-inline-start:.5rem;top:calc(50% - .75rem);color:var(--vp-c-accent)}.search-pro-box label .search-icon{width:1.5rem;height:1.5rem}.search-pro-clear-button{border-width:0;background:transparent;cursor:pointer;position:absolute;inset-inline-end:.75rem;top:calc(50% - 10px);padding:0;color:var(--vp-c-accent-bg)}.search-pro-clear-button:hover{border-radius:50%;background-color:#0000001a}.search-pro-close-button{border-width:0;background:transparent;cursor:pointer;display:none;margin-inline:.5rem -.5rem;padding:.5rem;color:var(--vp-c-text-mute);font-size:1rem}@media (max-width: 719px){.search-pro-close-button{display:block}}.search-pro-input{flex:1;width:0;margin:0;padding-block:.25rem;padding-inline:2.5rem 2rem;border:0;border:2px solid var(--vp-c-accent-bg);border-radius:8px;background:var(--vp-c-bg);color:var(--vp-c-text);outline:none;font-size:1.25rem;line-height:2.5;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-pro-input::-webkit-search-cancel-button{display:none}.search-pro-suggestions{position:absolute;inset:calc(100% + 4px) 0 auto;z-index:20;overflow:visible;overflow-y:auto;max-height:50vh;margin:0;padding:0;border-radius:.5rem;background-color:var(--vp-c-bg);box-shadow:2px 2px 10px 0 var(--vp-c-shadow);list-style:none;line-height:1.5}.search-pro-suggestion{padding:.25rem 1rem;border-top:1px solid var(--vp-c-border);cursor:pointer}.search-pro-suggestion:first-child{border-top:none}.search-pro-suggestion.active,.search-pro-suggestion:hover{background-color:var(--vp-c-bg-alt)}.search-pro-auto-complete{display:none;float:right;margin:0 .5rem;padding:4px;border:1px solid var(--vp-c-border);border-radius:4px;box-shadow:1px 1px 4px 0 var(--vp-c-shadow);font-size:12px;line-height:1}.search-pro-suggestion.active .search-pro-auto-complete{display:block}.search-pro-result-wrapper{flex-grow:1;overflow-y:auto;min-height:40vh;max-height:calc(80vh - 10rem);padding:0 1rem}@media (max-width: 719px){.search-pro-result-wrapper{min-height:unset;max-height:unset}}.search-pro-result-wrapper.loading,.search-pro-result-wrapper.empty{display:flex;align-items:center;justify-content:center;padding:1.5rem;font-weight:600;font-size:22px;text-align:center}.search-pro-hints{margin-top:1rem;padding:.75rem .5rem;box-shadow:0 -1px 4px 0 var(--vp-c-shadow);line-height:1}.search-pro-hint{display:inline-flex;align-items:center;margin:0 .5rem}.search-pro-hint kbd{margin:0 .5rem;padding:2px;border:1px solid var(--vp-c-border);border-radius:4px;box-shadow:1px 1px 4px 0 var(--vp-c-shadow)}.search-pro-hint kbd+kbd{margin-inline-start:-.25rem}.search-pro-hint svg{display:block;width:15px;height:15px}:root{--balloon-border-radius: 2px;--balloon-color: rgba(16, 16, 16, .95);--balloon-text-color: #fff;--balloon-font-size: 12px;--balloon-move: 4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{opacity:0;pointer-events:none;transition:all .18s ease-out .18s;text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top-color:var(--balloon-color);opacity:0;pointer-events:none;transition:all .18s ease-out .18s;content:"";position:absolute;z-index:10}[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:before,[aria-label][data-balloon-pos][data-balloon-blunt]:after{transition:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:after{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:after{left:0}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:before{left:5px}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:after{right:0}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:before{right:5px}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:after{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos^=up]:before,[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{bottom:100%;transform-origin:top;transform:translateY(var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:before,[aria-label][data-balloon-pos][data-balloon-pos=up]:after{left:50%;transform:translate(-50%,var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before,[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{top:100%;transform:translateY(calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{margin-top:10px}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=down]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:before{left:50%;transform:translate(-50%,calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:after{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after,[aria-label][data-balloon-pos][data-balloon-pos=left]:before{right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after{margin-right:10px}[aria-label][data-balloon-pos][data-balloon-pos=left]:before{width:0;height:0;border:5px solid transparent;border-left-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:before{left:100%;top:50%;transform:translate(calc(var(--balloon-move) * -1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after{margin-left:10px}[aria-label][data-balloon-pos][data-balloon-pos=right]:before{width:0;height:0;border:5px solid transparent;border-right-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-length]:after{white-space:normal}[aria-label][data-balloon-pos][data-balloon-length=small]:after{width:80px}[aria-label][data-balloon-pos][data-balloon-length=medium]:after{width:150px}[aria-label][data-balloon-pos][data-balloon-length=large]:after{width:260px}[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:380px}@media screen and (max-width: 768px){[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:90vw}}[aria-label][data-balloon-pos][data-balloon-length=fit]:after{width:100%}html,body{margin:0;padding:0;background:#fff}html{font-size:16px;font-display:optional;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}@media print{html{font-size:12pt}}body{min-height:100vh;color:#2c3e50}a{color:#3eaf7c;font-weight:500;text-decoration:none;overflow-wrap:break-word}kbd{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25em;border:1px solid #eee;border-radius:.25em;box-shadow:1px 1px 4px #00000026;line-height:1;letter-spacing:-.1em;text-align:center}code{margin:0;padding:3px 6px;border-radius:4px;background:#7f7f7f1f;font-size:.875em;overflow-wrap:break-word}table code{padding:.1rem .4rem}p a code{color:#3eaf7c;font-weight:400}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1{font-size:2rem}h2{padding-bottom:.3rem;border-bottom:1px solid #eaecef;font-size:1.65rem}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}a.header-anchor{position:relative;color:inherit;text-decoration:none}a.header-anchor:hover:before{content:"¶";position:absolute;top:.4167em;left:-.75em;color:var(--c-brand);font-size:.75em}a.header-anchor:focus-visible{outline:none}a.header-anchor:focus-visible:before{content:"¶";position:absolute;left:-.75em;color:var(--c-brand);outline:auto}p,ul,ol{line-height:1.6;overflow-wrap:break-word}@media print{p,ul,ol{line-height:1.5}}ul,ol{padding-inline-start:1.2em}blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;border-inline-start:.2rem solid #ddd;color:#666;font-size:1rem;overflow-wrap:break-word}blockquote>p{margin:0}hr{border:0;border-top:1px solid #eaecef}table{display:block;overflow-x:auto;margin:1rem 0;border-collapse:collapse}tr:nth-child(odd){background:#f6f8fa}th,td{padding:.6em 1em;border:1px solid #dfe2e5}pre{text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;overflow-wrap:unset;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none;direction:ltr}@media print{pre{white-space:pre-wrap}}pre code{padding:0;border-radius:0}@page{margin:2cm;font-size:12pt;size:a4}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}a{color:inherit;font-weight:inherit!important;font-size:inherit!important;text-decoration:underline}a.header-anchor{text-decoration:none}abbr[title]:after{content:" (" attr(title) ")"}pre{border:1px solid #eee;white-space:pre-wrap!important}pre>code{white-space:pre-wrap!important}blockquote{border-inline-start:.2rem solid #ddd;color:inherit}blockquote,pre{orphans:5;widows:5}img,tr,canvas{page-break-inside:avoid}}:root{--navbar-bg-color: var(--bg-color-float-blur);--sidebar-bg-color: var(--bg-color-blur);--external-link-icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E")}html[data-theme=dark]{--navbar-bg-color: var(--bg-color-blur);--sidebar-bg-color: var(--bg-color-blur)}#app{--code-tabs-nav-text-color: var(--code-color);--code-tabs-nav-bg-color: var(--code-border-color);--code-tabs-nav-hover-color: var(--code-highlight-bg-color);--sidebar-space: var(--sidebar-width);--external-link-icon-color: var(--grey-light)}@media (max-width: 959px){#app{--navbar-height: var(--navbar-mobile-height);--navbar-vertical-padding: var(--navbar-mobile-vertical-padding);--navbar-horizontal-padding: var(--navbar-mobile-horizontal-padding);--sidebar-width: var(--sidebar-mobile-width)}}@media (min-width: 1440px){#app{--sidebar-space: clamp( var(--sidebar-width), max(0px, calc((100vw - var(--content-width)) / 2 - 2rem)) , 100vw )}}.vp-copy-code-button{--copy-code-color: var(--code-line-number-color);--copy-code-hover: var(--code-highlight-bg-color)}.DocSearch-Button,.DocSearch{--docsearch-primary-color: var(--theme-color);--docsearch-text-color: var(--text-color);--docsearch-highlight-color: var(--theme-color);--docsearch-muted-color: var(--grey-light);--docsearch-container-background: rgb(9 10 17 / 80%);--docsearch-modal-background: var(--bg-color-float);--docsearch-searchbox-background: var(--bg-color-secondary);--docsearch-searchbox-focus-background: var(--bg-color);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--theme-color);--docsearch-hit-color: var(--text-color-light);--docsearch-hit-active-color: var(--bg-color);--docsearch-hit-background: var(--bg-color);--docsearch-hit-shadow: 0 1px 3px 0 var(--border-color);--docsearch-footer-background: var(--bg-color)}html[data-theme=dark] .DocSearch-Button,html[data-theme=dark] .DocSearch{--docsearch-logo-color: var(--text-color);--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgb(3 4 9 / 30%);--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);--docsearch-footer-shadow: inset 0 1px 0 0 rgb(73 76 106 / 50%), 0 -4px 8px 0 rgb(0 0 0 / 20%)}.vp-back-to-top-button{--back-to-top-color: var(--theme-color);--back-to-top-color-hover: var(--theme-color-light);--back-to-top-bg-color: var(--bg-color)}.vp-catalog-wrapper{--catalog-bg-color: var(--bg-color);--catalog-bg-secondary-color: var(--bg-color-secondary);--catalog-border-color: var(--border-color);--catalog-active-color: var(--theme-color);--catalog-hover-color: var(--theme-color-light)}#nprogress{--nprogress-color: var(--theme-color)}body{--photo-swipe-bullet: var(--white);--photo-swipe-bullet-active: var(--theme-color);--pwa-text-color: var(--text-color);--pwa-bg-color: var(--bg-color);--pwa-border-color: var(--border-color);--pwa-btn-text-color: var(--bg-color);--pwa-btn-bg-color: var(--theme-color);--pwa-btn-hover-bg-color: var(--theme-color-light);--pwa-shadow-color: var(--card-shadow);--pwa-content-color: var(--grey-darker);--pwa-content-light-color: var(--grey-dark)}.vp-notice-wrapper{--notice-color: var(--text-color);--notice-bg-color: var(--bg-color);--notice-primary-color: var(--theme-color);--notice-primary-text-color: var(--white);--notice-primary-hover-color: var(--theme-color-light);--notice-button-color: var(--bg-color-tertiary);--notice-button-hover-color: var(--bg-color-secondary)}.redirect-modal-mask{--redirect-bg-color: var(--bg-color);--redirect-bg-color-light: var(--bg-color-secondary);--redirect-bg-color-lighter: var(--bg-color-tertiary);--redirect-text-color: var(--text-color);--redirect-primary-color: var(--theme-color);--redirect-primary-hover-color: var(--theme-color-light);--redirect-primary-text-color: var(--white)}.search-box{--search-bg-color: var(--bg-color);--search-accent-color: var(--theme-color);--search-text-color: var(--text-color);--search-border-color: var(--border-color);--search-item-text-color: var(--text-color-lighter);--search-item-focus-bg-color: var(--bg-color-secondary)}.waline-wrapper{--waline-bg-color: var(--bg-color);--waline-bg-color-light: var(--bg-color-secondary);--waline-text-color: var(--text-color);--waline-border: 1px solid var(--border-color);--waline-border-color: var(--border-color);--waline-theme-color: var(--theme-color);--waline-active-color: var(--theme-color-light)}@font-face{font-weight:400;font-style:normal;font-family:Crimson;src:url(data:font/truetype;charset=utf-8;base64,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) format("truetype")}html,body{background:var(--bg-color)}:root{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{color:var(--text-color);font-family:var(--font-family)}@media (min-width: 1440px){body{font-size:17px}}a{color:var(--theme-color)}kbd{border-color:var(--border-color-dark);background:var(--bg-color-secondary);font-family:var(--font-family-mono)}code{font-family:var(--font-family-mono)}html[data-theme=dark] code{background:#333}p a code{color:var(--theme-color)}blockquote{border-color:#eee;color:#666}html[data-theme=dark] blockquote{border-color:#333}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading)}@media (max-width: 419px){h1{font-size:1.9rem}}h2,hr{border-color:var(--border-color)}tr:nth-child(odd){background:var(--bg-color-secondary)}th,td{border-color:var(--border-color-dark)}@media print{@page{--text-color: #000 !important;--bg-color: #fff !important}div[class*=language-]{position:relative!important}}.theme-hope-content:not(.custom)>*:first-child{margin-top:0}.vp-breadcrumb{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;position:relative;z-index:2;padding-top:1rem;font-size:15px}@media (max-width: 959px){.vp-breadcrumb{padding-inline:1.5rem}}@media print{.vp-breadcrumb{max-width:unset}}@media (max-width: 959px){.vp-breadcrumb{font-size:14px}}@media (max-width: 419px){.vp-breadcrumb{padding-top:.5rem;font-size:12.8px}}@media print{.vp-breadcrumb{display:none}}.vp-breadcrumb .icon{margin-inline-end:.25em;font-size:1em}.vp-breadcrumb img.icon{vertical-align:-.125em;height:1em}.vp-breadcrumb a{display:inline-block;padding:0 .5em}.vp-breadcrumb a:before{position:relative;bottom:.125rem;margin-inline-end:.25em}.vp-breadcrumb a:hover{color:var(--theme-color)}.vp-breadcrumb ol{margin:0;padding-inline-start:0;list-style:none}.vp-breadcrumb li{display:inline-block;line-height:1.5}.vp-breadcrumb li:first-child a{padding-inline-start:0}.vp-breadcrumb li:last-child a{padding-inline-end:0}.vp-breadcrumb li.is-active a{color:var(--grey-light);cursor:default;pointer-events:none}.vp-breadcrumb li+li:before{content:"/";color:var(--grey-light)}.toggle-sidebar-wrapper{position:fixed;inset-inline-start:var(--sidebar-space);top:var(--navbar-height);bottom:0;z-index:100;display:flex;align-items:center;justify-content:center;font-size:2rem;transition:inset-inline-start var(--transform-transition)}@media (max-width: 719px){.toggle-sidebar-wrapper{display:none}}@media (min-width: 1440px){.toggle-sidebar-wrapper{display:none}}@media print{.toggle-sidebar-wrapper{display:none}}.toggle-sidebar-wrapper:hover{background:#7f7f7f0d;cursor:pointer}.toggle-sidebar-wrapper .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html[data-theme=dark] .toggle-sidebar-wrapper .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.toggle-sidebar-wrapper .arrow.down{transform:rotate(180deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.down{transform:rotate(-180deg)}.toggle-sidebar-wrapper .arrow.end{transform:rotate(90deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.end,.toggle-sidebar-wrapper .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.start{transform:rotate(90deg)}.theme-container{display:flex;flex-flow:column;justify-content:space-between;min-height:100vh}.theme-container .vp-page{padding-top:var(--navbar-height);padding-inline-start:calc(var(--sidebar-space) + 2rem)}@media (max-width: 719px){.theme-container .vp-page{padding-inline:0}}@media (min-width: 1440px){.theme-container .vp-page{padding-inline-end:calc(100vw - var(--content-width) - var(--sidebar-space) - 6rem)}}.theme-container .vp-sidebar{top:var(--navbar-height)}.theme-container.no-navbar .vp-page{padding-top:0}.theme-container.no-navbar .vp-sidebar{top:0}@media (max-width: 719px){.theme-container.no-navbar .vp-sidebar{top:0}}@media (max-width: 719px){.theme-container.hide-navbar .vp-sidebar{top:0}}.theme-container.sidebar-collapsed .vp-page{padding-inline-start:0}.theme-container.sidebar-collapsed .vp-sidebar{box-shadow:none;transform:translate(-100%)}html[dir=rtl] .theme-container.sidebar-collapsed .vp-sidebar{transform:translate(100%)}.theme-container.sidebar-collapsed .toggle-sidebar-wrapper{inset-inline-start:0}.theme-container.no-sidebar .vp-page{padding-inline:0}@media (min-width: 1440px){.theme-container.no-sidebar.has-toc .vp-page{padding-inline-end:16rem}}.theme-container.no-sidebar .vp-toggle-sidebar-button,.theme-container.no-sidebar .toggle-sidebar-wrapper,.theme-container.no-sidebar .vp-sidebar{display:none}.theme-container.sidebar-open .vp-sidebar{box-shadow:2px 0 8px var(--card-shadow);transform:translate(0)}.vp-external-link-icon:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .external-link:not(.no-external-link-icon):after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .theme-hope-content a[href*="://"]:not(.no-external-link-icon):after,.external-link-icon .theme-hope-content a[target=_blank]:not(.no-external-link-icon):after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.fade-slide-y-enter-active{transition:all .3s ease!important}.fade-slide-y-leave-active{transition:all .3s cubic-bezier(1,.5,.8,1)!important}.fade-slide-y-enter-from,.fade-slide-y-leave-to{opacity:0;transform:translateY(10px)}.vp-feature-wrapper{position:relative}.vp-feature-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-attachment:fixed;background-position:50%;background-size:cover}.vp-feature-bg.light{display:inline-block}.vp-feature-bg.dark,html[data-theme=dark] .vp-feature-bg.light{display:none}html[data-theme=dark] .vp-feature-bg.dark{display:inline-block}.vp-feature{position:relative;z-index:1;margin:0 auto;padding:1.5rem 1rem;color:var(--text-color-lighter);text-align:center}.vp-feature-bg+.vp-feature{color:#222}html[data-theme=dark] .vp-feature-bg+.vp-feature{color:#eee}.vp-feature-bg+.vp-feature .icon{color:inherit}.vp-feature-image{height:10rem;margin:0 auto}@media (max-width: 959px){.vp-feature-image{height:8rem}}.vp-feature-image.light{display:inline-block}.vp-feature-image.dark,html[data-theme=dark] .vp-feature-image.light{display:none}html[data-theme=dark] .vp-feature-image.dark{display:inline-block}.vp-feature-header{margin-bottom:1.5rem;border-bottom:none;font-size:3rem;font-family:var(--font-family);text-align:center}@media (max-width: 959px){.vp-feature-header{font-size:2.5rem}}@media (max-width: 719px){.vp-feature-header{font-size:2.25rem}}@media (max-width: 419px){.vp-feature-header{font-size:2rem}}.vp-feature-description{font-size:1.125rem}.vp-features{z-index:1;display:flex;flex-wrap:wrap;place-content:stretch center;align-items:stretch;margin:1rem 0;text-align:start}@media print{.vp-features{display:block}}.vp-features:first-child{border-top:1px solid var(--border-color)}.vp-feature-item{position:relative;display:block;flex-basis:calc(33% - 3rem);margin:.5rem;padding:1rem;border-radius:.5rem;color:inherit;transition:background var(--color-transition),box-shadow var(--color-transition),transform var(--transform-transition)}@media (min-width: 1440px){.vp-feature-item{flex-basis:calc(25% - 3rem)}}@media (max-width: 959px){.vp-feature-item{flex-basis:calc(50% - 3rem)}}@media (max-width: 719px){.vp-feature-item{flex-basis:100%;font-size:.95rem}}@media (max-width: 419px){.vp-feature-item{margin:.5rem 0;font-size:.9rem}}.vp-feature-item.link{cursor:pointer;transition:transform var(--transform-transition)}@media print{.vp-feature-item.link{text-decoration:none}}.vp-feature-item.link:hover{background-color:var(--bg-color-secondary)}.vp-feature-bg+.vp-feature .vp-feature-item.link:hover{background-color:transparent;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.vp-feature-item.link:hover:before{content:"➜";display:block;float:right}.vp-feature-item.link:active{transform:scale(.96)}.vp-feature-item .icon{display:inline-block;height:1.1em;margin-inline-end:.5rem;color:var(--theme-color);font-weight:400;font-size:1.1em}.vp-feature-item:only-child{flex-basis:100%}.vp-feature-item:first-child:nth-last-child(2),.vp-feature-item:nth-child(2):last-child{flex-basis:calc(50% - 3rem)}@media (max-width: 719px){.vp-feature-item:first-child:nth-last-child(2),.vp-feature-item:nth-child(2):last-child{flex-basis:100%}}.vp-feature-title{margin:.25rem 0 .5rem;font-weight:700;font-size:1.3rem;font-family:var(--font-family)}@media (max-width: 419px){.vp-feature-title{font-size:1.2rem}}.vp-feature-details{margin:0;line-height:1.4}.vp-footer-wrapper{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly;padding-block:.75rem;padding-inline:calc(var(--sidebar-space) + 2rem) 2rem;border-top:1px solid var(--border-color);background:var(--bg-color);color:var(--grey-dark);text-align:center;transition:border-top-color var(--color-transition),background var(--color-transition),padding var(--transform-transition)}@media (max-width: 719px){.vp-footer-wrapper{padding-inline-start:2rem}}@media (min-width: 1440px){.vp-footer-wrapper{z-index:50;padding-inline-start:2rem}}@media print{.vp-footer-wrapper{margin:0!important;padding:0!important}}@media (max-width: 419px){.vp-footer-wrapper{display:block}}.no-sidebar .vp-footer-wrapper,.sidebar-collapsed .vp-footer-wrapper{padding-inline-start:2rem}.vp-footer{margin:.5rem 1rem;font-size:14px}@media print{.vp-footer{display:none}}.vp-copyright{margin:6px 0;font-size:13px}.vp-page:not(.not-found)+.vp-footer-wrapper{margin-top:-2rem}.vp-hero-info-wrapper{position:relative;display:flex;align-items:center;justify-content:center;margin-inline:auto}.vp-hero-info-wrapper.fullscreen{height:calc(100vh - var(--navbar-height))!important}.vp-hero-info{z-index:1;width:100%;padding-inline:2.5rem}@media (max-width: 959px){.vp-hero-info{padding-inline:1.5rem}}@media (min-width: 959px){.vp-hero-info{display:flex;align-items:center;justify-content:space-evenly}}.vp-hero-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-position:50%;background-size:cover}.vp-hero-mask:after{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block}.vp-hero-mask.light{display:block}html[data-theme=dark] .vp-hero-mask.light,.vp-hero-mask.dark{display:none}html[data-theme=dark] .vp-hero-mask.dark{display:block}.vp-hero-infos{z-index:1;margin:0 .5rem}.vp-hero-image{display:block;max-width:100%;max-height:18rem;margin:1rem}@media (max-width: 959px){.vp-hero-image{margin:2rem auto}}@media (max-width: 719px){.vp-hero-image{max-height:16rem;margin:1.5rem auto}}@media (max-width: 419px){.vp-hero-image{max-height:14rem}}.vp-hero-image.light{display:block}html[data-theme=dark] .vp-hero-image.light,.vp-hero-image.dark{display:none}html[data-theme=dark] .vp-hero-image.dark{display:block}.vp-hero-title{margin:.5rem 0;background:linear-gradient(120deg,var(--theme-color-light),var(--theme-color) 30%,#3e71af 100%);-webkit-background-clip:text;background-clip:text;font-weight:700;font-size:3.6rem;font-family:var(--font-family);line-height:1.5;-webkit-text-fill-color:transparent}@media (max-width: 719px){.vp-hero-title{margin:0}}@media (max-width: 959px){.vp-hero-title{font-size:2.5rem;text-align:center}}@media (max-width: 719px){.vp-hero-title{font-size:2.25rem;text-align:center}}@media (max-width: 419px){.vp-hero-title{margin:0 auto;font-size:2rem}}#main-description,.vp-hero-actions{margin:1.8rem 0}@media (max-width: 719px){#main-description,.vp-hero-actions{margin:1.5rem 0}}@media (max-width: 959px){#main-description,.vp-hero-actions{margin:1.5rem auto;text-align:center}}@media (max-width: 419px){#main-description,.vp-hero-actions{margin:1.2rem 0}}#main-description{max-width:35rem;color:var(--text-color-light);font-weight:500;font-size:1.6rem;line-height:1.3}@media (max-width: 719px){#main-description{font-size:1.4rem}}@media (max-width: 419px){#main-description{font-size:1.2rem}}.vp-hero-action{display:inline-block;overflow:hidden;min-width:4rem;margin:.5rem;padding:.5em 1.5rem;border-radius:2rem;background:var(--bg-color-secondary);color:var(--text-color);font-size:1.2rem;text-align:center;transition:color var(--color-transition),color var(--color-transition),transform var(--transform-transition)}@media (max-width: 719px){.vp-hero-action{padding:.5rem 1rem;font-size:1.1rem}}@media (max-width: 419px){.vp-hero-action{font-size:1rem}}@media print{.vp-hero-action{text-decoration:none}}.vp-hero-action:hover{background:var(--bg-color-tertiary)}.vp-hero-action.primary{border-color:var(--theme-color);background:var(--theme-color);color:var(--white)}.vp-hero-action.primary:hover{border-color:var(--theme-color-light);background:var(--theme-color-light)}.theme-container:not(.pure) .vp-hero-action:active{transform:scale(.96)}.vp-hero-action .icon{margin-inline-end:.25em}.vp-highlight-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.vp-highlight-wrapper:nth-child(odd) .vp-highlight{flex-flow:row-reverse}.vp-highlight{z-index:1;display:flex;flex:1;align-items:center;justify-content:flex-end;max-width:var(--home-page-width);margin:0 auto;padding:1.5rem 2.5rem;color:#222}@media (max-width: 719px){.vp-highlight{display:block;padding-inline:1.5rem;text-align:center}}html[data-theme=dark] .vp-highlight{color:#eee}.vp-highlight-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-attachment:fixed;background-position:50%;background-size:cover}.vp-highlight-bg.light{display:inline-block}.vp-highlight-bg.dark,html[data-theme=dark] .vp-highlight-bg.light{display:none}html[data-theme=dark] .vp-highlight-bg.dark{display:inline-block}.vp-highlight-image{width:12rem;margin:2rem 4rem}@media (max-width: 959px){.vp-highlight-image{width:10rem}}@media (max-width: 719px){.vp-highlight-image{width:8rem;margin:0 auto}}.vp-highlight-image.light{display:inline-block}.vp-highlight-image.dark,html[data-theme=dark] .vp-highlight-image.light{display:none}html[data-theme=dark] .vp-highlight-image.dark{display:inline-block}.vp-highlight-info-wrapper{display:flex;flex:1;justify-content:center;padding:2rem}@media (max-width: 719px){.vp-highlight-info-wrapper{padding:1rem 0}}.vp-highlight-info-wrapper:only-child{flex:1 0 100%}.vp-highlight-info{text-align:start}.vp-highlight-header{margin-bottom:1.5rem;border-bottom:none;font-size:3rem;font-family:var(--font-family)}@media (max-width: 959px){.vp-highlight-header{font-size:2.5rem}}@media (max-width: 719px){.vp-highlight-header{font-size:2.25rem;text-align:center}}@media (max-width: 419px){.vp-highlight-header{font-size:2rem}}.vp-highlight-description{font-size:1.125rem}.vp-highlights{margin-inline-start:-1.25em;padding-inline-start:0}.vp-highlight-item-wrapper{position:relative;padding:.5em .5em .5em 1.75em;border-radius:.5rem;list-style:none}.vp-highlight-item-wrapper.link{cursor:pointer;transition:transform var(--transform-transition)}.vp-highlight-item-wrapper.link:hover{background-color:var(--bg-color-secondary)}.vp-highlight-bg+.vp-highlight .vp-highlight-item-wrapper.link:hover{background-color:transparent;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.vp-highlight-item-wrapper.link:hover:before{content:"➜";display:block;float:right}.vp-highlight-item-wrapper.link:active{transform:scale(.96)}.vp-highlight-item-wrapper::marker{font-weight:700}.vp-highlight-item{display:list-item;color:inherit;list-style:initial}@media print{.vp-highlight-item{text-decoration:none}}.vp-highlight-title{margin:0;font-weight:600;font-size:1.125rem;font-family:var(--font-family)}.vp-highlight-title .icon{margin-inline-end:.25em;font-size:1em}.vp-highlight-title img.icon{vertical-align:-.125em;height:1em}.vp-highlight-details{margin:.5rem 0 0}.vp-project-home{--content-width: var(--home-page-width);display:block;flex:1;padding-top:var(--navbar-height)}@media screen{.vp-project-home .vp-hero-info-wrapper:not(.fullscreen) .vp-hero-info{max-width:var(--home-page-width)}}@media screen{.vp-project-home .vp-feature{max-width:var(--home-page-width)}}.vp-project-home .theme-hope-content{padding-bottom:1.5rem!important}.vp-project-home .theme-hope-content:empty{padding:0!important}.not-found-hint{padding:2rem}.not-found-hint .error-code{margin:0;font-weight:700;font-size:4rem;line-height:4rem}.not-found-hint .error-title{font-weight:700}.not-found-hint .error-hint{margin:0;padding:12px 0;font-weight:600;font-size:20px;line-height:20px;letter-spacing:2px}.vp-page.not-found{display:flex;flex-flow:column;align-items:center;justify-content:center;box-sizing:border-box;width:100vw;max-width:var(--home-page-width);margin:0 auto;padding:calc(var(--navbar-height) + 1rem) 1rem 1rem!important;text-align:center}.vp-page.not-found .action-button{display:inline-block;box-sizing:border-box;margin:.25rem;padding:.75rem 1rem;border-width:0;border-bottom:1px solid var(--theme-color-dark);border-radius:3rem;background:var(--theme-color);color:var(--white);outline:none;font-size:1rem;transition:background var(--color-transition)}.vp-page.not-found .action-button:hover{background:var(--theme-color-light);cursor:pointer}.vp-page-nav{display:flex;flex-wrap:wrap;max-width:var(--content-width, 740px);min-height:2rem;margin-inline:auto;margin-top:0;padding-block:.5rem;padding-inline:2rem;border-top:1px solid var(--border-color)}@media (max-width: 959px){.vp-page-nav{padding-inline:1rem}}@media print{.vp-page-nav{display:none}}.vp-page-nav .auto-link{display:inline-block;flex-grow:1;margin:.25rem;padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:.25rem}.vp-page-nav .auto-link:hover{background:var(--bg-color-secondary)}.vp-page-nav .auto-link .hint{color:var(--grey-light);font-size:.875rem;line-height:2}.vp-page-nav .auto-link .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:.75rem}html[data-theme=dark] .vp-page-nav .auto-link .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-page-nav .auto-link .arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-page-nav .auto-link .arrow.down{transform:rotate(-180deg)}.vp-page-nav .auto-link .arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-page-nav .auto-link .arrow.end,.vp-page-nav .auto-link .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-page-nav .auto-link .arrow.start{transform:rotate(90deg)}.vp-page-nav .prev{text-align:start}.vp-page-nav .prev .icon{margin-inline-end:.25em;font-size:1em}.vp-page-nav .prev img.icon{vertical-align:-.125em;height:1em}.vp-page-nav .next{text-align:end}.vp-page-nav .next .icon{margin-inline-start:.25em;font-size:1em}.vp-page-nav .next img.icon{vertical-align:-.125em;height:1em}.vp-page-title{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;position:relative;z-index:1;padding-top:1rem;padding-bottom:0}@media (max-width: 959px){.vp-page-title{padding-inline:1.5rem}}@media print{.vp-page-title{max-width:unset}}@media print{.vp-page-title{padding-inline:0!important}}@media (max-width: 959px){.vp-page-title{padding-top:.5rem}}.vp-page-title h1{margin-top:calc(0px - var(--navbar-height))!important;margin-bottom:1rem;padding-top:var(--navbar-height)!important;font-size:2.2rem}@media (max-width: 959px){.vp-page-title h1{margin-bottom:.5rem}}.vp-page-title h1 .icon{margin-inline-end:.25em;color:var(--theme-color);font-size:.9em}.vp-page-title h1 img.icon{vertical-align:-.125em;height:1em}.theme-hope-content:not(.custom){padding-top:0!important}.theme-hope-content:not(.custom) h1:first-child,.theme-hope-content:not(.custom) h2:first-child,.theme-hope-content:not(.custom) h3:first-child,.theme-hope-content:not(.custom) h4:first-child,.theme-hope-content:not(.custom) h5:first-child,.theme-hope-content:not(.custom) h6:first-child{margin-top:calc(.5rem - var(--navbar-height))!important;padding-top:var(--navbar-height)!important}.theme-hope-content:not(.custom)>h1:first-child{display:none}.vp-page{display:block;flex-grow:1;padding-bottom:2rem;transition:padding var(--transform-transition)}@media print{.vp-page{min-height:auto!important;margin:0!important;padding:0!important}}.page-cover{width:var(--content-width);margin-inline:auto}@media (max-width: 719px){.page-cover{width:100%}}.page-cover img{-o-object-fit:cover;object-fit:cover;width:100%;max-height:25vh;border-radius:.5rem}@media (max-width: 719px){.page-cover img{border-radius:0}}#vp-comment{max-width:var(--content-width, 740px);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){#vp-comment{padding:1.5rem}}@media (max-width: 419px){#vp-comment{padding:1rem 1.5rem}}@media print{#vp-comment{max-width:unset}}@keyframes cursor-blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.vp-portfolio{position:relative;z-index:1;overflow:hidden;box-sizing:border-box}.vp-portfolio:not(.bg){background:var(--theme-color-mask)}.vp-portfolio:not(.bg):after{content:"";position:absolute;top:-200px;left:-200px;z-index:-1;width:1000px;height:1000px;border-radius:50%;background-color:var(--white)}@media (max-width: 959px){.vp-portfolio:not(.bg):after{display:none}}.vp-portfolio-mask{position:absolute;top:0;right:0;bottom:0;left:0}.vp-portfolio-mask:after{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;background:var(--grey-light);opacity:.2}.vp-portfolio-mask.light{display:block}html[data-theme=dark] .vp-portfolio-mask.light,.vp-portfolio-mask.dark{display:none}html[data-theme=dark] .vp-portfolio-mask.dark{display:block}.vp-portfolio-avatar{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:end;justify-content:center;width:50vw;height:100vh;border-radius:10px}@media (min-width: 1440px){.vp-portfolio-avatar{width:60vw}}@media (max-width: 959px){.vp-portfolio-avatar{width:100vw}}.vp-portfolio-avatar img{max-height:93vh}.vp-portfolio-avatar img.light{display:block}html[data-theme=dark] .vp-portfolio-avatar img.light,.vp-portfolio-avatar img.dark{display:none}html[data-theme=dark] .vp-portfolio-avatar img.dark{display:block}.vp-portfolio-container{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:100vh;padding-top:120px;padding-bottom:70px}.vp-portfolio-info{position:relative;flex:0 0 50%;box-sizing:border-box;max-width:50%;padding:0 25px}@media (max-width: 959px){.vp-portfolio-info{position:absolute;right:15px;bottom:15px;left:15px;flex:0 0 100%;max-width:unset;padding:2rem 1.5rem;border-radius:.5rem;background:var(--bg-color-blur);text-align:center}}.vp-portfolio-info .vp-social-medias{justify-content:start}@media (max-width: 959px){.vp-portfolio-info .vp-social-medias{justify-content:center}}.vp-portfolio-welcome{margin:0 0 10px;padding:0;color:var(--theme-color);font-weight:600;font-size:28px}@media (max-width: 959px){.vp-portfolio-welcome{font-size:18px}}.vp-portfolio-name{margin:0 0 10px;padding:0;color:var(--black);font-weight:700;font-size:64px}@media (min-width: 1440px){.vp-portfolio-name{font-size:72px}}@media (max-width: 959px){.vp-portfolio-name{font-size:36px}}.vp-portfolio-title{position:relative;margin:0;padding:0;border-bottom:none;color:var(--theme-color);font-weight:600;font-size:25px}@media (max-width: 959px){.vp-portfolio-title{font-size:18px}}.vp-portfolio-title:after{content:"";display:inline-block;vertical-align:top;width:2px;height:1.3em;background:var(--theme-color);animation-name:cursor-blink;animation-duration:1s;animation-iteration-count:infinite}.vp-portfolio-medias{display:flex;flex-wrap:wrap;justify-content:center;padding-top:20px}@media (min-width: 959px){.vp-portfolio-medias{justify-content:flex-start}}.vp-portfolio-media{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--theme-color);color:var(--white);transition:ease all .35s}.vp-portfolio-media:hover{background-color:var(--theme-color-light);cursor:pointer}.vp-portfolio-media:after{--balloon-font-size: 10px;padding:.2em .4em!important}.vp-portfolio-media+a{margin-left:5px}.theme-hope-content.vp-portfolio-content{--content-width: min(84%, 1200px);display:flex;flex-flow:column;align-items:center}@media (min-width: 1280px){.theme-hope-content.vp-portfolio-content{font-size:18px}}@media (max-width: 419px){.theme-hope-content.vp-portfolio-content{font-size:14px}}.theme-hope-content.vp-portfolio-content>h2,.theme-hope-content.vp-portfolio-content>h3,.theme-hope-content.vp-portfolio-content>h4,.theme-hope-content.vp-portfolio-content>h5,.theme-hope-content.vp-portfolio-content>h6{margin-bottom:1rem;border-bottom:none;text-align:center}.theme-hope-content.vp-portfolio-content>h2{font-size:2.5rem}@media (max-width: 419px){.theme-hope-content.vp-portfolio-content>h2{font-size:2rem}}.theme-hope-content.vp-portfolio-content>h3{font-size:2rem}@media (max-width: 419px){.theme-hope-content.vp-portfolio-content>h3{font-size:1.75rem}}.theme-hope-content.vp-portfolio-content>p{align-self:stretch}.theme-hope-content.vp-portfolio-content .header-anchor>span{--underline: rgba(62, 175, 124, .4);background:linear-gradient(var(--underline),var(--underline)) no-repeat;background-position:-.1em calc(100% - .05em);background-size:calc(100% + .1em) .2em;text-shadow:.05em 0 var(--bg-color),-.05em 0 var(--bg-color)}html[data-theme=dark] .theme-hope-content.vp-portfolio-content .header-anchor>span{--underline: rgba(62, 175, 124, .4)}.theme-hope-content.vp-portfolio-content .header-anchor>span:before,.theme-hope-content.vp-portfolio-content .header-anchor>span:after{content:"";position:relative;bottom:.05em;display:inline-block;vertical-align:text-bottom;width:.1em;height:.2em;background-color:var(--underline)}.theme-hope-content.vp-portfolio-content .header-anchor>span:before{left:-.1em;border-radius:.2em 0 0 .2em}.theme-hope-content.vp-portfolio-content .header-anchor>span:after{right:-.1em;border-radius:0 .2em .2em 0}.vp-skip-link{inset-inline-start:.25rem;top:.25rem;z-index:999;padding:.65rem 1.5rem;border-radius:.5rem;background:var(--bg-color);color:var(--theme-color);box-shadow:var(--card-shadow);font-weight:700;font-size:.9em;text-decoration:none}@media print{.vp-skip-link{display:none}}.vp-skip-link:focus{clip-path:none;clip:auto;width:auto;height:auto}div[class*=language-]{position:relative;border-radius:6px;font-size:16px}@media (max-width: 419px){.theme-hope-content>div[class*=language-]{margin:.875rem -1.5rem;border-radius:0}}div[class*=language-]:before{content:attr(data-title);position:absolute;top:0;right:1em;z-index:3;color:var(--code-line-number-color);font-size:.75rem}div[class*=language-] pre{position:relative;z-index:1;overflow:auto;margin:.875rem 0;border-radius:6px;background:var(--code-bg-color)!important;line-height:1.6}div[class*=language-] pre code{display:block;box-sizing:border-box;width:-moz-fit-content;width:fit-content;min-width:100%;padding:1.25rem;border-radius:0;background:transparent;color:var(--code-color);font-family:var(--font-family-mono)}@media print{div[class*=language-] pre code{padding:.5rem}}div[class*=language-] .line.highlighted{display:inline-block;width:100%;margin:0 -1.25rem;padding:0 1.25rem;background-color:var(--code-highlight-bg-color);transition:background-color .5s}div[class*=language-] .line.highlighted.error{background-color:var(--code-highlight-error-bg-color)}div[class*=language-] .line.highlighted.warning{background-color:var(--code-highlight-warning-bg-color)}div[class*=language-] .line.diff{display:inline-block;width:100%;margin:0 -1.25rem;padding:0 1.25rem;transition:background-color .5s}div[class*=language-] .line.diff:before{position:absolute;left:10px}div[class*=language-] .line.diff.remove{background-color:var(--code-line-diff-remove-color);opacity:.7}div[class*=language-] .line.diff.remove:before{content:"-";color:var(--code-line-diff-remove-symbol-color)}div[class*=language-] .line.diff.add{background-color:var(--code-line-diff-add-color)}div[class*=language-] .line.diff.add:before{content:"+";color:var(--code-line-diff-add-symbol-color)}div[class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;filter:blur(.095rem);transition:filter .35s,opacity .35s}div[class*=language-] .has-focused-lines:hover .line:not(.has-focus){opacity:1;filter:blur(0)}div[class*=language-] .highlighted-word{margin:-1px -2px;padding:1px 2px;border:solid 1px var(--code-word-highlight-border);border-radius:4px;background-color:var(--code-word-highlight-bg-color)}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;top:0;bottom:0;left:0;z-index:2;width:var(--code-line-number-width);border-right:1px solid var(--code-highlight-bg-color);border-radius:6px 0 0 6px;background:var(--code-bg-color)}@media (max-width: 419px){div[class*=language-].line-numbers-mode:after{border-radius:0}}@media print{div[class*=language-].line-numbers-mode:after{display:none}}div[class*=language-].line-numbers-mode pre{vertical-align:middle;margin-left:var(--code-line-number-width)}@media print{div[class*=language-].line-numbers-mode pre{margin-left:0}}div[class*=language-].line-numbers-mode pre code{padding-left:.5rem}div[class*=language-].line-numbers-mode .line-numbers{counter-reset:line-number;position:absolute;top:0;bottom:0;left:0;display:flex;flex-flow:column;width:var(--code-line-number-width);padding:1.25rem 0;color:var(--code-line-number-color);font-size:.875em;font-family:var(--font-family-mono);line-height:1.6;text-align:center}@media print{div[class*=language-].line-numbers-mode .line-numbers{display:none}}div[class*=language-].line-numbers-mode .line-number{position:relative;z-index:3;-webkit-user-select:none;-moz-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-number:before{content:counter(line-number);counter-increment:line-number}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}div[class*=language-] .tab,div[class*=language-] .space{position:relative}div[class*=language-] .tab:before,div[class*=language-] .space:before{position:absolute;opacity:.3}div[class*=language-] .tab:before{content:"⇥"}div[class*=language-] .space:before{content:"·"}html[data-theme=light]{--code-color: #383a42;--code-bg-color: #ecf4fa;--code-border-color: rgb(194.5, 222.1571428571, 242.9);--code-highlight-bg-color: rgb(215.75625, 233.00625, 245.94375);--code-line-number-color: rgba(56, 58, 66, .67)}html[data-theme=dark]{--code-color: #abb2bf;--code-bg-color: #282c34;--code-border-color: rgb(52.3565217391, 62.052173913, 81.4434782609);--code-highlight-bg-color: rgb(46.6326086957, 53.1775362319, 66.2673913043);--code-line-number-color: rgba(171, 178, 191, .67)}html[data-theme=light] .shiki span{color:var(--shiki-light)}html[data-theme=dark] .shiki span{color:var(--shiki-dark)}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);width:1px;height:1px;margin:-1px;padding:0;border-width:0;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media print{.theme-hope-content{margin:0!important;padding-inline:0!important}}.theme-hope-content.custom{margin:0;padding:0}.theme-hope-content:not(.custom){max-width:var(--content-width, 740px);margin:0 auto;padding:2rem 2.5rem;padding-top:0}@media (max-width: 959px){.theme-hope-content:not(.custom){padding:1.5rem}}@media (max-width: 419px){.theme-hope-content:not(.custom){padding:1rem 1.5rem}}@media print{.theme-hope-content:not(.custom){max-width:unset}}.theme-hope-content:not(.custom)>h1,.theme-hope-content:not(.custom)>h2,.theme-hope-content:not(.custom)>h3,.theme-hope-content:not(.custom)>h4,.theme-hope-content:not(.custom)>h5,.theme-hope-content:not(.custom)>h6{margin-top:calc(.5rem - var(--navbar-height));margin-bottom:.5rem;padding-top:calc(1rem + var(--navbar-height));outline:none}.theme-container.no-navbar .theme-hope-content:not(.custom)>h1,.theme-container.no-navbar .theme-hope-content:not(.custom)>h2,.theme-container.no-navbar .theme-hope-content:not(.custom)>h3,.theme-container.no-navbar .theme-hope-content:not(.custom)>h4,.theme-container.no-navbar .theme-hope-content:not(.custom)>h5,.theme-container.no-navbar .theme-hope-content:not(.custom)>h6{margin-top:1.5rem;padding-top:0}.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:justify;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}@media (max-width: 419px){.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:start}}@media print{.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:start}}.theme-hope-content a:not(.header-anchor):hover{text-decoration:underline}.theme-hope-content img{max-width:100%}.theme-hope-content table img{max-width:unset}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}html[data-theme=light]::view-transition-old(root),html[data-theme=dark]::view-transition-new(root){z-index:1}html[data-theme=light]::view-transition-new(root),html[data-theme=dark]::view-transition-old(root){z-index:99999}@media (min-width: 1280px){.chart-wrapper::-webkit-scrollbar,.flowchart-wrapper::-webkit-scrollbar,.mermaid-wrapper::-webkit-scrollbar{width:8px;height:8px}.chart-wrapper::-webkit-scrollbar-track-piece,.flowchart-wrapper::-webkit-scrollbar-track-piece,.mermaid-wrapper::-webkit-scrollbar-track-piece{border-radius:8px;background:#0000001a}}html[dir=rtl] a.header-anchor:before{right:-.75em}#docsearch-container{min-width:145.7px!important}@media (max-width: 959px){#docsearch-container{min-width:36px!important}}.DocSearch.DocSearch-Button{margin-left:0}@media (max-width: 959px){.DocSearch.DocSearch-Button{min-width:36px!important}}.DocSearch .DocSearch-Button-Placeholder{display:inline-block;padding:4px 12px 4px 6px;font-size:14px}@media (max-width: 719px){.DocSearch .DocSearch-Button-Placeholder{display:none}}.DocSearch .DocSearch-Search-Icon{width:1.25em;height:1.25em}@media (max-width: 959px){.DocSearch .DocSearch-Button-Keys{display:none}}.DocSearch .DocSearch-Button-Key{background:var(--bg-color);box-shadow:none}:root{scrollbar-width:thin}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track-piece{border-radius:6px;background:#0000001a}::-webkit-scrollbar-thumb{border-radius:6px;background:var(--theme-color)}::-webkit-scrollbar-thumb:active{background:var(--theme-color-light)}@media (max-width: 719px){.hide-in-mobile{display:none!important}}@media (max-width: 959px){.hide-in-pad{display:none!important}}.page-author-item{display:inline-block;margin:0 4px;font-weight:400;overflow-wrap:break-word}.page-category-info{flex-wrap:wrap}.page-category-item{display:inline-block;margin:.125em .25em;padding:0 .25em;border-radius:.25em;background:var(--bg-color-secondary);color:var(--text-color-light);font-weight:700;font-size:.75rem;line-height:2;transition:background var(--color-transition),color var(--color-transition)}@media print{.page-category-item{padding:0;font-weight:400}.page-category-item:after{content:", "}.page-category-item:last-of-type:after{content:""}}.page-category-item.clickable{cursor:pointer}.page-category-item.clickable:not([class*=color]):hover{color:var(--theme-color)}.page-category-item.color0{background:#fde5e7;color:#ec2f3e}html[data-theme=dark] .page-category-item.color0{background:#340509;color:#ba111f}.page-category-item.color0.clickable:hover{background:#f9bec3}html[data-theme=dark] .page-category-item.color0.clickable:hover{background:#53080e}.page-category-item.color1{background:#ffeee8;color:#fb7649}html[data-theme=dark] .page-category-item.color1{background:#441201;color:#f54205}.page-category-item.color1.clickable:hover{background:#fed4c6}html[data-theme=dark] .page-category-item.color1.clickable:hover{background:#6d1d02}.page-category-item.color2{background:#fef5e7;color:#f5b041}html[data-theme=dark] .page-category-item.color2{background:#3e2703;color:#e08e0b}.page-category-item.color2.clickable:hover{background:#fce6c4}html[data-theme=dark] .page-category-item.color2.clickable:hover{background:#633f05}.page-category-item.color3{background:#eafaf1;color:#55d98d}html[data-theme=dark] .page-category-item.color3{background:#0c331c;color:#29b866}.page-category-item.color3.clickable:hover{background:#caf3db}html[data-theme=dark] .page-category-item.color3.clickable:hover{background:#12522d}.page-category-item.color4{background:#e6f9ee;color:#36d278}html[data-theme=dark] .page-category-item.color4{background:#092917;color:#219552}.page-category-item.color4.clickable:hover{background:#c0f1d5}html[data-theme=dark] .page-category-item.color4.clickable:hover{background:#0f4224}.page-category-item.color5{background:#e1fcfc;color:#16e1e1}html[data-theme=dark] .page-category-item.color5{background:#042929;color:#0e9595}.page-category-item.color5.clickable:hover{background:#b4f8f8}html[data-theme=dark] .page-category-item.color5.clickable:hover{background:#064242}.page-category-item.color6{background:#e4f0fe;color:#2589f6}html[data-theme=dark] .page-category-item.color6{background:#021b36;color:#0862c3}.page-category-item.color6.clickable:hover{background:#bbdafc}html[data-theme=dark] .page-category-item.color6.clickable:hover{background:#042c57}.page-category-item.color7{background:#f7f1fd;color:#bb8ced}html[data-theme=dark] .page-category-item.color7{background:#2a0b4b;color:#9851e4}.page-category-item.color7.clickable:hover{background:#eadbfa}html[data-theme=dark] .page-category-item.color7.clickable:hover{background:#431277}.page-category-item.color8{background:#fdeaf5;color:#ef59ab}html[data-theme=dark] .page-category-item.color8{background:#400626;color:#e81689}.page-category-item.color8.clickable:hover{background:#facbe5}html[data-theme=dark] .page-category-item.color8.clickable:hover{background:#670a3d}.page-original-info{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;padding:0 .5em;border:.5px solid var(--grey-dark);border-radius:.75em;background:var(--bg-color);font-size:.75em;line-height:1.5!important}.page-info{display:flex;flex-wrap:wrap;place-content:stretch flex-start;align-items:center;color:var(--grey-dark);font-size:14px}@media print{.page-info{display:flex!important}}.page-info>span{display:flex;align-items:center;max-width:100%;margin-inline-end:.5em;line-height:2}@media (min-width: 1440px){.page-info>span{font-size:1.1em}}@media (max-width: 419px){.page-info>span{margin-inline-end:.3em;font-size:.875em}}@media print{.page-info>span{display:flex!important}}.page-info .icon{position:relative;display:inline-block;vertical-align:middle;width:1em;height:1em;margin-inline-end:.25em}.page-info a{color:inherit}.page-info a:hover,.page-info a:active{color:var(--theme-color)}.vp-page-meta{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;overflow:auto;padding-top:.75rem;padding-bottom:.75rem}@media (max-width: 959px){.vp-page-meta{padding-inline:1.5rem}}@media print{.vp-page-meta{max-width:unset}}@media print{.vp-page-meta{margin:0!important;padding-inline:0!important}}@media (max-width: 719px){.vp-page-meta{display:block}}.vp-page-meta .vp-meta-item{flex-grow:1}.vp-page-meta .vp-meta-item .vp-meta-label{font-weight:500}.vp-page-meta .vp-meta-item .vp-meta-label:not(a){color:var(--text-color-lighter)}.vp-page-meta .vp-meta-item .vp-meta-info{color:var(--grey-dark);font-weight:400}.vp-page-meta .git-info{text-align:end}.vp-page-meta .edit-link{margin-top:.25rem;margin-bottom:.25rem;margin-inline-end:.5rem;font-size:14px}@media print{.vp-page-meta .edit-link{display:none}}.vp-page-meta .edit-link .icon{position:relative;bottom:-.125em;width:1em;height:1em;margin-inline-end:.25em}.vp-page-meta .update-time,.vp-page-meta .contributors{margin-top:.25rem;margin-bottom:.25rem;font-size:14px}@media (max-width: 719px){.vp-page-meta .update-time,.vp-page-meta .contributors{font-size:13px;text-align:start}}.print-button{border-width:0;background:transparent;cursor:pointer;box-sizing:content-box;width:1rem;height:1rem;padding:.5rem;border-radius:.25em;color:inherit;font-size:1rem;transform:translateY(.25rem)}@media print{.print-button{display:none}}.page-tag-info{flex-wrap:wrap}.page-tag-item{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;min-width:1.5rem;margin:.125rem;padding:.125rem .25rem .125rem .625rem;background:var(--bg-color-secondary);background:linear-gradient(135deg,transparent .75em,var(--bg-color-secondary) 0) top,linear-gradient(45deg,transparent .75em,var(--bg-color-secondary) 0) bottom;background-size:100% 52%!important;background-repeat:no-repeat!important;color:var(--text-color-light);font-weight:700;font-size:.625rem;line-height:1.5;text-align:center;transition:background var(--color-transition),color var(--color-transition)}@media print{.page-tag-item{padding:0;font-weight:400}.page-tag-item:after{content:", "}.page-tag-item:last-of-type:after{content:""}}.page-tag-item.clickable{cursor:pointer}.page-tag-item.clickable:not([class*=color]):hover{color:var(--theme-color)}.page-tag-item.color0{background:#fde5e7;background:linear-gradient(135deg,transparent .75em,rgb(252.6123893805,228.9876106195,230.8725663717) 0) top,linear-gradient(45deg,transparent .75em,rgb(252.6123893805,228.9876106195,230.8725663717) 0) bottom;color:#ec2f3e}html[data-theme=dark] .page-tag-item.color0{background:#340509;background:linear-gradient(135deg,transparent .75em,rgb(51.75,4.75,8.5) 0) top,linear-gradient(45deg,transparent .75em,rgb(51.75,4.75,8.5) 0) bottom;color:#ba111f}.page-tag-item.color0.clickable:hover{background:#f9bec3;background:linear-gradient(135deg,transparent .75em,rgb(249.0309734513,189.9690265487,194.6814159292) 0) top,linear-gradient(45deg,transparent .75em,rgb(249.0309734513,189.9690265487,194.6814159292) 0) bottom}html[data-theme=dark] .page-tag-item.color0.clickable:hover{background:#53080e;background:linear-gradient(135deg,transparent .75em,rgb(82.8,7.6,13.6) 0) top,linear-gradient(45deg,transparent .75em,rgb(82.8,7.6,13.6) 0) bottom}.page-tag-item.color1{background:#ffeee8;background:linear-gradient(135deg,transparent .75em,rgb(254.5,237.9,232.3) 0) top,linear-gradient(45deg,transparent .75em,rgb(254.5,237.9,232.3) 0) bottom;color:#fb7649}html[data-theme=dark] .page-tag-item.color1{background:#441201;background:linear-gradient(135deg,transparent .75em,rgb(68.0021551724,18.2737068966,1.4978448276) 0) top,linear-gradient(45deg,transparent .75em,rgb(68.0021551724,18.2737068966,1.4978448276) 0) bottom;color:#f54205}.page-tag-item.color1.clickable:hover{background:#fed4c6;background:linear-gradient(135deg,transparent .75em,rgb(253.75,212.25,198.25) 0) top,linear-gradient(45deg,transparent .75em,rgb(253.75,212.25,198.25) 0) bottom}html[data-theme=dark] .page-tag-item.color1.clickable:hover{background:#6d1d02;background:linear-gradient(135deg,transparent .75em,rgb(108.8034482759,29.2379310345,2.3965517241) 0) top,linear-gradient(45deg,transparent .75em,rgb(108.8034482759,29.2379310345,2.3965517241) 0) bottom}.page-tag-item.color2{background:#fef5e7;background:linear-gradient(135deg,transparent .75em,rgb(253.8,245.1,231.3) 0) top,linear-gradient(45deg,transparent .75em,rgb(253.8,245.1,231.3) 0) bottom;color:#f5b041}html[data-theme=dark] .page-tag-item.color2{background:#3e2703;background:linear-gradient(135deg,transparent .75em,rgb(62.1054216867,39.3072289157,3.1445783133) 0) top,linear-gradient(45deg,transparent .75em,rgb(62.1054216867,39.3072289157,3.1445783133) 0) bottom;color:#e08e0b}.page-tag-item.color2.clickable:hover{background:#fce6c4;background:linear-gradient(135deg,transparent .75em,rgb(252,230.25,195.75) 0) top,linear-gradient(45deg,transparent .75em,rgb(252,230.25,195.75) 0) bottom}html[data-theme=dark] .page-tag-item.color2.clickable:hover{background:#633f05;background:linear-gradient(135deg,transparent .75em,rgb(99.3686746988,62.8915662651,5.0313253012) 0) top,linear-gradient(45deg,transparent .75em,rgb(99.3686746988,62.8915662651,5.0313253012) 0) bottom}.page-tag-item.color3{background:#eafaf1;background:linear-gradient(135deg,transparent .75em,rgb(233.784,250.216,240.752) 0) top,linear-gradient(45deg,transparent .75em,rgb(233.784,250.216,240.752) 0) bottom;color:#55d98d}html[data-theme=dark] .page-tag-item.color3{background:#0c331c;background:linear-gradient(135deg,transparent .75em,rgb(11.5,51,28.25) 0) top,linear-gradient(45deg,transparent .75em,rgb(11.5,51,28.25) 0) bottom;color:#29b866}.page-tag-item.color3.clickable:hover{background:#caf3db;background:linear-gradient(135deg,transparent .75em,rgb(201.96,243.04,219.38) 0) top,linear-gradient(45deg,transparent .75em,rgb(201.96,243.04,219.38) 0) bottom}html[data-theme=dark] .page-tag-item.color3.clickable:hover{background:#12522d;background:linear-gradient(135deg,transparent .75em,rgb(18.4,81.6,45.2) 0) top,linear-gradient(45deg,transparent .75em,rgb(18.4,81.6,45.2) 0) bottom}.page-tag-item.color4{background:#e6f9ee;background:linear-gradient(135deg,transparent .75em,rgb(229.8415841584,249.3584158416,238.0752475248) 0) top,linear-gradient(45deg,transparent .75em,rgb(229.8415841584,249.3584158416,238.0752475248) 0) bottom;color:#36d278}html[data-theme=dark] .page-tag-item.color4{background:#092917;background:linear-gradient(135deg,transparent .75em,rgb(9.25,41.25,22.75) 0) top,linear-gradient(45deg,transparent .75em,rgb(9.25,41.25,22.75) 0) bottom;color:#219552}.page-tag-item.color4.clickable:hover{background:#c0f1d5;background:linear-gradient(135deg,transparent .75em,rgb(192.103960396,240.896039604,212.6881188119) 0) top,linear-gradient(45deg,transparent .75em,rgb(192.103960396,240.896039604,212.6881188119) 0) bottom}html[data-theme=dark] .page-tag-item.color4.clickable:hover{background:#0f4224;background:linear-gradient(135deg,transparent .75em,rgb(14.8,66,36.4) 0) top,linear-gradient(45deg,transparent .75em,rgb(14.8,66,36.4) 0) bottom}.page-tag-item.color5{background:#e1fcfc;background:linear-gradient(135deg,transparent .75em,rgb(225.0082872928,252.0917127072,252.0917127072) 0) top,linear-gradient(45deg,transparent .75em,rgb(225.0082872928,252.0917127072,252.0917127072) 0) bottom;color:#16e1e1}html[data-theme=dark] .page-tag-item.color5{background:#042929;background:linear-gradient(135deg,transparent .75em,rgb(4,41.25,41.25) 0) top,linear-gradient(45deg,transparent .75em,rgb(4,41.25,41.25) 0) bottom;color:#0e9595}.page-tag-item.color5.clickable:hover{background:#b4f8f8;background:linear-gradient(135deg,transparent .75em,rgb(180.020718232,247.729281768,247.729281768) 0) top,linear-gradient(45deg,transparent .75em,rgb(180.020718232,247.729281768,247.729281768) 0) bottom}html[data-theme=dark] .page-tag-item.color5.clickable:hover{background:#064242;background:linear-gradient(135deg,transparent .75em,rgb(6.4,66,66) 0) top,linear-gradient(45deg,transparent .75em,rgb(6.4,66,66) 0) bottom}.page-tag-item.color6{background:#e4f0fe;background:linear-gradient(135deg,transparent .75em,rgb(227.7309734513,240.2973451327,253.8690265487) 0) top,linear-gradient(45deg,transparent .75em,rgb(227.7309734513,240.2973451327,253.8690265487) 0) bottom;color:#2589f6}html[data-theme=dark] .page-tag-item.color6{background:#021b36;background:linear-gradient(135deg,transparent .75em,rgb(2.25,27.25,54.25) 0) top,linear-gradient(45deg,transparent .75em,rgb(2.25,27.25,54.25) 0) bottom;color:#0862c3}.page-tag-item.color6.clickable:hover{background:#bbdafc;background:linear-gradient(135deg,transparent .75em,rgb(186.8274336283,218.2433628319,252.1725663717) 0) top,linear-gradient(45deg,transparent .75em,rgb(186.8274336283,218.2433628319,252.1725663717) 0) bottom}html[data-theme=dark] .page-tag-item.color6.clickable:hover{background:#042c57;background:linear-gradient(135deg,transparent .75em,rgb(3.6,43.6,86.8) 0) top,linear-gradient(45deg,transparent .75em,rgb(3.6,43.6,86.8) 0) bottom}.page-tag-item.color7{background:#f7f1fd;background:linear-gradient(135deg,transparent .75em,rgb(246.5,240.6,252.8) 0) top,linear-gradient(45deg,transparent .75em,rgb(246.5,240.6,252.8) 0) bottom;color:#bb8ced}html[data-theme=dark] .page-tag-item.color7{background:#2a0b4b;background:linear-gradient(135deg,transparent .75em,rgb(41.9638554217,11.3975903614,74.6024096386) 0) top,linear-gradient(45deg,transparent .75em,rgb(41.9638554217,11.3975903614,74.6024096386) 0) bottom;color:#9851e4}.page-tag-item.color7.clickable:hover{background:#eadbfa;background:linear-gradient(135deg,transparent .75em,rgb(233.75,219,249.5) 0) top,linear-gradient(45deg,transparent .75em,rgb(233.75,219,249.5) 0) bottom}html[data-theme=dark] .page-tag-item.color7.clickable:hover{background:#431277;background:linear-gradient(135deg,transparent .75em,rgb(67.1421686747,18.2361445783,119.3638554217) 0) top,linear-gradient(45deg,transparent .75em,rgb(67.1421686747,18.2361445783,119.3638554217) 0) bottom}.page-tag-item.color8{background:#fdeaf5;background:linear-gradient(135deg,transparent .75em,rgb(253,234.2,244.5) 0) top,linear-gradient(45deg,transparent .75em,rgb(253,234.2,244.5) 0) bottom;color:#ef59ab}html[data-theme=dark] .page-tag-item.color8{background:#400626;background:linear-gradient(135deg,transparent .75em,rgb(64.3157894737,6.1842105263,38.0328947368) 0) top,linear-gradient(45deg,transparent .75em,rgb(64.3157894737,6.1842105263,38.0328947368) 0) bottom;color:#e81689}.page-tag-item.color8.clickable:hover{background:#facbe5;background:linear-gradient(135deg,transparent .75em,rgb(250,203,228.75) 0) top,linear-gradient(45deg,transparent .75em,rgb(250,203,228.75) 0) bottom}html[data-theme=dark] .page-tag-item.color8.clickable:hover{background:#670a3d;background:linear-gradient(135deg,transparent .75em,rgb(102.9052631579,9.8947368421,60.8526315789) 0) top,linear-gradient(45deg,transparent .75em,rgb(102.9052631579,9.8947368421,60.8526315789) 0) bottom}.vp-toc-placeholder{margin-inline:auto;padding-inline:2.5rem;position:sticky;top:calc(var(--navbar-height) + .5rem);z-index:99;display:none;max-width:var(--content-width, 740px)}@media (max-width: 959px){.vp-toc-placeholder{padding-inline:1.5rem}}@media print{.vp-toc-placeholder{max-width:unset}}@media (max-width: 719px){.hide-navbar .vp-toc-placeholder{top:.5rem}}@media (min-width: 1440px){.vp-toc-placeholder{top:calc(var(--navbar-height) + 2rem)}}@media print{.vp-toc-placeholder{display:none!important}}.vp-toc-placeholder+.theme-hope-content:not(.custom){padding-top:0}.has-toc .vp-toc-placeholder{display:block}#toc{margin-bottom:1rem;border-radius:8px;background:var(--bg-color-secondary)}@media (min-width: 1440px){#toc{position:absolute;inset-inline-start:calc(100% + 1rem);min-width:10rem;max-width:15rem;margin-bottom:0;border-radius:0;background:transparent}}.vp-toc-header{padding:.5rem 1rem;font-weight:600}@media (min-width: 1440px){.vp-toc-header{padding-top:0;font-size:.875rem}}.vp-toc-header .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html[data-theme=dark] .vp-toc-header .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-toc-header .arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-toc-header .arrow.down{transform:rotate(-180deg)}.vp-toc-header .arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-toc-header .arrow.end,.vp-toc-header .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-toc-header .arrow.start{transform:rotate(90deg)}@media (min-width: 1440px){.vp-toc-header .arrow{display:none}}.vp-toc-header .print-button{display:none}@media (min-width: 1440px){.vp-toc-header .print-button{display:inline-block}}.vp-toc-wrapper{position:relative;overflow:hidden auto;height:0;max-height:8rem;margin:0 .5rem;padding-inline-start:8px;text-overflow:ellipsis;white-space:nowrap;scroll-behavior:smooth;transition:height .5s}@media (min-width: 1440px){.vp-toc-wrapper{height:auto;max-height:75vh}}.vp-toc-wrapper.open{height:auto;margin-top:.5rem;padding-bottom:.5rem}.vp-toc-wrapper::-webkit-scrollbar-track-piece{background:transparent}.vp-toc-wrapper::-webkit-scrollbar{width:3px}.vp-toc-wrapper::-webkit-scrollbar-thumb:vertical{background:#ddd}html[data-theme=dark] .vp-toc-wrapper::-webkit-scrollbar-thumb:vertical{background:#333}.vp-toc-wrapper:before{content:" ";position:absolute;inset-inline-start:0;top:0;bottom:0;z-index:-1;width:2px;background:var(--border-color)}.vp-toc-list{position:relative;margin:0;padding:0}.vp-toc-marker{position:absolute;inset-inline-start:0;top:0;z-index:2;display:none;width:2px;height:1.7rem;background:var(--theme-color);transition:top var(--transform-transition)}@media (min-width: 1440px){.vp-toc-marker{display:block}}.vp-toc-link{position:relative;display:block;overflow:hidden;max-width:100%;color:var(--grey-light);line-height:inherit;text-overflow:ellipsis;white-space:nowrap}.vp-toc-link.level2{padding-inline-start:0px;font-size:14px}.vp-toc-link.level3{padding-inline-start:8px;font-size:13px}.vp-toc-link.level4{padding-inline-start:16px;font-size:12px}.vp-toc-link.level5{padding-inline-start:24px;font-size:11px}.vp-toc-link.level6{padding-inline-start:32px;font-size:10px}.vp-toc-item{position:relative;box-sizing:border-box;height:1.7rem;list-style:none;line-height:1.7rem}@media (min-width: 1440px){.vp-toc-item{padding:0 .5rem}}.vp-toc-item:hover>.vp-toc-link{color:var(--theme-color)}.vp-toc-item.active>.vp-toc-link{color:var(--theme-color);font-weight:700}.nav-screen-links{display:none;padding-bottom:.75rem}@media (max-width: 719px){.nav-screen-links{display:block}}.nav-screen-links .navbar-links-item{position:relative;display:block;padding:12px 4px 11px 0;border-bottom:1px solid var(--border-color);font-size:16px;line-height:1.5rem}.nav-screen-links .auto-link{display:inline-block;width:100%;color:var(--grey-dark);font-weight:400}.nav-screen-links .auto-link:hover{color:var(--text-color)}.nav-screen-links .auto-link.route-link-active{color:var(--theme-color)}.vp-nav-screen-menu-title{border-width:0;background:transparent;position:relative;display:flex;align-items:center;width:100%;padding:0;color:var(--grey-dark);font-size:inherit;font-family:inherit;text-align:start;cursor:pointer}.vp-nav-screen-menu-title:hover,.vp-nav-screen-menu-title.active{color:var(--text-color)}.vp-nav-screen-menu-title .text{flex:1}.vp-nav-screen-menu-title .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html[data-theme=dark] .vp-nav-screen-menu-title .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-nav-screen-menu-title .arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-nav-screen-menu-title .arrow.down{transform:rotate(-180deg)}.vp-nav-screen-menu-title .arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-nav-screen-menu-title .arrow.end,.vp-nav-screen-menu-title .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-nav-screen-menu-title .arrow.start{transform:rotate(90deg)}.vp-nav-screen-menu{overflow:hidden;margin:.5rem 0 0;padding:0;list-style:none;transition:transform .1s ease-out;transform:scaleY(1);transform-origin:top}.vp-nav-screen-menu.hide{height:0;margin:0;transform:scaleY(0)}.vp-nav-screen-menu .auto-link{position:relative;display:block;padding-inline-start:.5rem;font-weight:400;line-height:2}.vp-nav-screen-menu .auto-link:hover,.vp-nav-screen-menu .auto-link.route-link-active{color:var(--theme-color)}.vp-nav-screen-menu .auto-link .icon{font-size:1em}.vp-nav-screen-menu-item{color:inherit;line-height:1.7rem}.vp-nav-screen-menu-subtitle{margin:0;padding-inline-start:.25rem;color:var(--grey-light);font-weight:600;font-size:.75rem;line-height:2;text-transform:uppercase}.vp-nav-screen-menu-subtitle .auto-link{padding:0}.vp-nav-screen-menu-subitems{margin:0;padding:0;list-style:none}.vp-nav-screen-menu-subitem{padding-inline-start:.5rem;font-size:.9em}.vp-nav-screen{position:fixed;inset:var(--navbar-height) 0 0 0;z-index:150;display:none;overflow-y:auto;padding:0 2rem;background:var(--bg-color)}@media (max-width: 719px){.vp-nav-screen{display:block}}.vp-nav-screen.fade-enter-active,.vp-nav-screen.fade-leave-active{transition:opacity .25s}.vp-nav-screen.fade-enter-active .vp-nav-screen-container,.vp-nav-screen.fade-leave-active .vp-nav-screen-container{transition:transform .25s ease}.vp-nav-screen.fade-enter-from,.vp-nav-screen.fade-leave-to{opacity:0}.vp-nav-screen.fade-enter-from .vp-nav-screen-container,.vp-nav-screen.fade-leave-to .vp-nav-screen-container{transform:translateY(-8px)}.vp-nav-screen .icon{margin-inline-end:.25em;font-size:1em}.vp-nav-screen img.icon{vertical-align:-.125em;height:1em}.vp-nav-screen-container{max-width:320px;margin:0 auto;padding:2rem 0 4rem}.vp-outlook-wrapper{display:flex;justify-content:space-around}.vp-nav-logo{vertical-align:top;height:var(--navbar-line-height);margin-inline-end:.8rem}.vp-nav-logo.light{display:inline-block}.vp-nav-logo.dark,html[data-theme=dark] .vp-nav-logo.light{display:none}html[data-theme=dark] .vp-nav-logo.dark{display:inline-block}.vp-site-name{position:relative;color:var(--text-color);font-size:1.25rem}@media (max-width: 719px){.vp-site-name{overflow:hidden;width:calc(100vw - 9.4rem);text-overflow:ellipsis;white-space:nowrap}}.vp-brand:hover .vp-site-name{color:var(--theme-color)}.vp-dropdown-wrapper{cursor:pointer}.vp-dropdown-wrapper:not(:hover) .arrow{transform:rotate(-180deg)}.vp-dropdown-wrapper .auto-link{position:relative;display:block;margin-bottom:0;border-bottom:none;color:var(--grey-dark);font-weight:400;font-size:.875rem;line-height:1.7rem;transition:color var(--color-transition)}.vp-dropdown-wrapper .auto-link:hover,.vp-dropdown-wrapper .auto-link.route-link-active{color:var(--theme-color)}.vp-dropdown-title{border-width:0;background:transparent;cursor:pointer;padding:0 .25rem;color:var(--grey-dark);font-weight:500;font-size:inherit;font-family:inherit;line-height:inherit;cursor:inherit}.vp-dropdown-title:hover{border-color:transparent}.vp-dropdown-title .icon{margin-inline-end:.25em;font-size:1em}.vp-dropdown-title .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:1.2em}html[data-theme=dark] .vp-dropdown-title .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-dropdown-title .arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-dropdown-title .arrow.down{transform:rotate(-180deg)}.vp-dropdown-title .arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-dropdown-title .arrow.end,.vp-dropdown-title .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-dropdown-title .arrow.start{transform:rotate(90deg)}.vp-dropdown{position:absolute;inset-inline-end:0;top:100%;overflow-y:auto;box-sizing:border-box;min-width:6rem;max-height:calc(100vh - var(--navbar-height));margin:0;padding:.5rem .75rem;border:1px solid var(--grey14);border-radius:.5rem;background:var(--bg-color);box-shadow:2px 2px 10px var(--card-shadow);list-style-type:none;text-align:start;white-space:nowrap;opacity:0;visibility:hidden;transition:all .18s ease-out;transform:scale(.9)}.vp-dropdown-wrapper:hover .vp-dropdown,.vp-dropdown-wrapper.open .vp-dropdown{z-index:2;opacity:1;visibility:visible;transform:none}.vp-dropdown-item{color:inherit;line-height:1.7rem}.vp-dropdown-subtitle{margin:0;padding:.5rem .25rem 0;color:var(--grey-light);font-weight:600;font-size:.75rem;line-height:2;text-transform:uppercase}.vp-dropdown-item:first-child .vp-dropdown-subtitle{padding-top:0}.vp-dropdown-subitems{margin:0;padding:0 0 .25rem;list-style-type:none}.vp-dropdown-item:last-child .vp-dropdown-subitems{padding-bottom:0}.vp-nav-links{display:flex;align-items:center;font-size:.875rem}.vp-nav-item{position:relative;margin:0 .25rem;line-height:2rem}.vp-nav-item:first-child{margin-inline-start:0}.vp-nav-item:last-child{margin-inline-end:0}.vp-nav-item>.auto-link{color:var(--grey-dark)}.vp-nav-item>.auto-link:after{content:" ";position:absolute;inset:auto 50% 0;height:2px;border-radius:1px;background:var(--theme-color-light);visibility:hidden;transition:inset .2s ease-in-out}.vp-nav-item>.auto-link.route-link-active{color:var(--theme-color)}.vp-nav-item>.auto-link:hover:after,.vp-nav-item>.auto-link.route-link-active:after{inset:auto 0 0;visibility:visible}.vp-navbar{--navbar-line-height: calc( var(--navbar-height) - var(--navbar-vertical-padding) * 2 );position:fixed;inset:0 0 auto;z-index:175;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--navbar-height);padding:var(--navbar-vertical-padding) var(--navbar-horizontal-padding);background:var(--navbar-bg-color);box-shadow:0 2px 8px var(--card-shadow);line-height:var(--navbar-line-height);white-space:nowrap;-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);transition:transform var(--transform-transition)}@media print{.vp-navbar{display:none}}.hide-navbar .vp-navbar.auto-hide{transform:translateY(-100%)}.vp-navbar .auto-link{padding:0 .25rem;color:var(--grey-dark)}.vp-navbar .auto-link.route-link-active{color:var(--theme-color)}.vp-navbar .auto-link .icon{margin-inline-end:.25em;font-size:1em}.vp-navbar .auto-link img.icon{vertical-align:-.125em;height:1em}.vp-navbar-start,.vp-navbar-end,.vp-navbar-center{display:flex;flex:1;align-items:center}.vp-navbar-start>*,.vp-navbar-end>*,.vp-navbar-center>*{position:relative;margin:0 .25rem!important}.vp-navbar-start>*:first-child,.vp-navbar-end>*:first-child,.vp-navbar-center>*:first-child{margin-inline-start:0!important}.vp-navbar-start>*:last-child,.vp-navbar-end>*:last-child,.vp-navbar-center>*:last-child{margin-inline-end:0!important}.vp-navbar-start{justify-content:start}.vp-navbar-center{justify-content:center}.vp-navbar-end{justify-content:end}.vp-navbar .vp-action{margin:0!important}.vp-navbar .vp-action-link{display:inline-block;margin:auto;padding:6px;color:var(--grey-dark);line-height:1}.vp-navbar .vp-action-link:hover,.vp-navbar .vp-action-link:active{color:var(--theme-color)}.vp-toggle-navbar-button{border-width:0;background:transparent;cursor:pointer;position:relative;display:none;align-items:center;justify-content:center;padding:6px}@media screen and (max-width: 719px){.vp-toggle-navbar-button{display:flex}}.vp-toggle-navbar-button>span{position:relative;overflow:hidden;width:16px;height:14px}.vp-toggle-navbar-button .vp-top,.vp-toggle-navbar-button .vp-middle,.vp-toggle-navbar-button .vp-bottom{position:absolute;width:16px;height:2px;background:var(--grey-dark);transition:top .25s,background .5s,transform .25s}.vp-toggle-navbar-button .vp-top{top:0;left:0;transform:translate(0)}.vp-toggle-navbar-button .vp-middle{top:6px;left:0;transform:translate(8px)}.vp-toggle-navbar-button .vp-bottom{top:12px;left:0;transform:translate(4px)}.vp-toggle-navbar-button:hover .vp-top{top:0;left:0;transform:translate(4px)}.vp-toggle-navbar-button:hover .vp-middle{top:6;left:0;transform:translate(0)}.vp-toggle-navbar-button:hover .vp-bottom{top:12px;left:0;transform:translate(8px)}.vp-toggle-navbar-button.is-active .vp-top{top:6px;transform:translate(0) rotate(225deg)}.vp-toggle-navbar-button.is-active .vp-middle{top:6px;transform:translate(16px)}.vp-toggle-navbar-button.is-active .vp-bottom{top:6px;transform:translate(0) rotate(135deg)}.vp-toggle-navbar-button.is-active:hover .vp-top,.vp-toggle-navbar-button.is-active:hover .vp-middle,.vp-toggle-navbar-button.is-active:hover .vp-bottom{background:var(--theme-color);transition:top .25s,background .25s,transform .25s}.vp-toggle-sidebar-button{border-width:0;background:transparent;cursor:pointer;display:none;vertical-align:middle;box-sizing:content-box;width:1rem;height:1rem;padding:.5rem;font:unset;transition:transform .2s ease-in-out}@media screen and (max-width: 719px){.vp-toggle-sidebar-button{display:block;padding-inline-end:var(--navbar-mobile-horizontal-padding)}}.vp-toggle-sidebar-button:before,.vp-toggle-sidebar-button:after,.vp-toggle-sidebar-button .icon{display:block;width:100%;height:2px;border-radius:.05em;background:var(--grey-dark);transition:transform .2s ease-in-out}.vp-toggle-sidebar-button:before{content:" ";margin-top:.125em}.sidebar-open .vp-toggle-sidebar-button:before{transform:translateY(.34rem) rotate(135deg)}.vp-toggle-sidebar-button:after{content:" ";margin-bottom:.125em}.sidebar-open .vp-toggle-sidebar-button:after{transform:translateY(-.34rem) rotate(-135deg)}.vp-toggle-sidebar-button .icon{margin:.2em 0}.sidebar-open .vp-toggle-sidebar-button .icon{transform:scale(0)}.vp-color-mode-switch{border-width:0;background:transparent;vertical-align:middle;padding:6px;color:var(--grey-dark);cursor:pointer;transition:color var(--color-transition)}.vp-color-mode-switch:hover{color:var(--theme-color)}.vp-color-mode-switch .icon{width:1.25rem;height:1.25rem}.vp-color-mode-title{display:block;margin:0;padding:0 .25rem;color:var(--grey-light);font-weight:600;font-size:.75rem;line-height:2}.vp-outlook-button{border-width:0;background:transparent;cursor:pointer;position:relative;padding:.375rem;color:var(--grey-dark)}.vp-outlook-button .icon{vertical-align:middle;width:1.25rem;height:1.25rem}.vp-outlook-dropdown{position:absolute;inset-inline-end:0;top:100%;overflow-y:auto;box-sizing:border-box;min-width:100px;margin:0;padding:.5rem .75rem;border:1px solid var(--grey14);border-radius:.25rem;background:var(--bg-color);box-shadow:2px 2px 10px var(--card-shadow);text-align:start;white-space:nowrap;opacity:0;visibility:hidden;transition:all .18s ease-out;transform:scale(.8)}.vp-outlook-dropdown>*:not(:last-child){padding-bottom:.5rem;border-bottom:1px solid var(--grey14)}.vp-outlook-button:hover .vp-outlook-dropdown,.vp-outlook-button.open .vp-outlook-dropdown{z-index:2;opacity:1;visibility:visible;transform:scale(1)}.vp-theme-color-picker{display:flex;margin:0;padding:0;list-style-type:none;font-size:14px}.vp-theme-color-picker li span{display:inline-block;vertical-align:middle;width:15px;height:15px;margin:0 2px;border-radius:2px}.vp-theme-color-picker li span.theme-color,.vp-theme-color-picker li span.theme-color html[data-theme=dark]{background:#3eaf7c}.vp-theme-color-title{display:block;margin:0;padding:0 .25rem;color:var(--grey-light);font-weight:600;font-size:.75rem;line-height:2}@media print{.full-screen-wrapper{display:none}}.full-screen-title{display:block;margin:0;padding:0 .25rem;color:var(--grey-light);font-weight:600;font-size:.75rem;line-height:2}.full-screen,.cancel-full-screen{border-width:0;background:transparent;vertical-align:middle;padding:.375rem;color:var(--grey-dark);cursor:pointer}.full-screen:hover,.cancel-full-screen:hover{color:var(--theme-color)}.full-screen .icon,.cancel-full-screen .icon{width:1.25rem;height:1.25rem}.enter-fullscreen-icon:hover,.cancel-fullscreen-icon{color:var(--theme-color)}.cancel-fullscreen-icon:hover{color:var(--grey-dark)}.vp-sidebar-link{display:inline-block;box-sizing:border-box;width:calc(100% - 1rem);margin-inline:.5rem;padding:.25rem .5rem;border-radius:.375rem;color:var(--text-color);font-weight:400;font-size:1em;line-height:1.5}.vp-sidebar-link:hover{background:var(--bg-color-secondary)}.vp-sidebar-link.active{background:var(--theme-color-mask);color:var(--theme-color);font-weight:500}.vp-sidebar-link.active .icon{color:var(--theme-color)}.vp-sidebar-group:not(.collapsible) .vp-sidebar-header:not(.clickable){color:inherit;cursor:auto}.vp-sidebar-group .vp-sidebar-group .vp-sidebar-header{font-size:1em}.vp-sidebar-header{display:flex;align-items:center;overflow:hidden;box-sizing:border-box;width:calc(100% - 1rem);margin:0;margin-inline:.5rem;padding:.25rem .5rem;border-width:0;border-radius:.375rem;background:transparent;color:var(--text-color);font-size:1.1em;line-height:1.5;text-align:start;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:color .15s ease;transform:rotate(0)}.vp-sidebar-header.open{color:inherit}.vp-sidebar-header.clickable{border-width:0;background:transparent;cursor:pointer;font-family:inherit}.vp-sidebar-header.clickable:hover{background:var(--bg-color-secondary)}.vp-sidebar-header.clickable.exact{border-inline-start-color:var(--theme-color);color:var(--theme-color)}.vp-sidebar-header.clickable.exact a{color:inherit}.vp-sidebar-header .vp-sidebar-title{flex:1}.vp-sidebar-header .vp-arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:1.5em}html[data-theme=dark] .vp-sidebar-header .vp-arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgb(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-sidebar-header .vp-arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-sidebar-header .vp-arrow.down{transform:rotate(-180deg)}.vp-sidebar-header .vp-arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-sidebar-header .vp-arrow.end,.vp-sidebar-header .vp-arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-sidebar-header .vp-arrow.start{transform:rotate(90deg)}.vp-sidebar-links{margin:0 0 0 .75em;padding:0}.vp-sidebar-links li{list-style-type:none}.vp-sidebar>.vp-sidebar-links{margin:0;padding:1.5rem 0}@media (max-width: 719px){.vp-sidebar>.vp-sidebar-links{padding:1rem 0}}.vp-sidebar>.vp-sidebar-links>li>.vp-sidebar-link{font-size:1.1em}.vp-sidebar>.vp-sidebar-links>li:not(:first-child){margin-top:.5rem}.vp-sidebar{position:fixed;inset-inline-start:0;top:0;bottom:0;z-index:1;overflow-y:auto;width:var(--sidebar-width);margin:0;padding-inline-start:calc(var(--sidebar-space) - var(--sidebar-width));background:var(--sidebar-bg-color);box-shadow:2px 0 8px var(--card-shadow);font-size:.94rem;-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);transition:padding var(--transform-transition),transform var(--transform-transition);scrollbar-color:var(--theme-color) var(--border-color);scrollbar-width:thin}@media (max-width: 959px){.vp-sidebar{font-size:.86em}}@media (max-width: 719px){.vp-sidebar{z-index:125;box-shadow:none;transform:translate(-100%)}html[dir=rtl] .vp-sidebar{transform:translate(100%)}}@media (min-width: 1440px){.vp-sidebar{padding-bottom:3rem;box-shadow:none;font-size:1rem}}@media print{.vp-sidebar{display:none}}.vp-sidebar a{display:inline-block;color:var(--text-color);font-weight:400}.vp-sidebar .icon{margin-inline-end:.25em;font-size:1em}.vp-sidebar img.icon{vertical-align:-.125em;height:1em}.vp-sidebar-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000026}.vp-sidebar-mask.fade-enter-active,.vp-sidebar-mask.fade-leave-active{transition:opacity .25s}.vp-sidebar-mask.fade-enter-from,.vp-sidebar-mask.fade-leave-to{opacity:0}.search-pro-result-wrapper{scrollbar-color:var(--vp-c-accent) var(--vp-c-border);scrollbar-width:thin}@media (max-width: 419px){.search-pro-result-wrapper{font-size:14px}}.search-pro-result-wrapper::-webkit-scrollbar{width:6px;height:6px}.search-pro-result-wrapper::-webkit-scrollbar-track-piece{border-radius:6px;background:#0000001a}.search-pro-result-wrapper::-webkit-scrollbar-thumb{border-radius:6px;background:var(--vp-c-accent-bg)}.search-pro-result-wrapper::-webkit-scrollbar-thumb:active{background:var(--vp-c-accent-hover)}.search-pro-result-wrapper mark{border-radius:.25em;line-height:1}.search-pro-result-list{margin:0;padding:0}.search-pro-result-list-item{display:block;list-style:none}.search-pro-result-title{position:sticky;top:-2px;z-index:10;margin:-4px;margin-bottom:.25rem;padding:4px;background:var(--vp-c-bg);color:var(--vp-c-accent);font-weight:600;font-size:.875em;line-height:2rem;text-indent:.5em}.search-pro-result-item.active .search-pro-result-title{color:var(--vp-c-accent)}.search-pro-result-type{display:block;width:1rem;height:1rem;margin-inline-start:-.5rem;padding:.5rem;color:var(--vp-c-accent)}.search-pro-remove-icon{border-width:0;background:transparent;cursor:pointer;box-sizing:content-box;height:1.5rem;padding:0;border-radius:50%;color:var(--vp-c-accent);font-size:1rem}.search-pro-remove-icon svg{width:1.5rem;height:1.5rem}.search-pro-remove-icon:hover{background:#8080804d}.search-pro-result-content{display:flex;flex-flow:column;flex-grow:1;align-items:stretch;justify-content:center;line-height:1.5}.search-pro-result-content .content-header{margin-bottom:.25rem;border-bottom:1px solid var(--vp-c-border-hard);font-size:.9em}.search-pro-result-item{display:flex;align-items:center;margin:.5rem 0;padding:.5rem .75rem;border-radius:.25rem;background:var(--vp-c-bg-alt);color:inherit;box-shadow:0 1px 3px 0 var(--vp-c-shadow);font-weight:400;white-space:pre-wrap;word-wrap:break-word}.search-pro-result-item strong{color:var(--vp-c-accent)}.search-pro-result-item:hover,.search-pro-result-item.active{background-color:var(--vp-c-accent-hover);color:var(--vp-c-white);cursor:pointer}.search-pro-result-item:hover .search-pro-result-type,.search-pro-result-item:hover .search-pro-remove-icon,.search-pro-result-item:hover strong,.search-pro-result-item.active .search-pro-result-type,.search-pro-result-item.active .search-pro-remove-icon,.search-pro-result-item.active strong{color:var(--vp-c-white)} diff --git a/assets/styles-0784dbeb-Bh_1Vl1K.js b/assets/styles-0784dbeb-Bh_1Vl1K.js new file mode 100644 index 00000000..3cac0d8d --- /dev/null +++ b/assets/styles-0784dbeb-Bh_1Vl1K.js @@ -0,0 +1,207 @@ +import{c as Y,g as Ut,s as zt,a as Mt,b as Ht,C as Xt,D as Kt,l as D,j as ot,E as Wt,b3 as Jt}from"./mermaid.core-Bc1j4tiv.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var v=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");v=st[0],O=[O,st[1]]}this.$={stmt:"state",id:v,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",v=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(A.yy[dt]=this.yy[dt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(v+1)+`: +`+S.showPosition()+` +Expecting `+rt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(v+1)+": Unexpected "+(_==B?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:rt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,v=S.yylineno,yt=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=p[p.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},Gt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,v,A.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;b&&(i=i.slice(0,-1*b*2),p=p.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=$[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Yt=function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+n+"^"},test_match:function(r,n){var i,o,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),o=r[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],i=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var e in p)this[e]=p[e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,n,i,o;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),e=0;en[0].length)){if(n=i,o=e,this.options.backtrack_lexer){if(r=this.test_match(i,p[e]),r!==!1)return r;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(r=this.test_match(n,p[o]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,i,o,p){switch(o){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),i.yytext=i.yytext.substr(2).trim(),30;case 64:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return i.yytext=i.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return C}();ht.lexer=Yt;function ut(){this.yy={}}return ut.prototype=ht,ht.Parser=ut,new ut}();gt.parser=gt;const De=gt,qt="LR",Ce="TB",_t="state",It="relation",Qt="classDef",Zt="applyClass",Et="default",te="divider",bt="[*]",Ot="start",Nt=bt,Rt="end",vt="color",At="fill",ee="bgFill",se=",";function wt(){return{}}let $t=qt,lt=[],P=wt();const Bt=()=>({relations:[],states:{},documents:{}});let ct={root:Bt()},g=ct.root,F=0,Lt=0;const ie={LINE:0,DOTTED_LINE:1},re={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},nt=t=>JSON.parse(JSON.stringify(t)),ne=t=>{D.info("Setting root doc",t),lt=t},ae=()=>lt,at=(t,s,a)=>{if(s.stmt===It)at(t,s.state1,!0),at(t,s.state2,!1);else if(s.stmt===_t&&(s.id==="[*]"?(s.id=a?t.id+"_start":t.id+"_end",s.start=a):s.id=s.id.trim()),s.doc){const h=[];let f=[],d;for(d=0;d0&&f.length>0){const y={stmt:_t,id:Jt(),type:"divider",doc:nt(f)};h.push(nt(y)),s.doc=h}s.doc.forEach(y=>at(s,y,!0))}},le=()=>(at({id:"root"},{id:"root",doc:lt},!0),{id:"root",doc:lt}),ce=t=>{let s;t.doc?s=t.doc:s=t,D.info(s),Pt(!0),D.info("Extract",s),s.forEach(a=>{switch(a.stmt){case _t:I(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case It:Ft(a.state1,a.state2,a.description);break;case Qt:Vt(a.id.trim(),a.classes);break;case Zt:xt(a.id.trim(),a.styleClass);break}})},I=function(t,s=Et,a=null,h=null,f=null,d=null,y=null,k=null){const u=t==null?void 0:t.trim();g.states[u]===void 0?(D.info("Adding state ",u,h),g.states[u]={id:u,descriptions:[],type:s,doc:a,note:f,classes:[],styles:[],textStyles:[]}):(g.states[u].doc||(g.states[u].doc=a),g.states[u].type||(g.states[u].type=s)),h&&(D.info("Setting state description",u,h),typeof h=="string"&&kt(u,h.trim()),typeof h=="object"&&h.forEach(E=>kt(u,E.trim()))),f&&(g.states[u].note=f,g.states[u].note.text=ot.sanitizeText(g.states[u].note.text,Y())),d&&(D.info("Setting state classes",u,d),(typeof d=="string"?[d]:d).forEach(T=>xt(u,T.trim()))),y&&(D.info("Setting state styles",u,y),(typeof y=="string"?[y]:y).forEach(T=>_e(u,T.trim()))),k&&(D.info("Setting state styles",u,y),(typeof k=="string"?[k]:k).forEach(T=>me(u,T.trim())))},Pt=function(t){ct={root:Bt()},g=ct.root,F=0,P=wt(),t||Wt()},V=function(t){return g.states[t]},oe=function(){return g.states},he=function(){D.info("Documents = ",ct)},ue=function(){return g.relations};function mt(t=""){let s=t;return t===bt&&(F++,s=`${Ot}${F}`),s}function Tt(t="",s=Et){return t===bt?Ot:s}function fe(t=""){let s=t;return t===Nt&&(F++,s=`${Rt}${F}`),s}function de(t="",s=Et){return t===Nt?Rt:s}function ye(t,s,a){let h=mt(t.id.trim()),f=Tt(t.id.trim(),t.type),d=mt(s.id.trim()),y=Tt(s.id.trim(),s.type);I(h,f,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),I(d,y,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),g.relations.push({id1:h,id2:d,relationTitle:ot.sanitizeText(a,Y())})}const Ft=function(t,s,a){if(typeof t=="object")ye(t,s,a);else{const h=mt(t.trim()),f=Tt(t),d=fe(s.trim()),y=de(s);I(h,f),I(d,y),g.relations.push({id1:h,id2:d,title:ot.sanitizeText(a,Y())})}},kt=function(t,s){const a=g.states[t],h=s.startsWith(":")?s.replace(":","").trim():s;a.descriptions.push(ot.sanitizeText(h,Y()))},pe=function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},Se=()=>(Lt++,"divider-id-"+Lt),Vt=function(t,s=""){P[t]===void 0&&(P[t]={id:t,styles:[],textStyles:[]});const a=P[t];s!=null&&s.split(se).forEach(h=>{const f=h.replace(/([^;]*);/,"$1").trim();if(h.match(vt)){const y=f.replace(At,ee).replace(vt,At);a.textStyles.push(y)}a.styles.push(f)})},ge=function(){return P},xt=function(t,s){t.split(",").forEach(function(a){let h=V(a);if(h===void 0){const f=a.trim();I(f),h=V(f)}h.classes.push(s)})},_e=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},me=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},Te=()=>$t,ke=t=>{$t=t},Ee=t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),ve={getConfig:()=>Y().state,addState:I,clear:Pt,getState:V,getStates:oe,getRelations:ue,getClasses:ge,getDirection:Te,addRelation:Ft,getDividerId:Se,setDirection:ke,cleanupLabel:pe,lineType:ie,relationType:re,logDocuments:he,getRootDoc:ae,setRootDoc:ne,getRootDocV2:le,extract:ce,trimColon:Ee,getAccTitle:Ut,setAccTitle:zt,getAccDescription:Mt,setAccDescription:Ht,addStyleClass:Vt,setCssClass:xt,addDescription:kt,setDiagramTitle:Xt,getDiagramTitle:Kt},be=t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,Ae=be;export{Et as D,It as S,te as a,_t as b,Ce as c,ve as d,De as p,Ae as s}; diff --git a/assets/styles-483fbfea-DnQzRaYr.js b/assets/styles-483fbfea-DnQzRaYr.js new file mode 100644 index 00000000..0783c1ee --- /dev/null +++ b/assets/styles-483fbfea-DnQzRaYr.js @@ -0,0 +1,116 @@ +import{G as R}from"./graph-DkiqFSuU.js";import{S as z,v as F,x as j,y as U,z as H,o as N,l as g,p as K,c as S,j as G,r as q,q as E,n as L,h as C,A as W,t as X,B as J}from"./mermaid.core-Bc1j4tiv.js";import{r as Q}from"./index-01f381cb-wllKWk9M.js";import{c as Y}from"./channel-BQsRZjn0.js";function Z(e){return typeof e=="string"?new z([document.querySelectorAll(e)],[document.documentElement]):new z([j(e)],F)}function pe(e,l){return!!e.children(l).length}function be(e){return A(e.v)+":"+A(e.w)+":"+A(e.name)}var O=/:/g;function A(e){return e?String(e).replace(O,"\\:"):""}function ee(e,l){l&&e.attr("style",l)}function fe(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ue(e,l){var c=l.graph();if(U(c)){var a=c.transition;if(H(a))return a(e)}return e}function te(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}ee(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const P={},re=function(e){const l=Object.keys(e);for(const c of l)P[c]=e[c]},V=async function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`),n=Object.keys(e);for(const p of n){const r=e[p];let y="default";r.classes.length>0&&(y=r.classes.join(" ")),y=y+" flowchart-label";const w=N(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(g.info("vertex",r,r.labelType),r.labelType==="markdown")g.info("vertex",r,r.labelType);else if(K(S().flowchart.htmlLabels))s=te(u,{label:t}).node(),s.parentNode.removeChild(s);else{const k=i.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const _=t.split(G.lineBreakRegex);for(const $ of _){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}s=k}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}const T=await q(t,S());l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:T,labelType:r.labelType,rx:b,ry:b,class:y,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:S().flowchart.padding}),g.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:T,rx:b,ry:b,class:y,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:S().flowchart.padding})}},M=async function(e,l,c){g.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=N(e.defaultStyle);d=n.style,u=n.labelStyle}for(const n of e){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,g.info("abc78 new entry",p,i[p])):(i[p]++,g.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];g.info("abc78 new link id to be used is",p,r,i[p]);const y="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=N(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,L):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,L):t.curve=E(P.curve,L),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=await q(n.text.replace(G.lineBreakRegex,` +`),S()),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+y+" "+w,l.setEdge(n.start,n.end,t,a)}},le=function(e,l){return l.db.getClasses()},ae=async function(e,l,c,a){g.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:u}=S(),n=u.nodeSpacing||50,p=u.rankSpacing||50;let r;d==="sandbox"&&(r=C("#i"+l));const y=d==="sandbox"?C(r.nodes()[0].contentDocument.body):C("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new R({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();g.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],g.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),T=a.db.getEdges();g.info("Edges",T);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Z("cluster").append("text");for(let f=0;f{const c=Y,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return J(a,i,d,l)},ne=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${oe(e.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,he=ne;export{ee as a,te as b,ue as c,fe as d,be as e,we as f,he as g,pe as i,Z as s}; diff --git a/assets/styles-b83b31c9-AroU2Phi.js b/assets/styles-b83b31c9-AroU2Phi.js new file mode 100644 index 00000000..41d07fc3 --- /dev/null +++ b/assets/styles-b83b31c9-AroU2Phi.js @@ -0,0 +1,160 @@ +import{s as ut,g as rt,a as at,b as lt,c as F,C as ct,D as ot,j as v,E as ht,l as At,A as We,h as z,d as pt,G as Re}from"./mermaid.core-Bc1j4tiv.js";var Ve=function(){var e=function(x,u,a,h){for(a=a||{},h=x.length;h--;a[x[h]]=u);return a},i=[1,17],r=[1,18],l=[1,19],o=[1,39],A=[1,40],g=[1,25],D=[1,23],B=[1,24],_=[1,31],fe=[1,32],de=[1,33],Ee=[1,34],Ce=[1,35],me=[1,36],be=[1,26],ge=[1,27],ke=[1,28],Te=[1,29],d=[1,43],Fe=[1,30],E=[1,42],C=[1,44],m=[1,41],k=[1,45],ye=[1,9],c=[1,8,9],Y=[1,56],j=[1,57],Q=[1,58],X=[1,59],H=[1,60],De=[1,61],Be=[1,62],W=[1,8,9,39],Ge=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],q=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],J=[13,74,80,95,97,98],G=[13,64,65,74,80,95,97,98],Ue=[13,59,60,61,62,63,74,80,95,97,98],_e=[1,93],Z=[1,110],$=[1,108],ee=[1,102],te=[1,103],se=[1,104],ie=[1,105],ne=[1,106],ue=[1,107],re=[1,109],Se=[1,8,9,37,39,42],ae=[1,8,9,21],ze=[1,8,9,78],S=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(u,a,h,n,f,t,U){var s=t.length-1;switch(f){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:n.addRelation(t[s]);break;case 17:t[s-1].title=n.cleanupLabel(t[s]),n.addRelation(t[s-1]);break;case 27:this.$=t[s].trim(),n.setAccTitle(this.$);break;case 28:case 29:this.$=t[s].trim(),n.setAccDescription(this.$);break;case 30:n.addClassesToNamespace(t[s-3],t[s-1]);break;case 31:n.addClassesToNamespace(t[s-4],t[s-1]);break;case 32:this.$=t[s],n.addNamespace(t[s]);break;case 33:this.$=[t[s]];break;case 34:this.$=[t[s-1]];break;case 35:t[s].unshift(t[s-2]),this.$=t[s];break;case 37:n.setCssClass(t[s-2],t[s]);break;case 38:n.addMembers(t[s-3],t[s-1]);break;case 39:n.setCssClass(t[s-5],t[s-3]),n.addMembers(t[s-5],t[s-1]);break;case 40:this.$=t[s],n.addClass(t[s]);break;case 41:this.$=t[s-1],n.addClass(t[s-1]),n.setClassLabel(t[s-1],t[s]);break;case 42:n.addAnnotation(t[s],t[s-2]);break;case 43:this.$=[t[s]];break;case 44:t[s].push(t[s-1]),this.$=t[s];break;case 45:break;case 46:n.addMember(t[s-1],n.cleanupLabel(t[s]));break;case 47:break;case 48:break;case 49:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 51:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 52:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 53:n.addNote(t[s],t[s-1]);break;case 54:n.addNote(t[s]);break;case 55:n.setDirection("TB");break;case 56:n.setDirection("BT");break;case 57:n.setDirection("RL");break;case 58:n.setDirection("LR");break;case 59:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 61:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 62:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 63:this.$=n.relationType.AGGREGATION;break;case 64:this.$=n.relationType.EXTENSION;break;case 65:this.$=n.relationType.COMPOSITION;break;case 66:this.$=n.relationType.DEPENDENCY;break;case 67:this.$=n.relationType.LOLLIPOP;break;case 68:this.$=n.lineType.LINE;break;case 69:this.$=n.lineType.DOTTED_LINE;break;case 70:case 76:this.$=t[s-2],n.setClickEvent(t[s-1],t[s]);break;case 71:case 77:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 72:this.$=t[s-2],n.setLink(t[s-1],t[s]);break;case 73:this.$=t[s-3],n.setLink(t[s-2],t[s-1],t[s]);break;case 74:this.$=t[s-3],n.setLink(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 75:this.$=t[s-4],n.setLink(t[s-3],t[s-2],t[s]),n.setTooltip(t[s-3],t[s-1]);break;case 78:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1],t[s]);break;case 79:this.$=t[s-4],n.setClickEvent(t[s-3],t[s-2],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 80:this.$=t[s-3],n.setLink(t[s-2],t[s]);break;case 81:this.$=t[s-4],n.setLink(t[s-3],t[s-1],t[s]);break;case 82:this.$=t[s-4],n.setLink(t[s-3],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 83:this.$=t[s-5],n.setLink(t[s-4],t[s-2],t[s]),n.setTooltip(t[s-4],t[s-1]);break;case 84:this.$=t[s-2],n.setCssStyle(t[s-1],t[s]);break;case 85:n.setCssClass(t[s-1],t[s]);break;case 86:this.$=[t[s]];break;case 87:t[s-2].push(t[s]),this.$=t[s-2];break;case 89:this.$=t[s-1]+t[s];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(ye,[2,5],{8:[1,46]}),{8:[1,47]},e(c,[2,16],{21:[1,48]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),e(c,[2,26]),{32:[1,49]},{34:[1,50]},e(c,[2,29]),e(c,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be}),{37:[1,63]},e(W,[2,36],{37:[1,65],42:[1,64]}),e(c,[2,47]),e(c,[2,48]),{16:66,74:d,80:E,95:C,97:m},{16:37,17:67,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:68,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:69,18:38,74:d,80:E,95:C,97:m,98:k},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:d,80:E,95:C,97:m,98:k},{13:Ge,51:73},e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(c,[2,58]),e(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:d,80:E,95:C,97:m,98:k}),e(M,[2,12],{19:[1,77]}),{15:78,16:79,74:d,80:E,95:C,97:m},{16:37,17:80,18:38,74:d,80:E,95:C,97:m,98:k},e(q,[2,112]),e(q,[2,113]),e(q,[2,114]),e(q,[2,115]),e([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),e(ye,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:i,33:r,35:l,40:o,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},e(c,[2,17]),e(c,[2,27]),e(c,[2,28]),{13:[1,84],16:37,17:83,18:38,74:d,80:E,95:C,97:m,98:k},{49:85,57:54,58:55,59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be},e(c,[2,46]),{58:86,64:De,65:Be},e(J,[2,62],{57:87,59:Y,60:j,61:Q,62:X,63:H}),e(G,[2,63]),e(G,[2,64]),e(G,[2,65]),e(G,[2,66]),e(G,[2,67]),e(Ue,[2,68]),e(Ue,[2,69]),{8:[1,89],23:90,38:88,41:22,44:A},{16:91,74:d,80:E,95:C,97:m},{43:92,47:_e},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Z,73:$,74:ee,75:99,77:100,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},{74:[1,111]},{13:Ge,51:112},e(c,[2,54]),e(c,[2,117]),e(M,[2,13]),e(M,[2,14]),e(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:d,80:E,95:C,97:m},e(Se,[2,40],{11:114,12:[1,115]}),e(ye,[2,7]),{9:[1,116]},e(ae,[2,49]),{16:37,17:117,18:38,74:d,80:E,95:C,97:m,98:k},{13:[1,119],16:37,17:118,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,61],{57:120,59:Y,60:j,61:Q,62:X,63:H}),e(J,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:A},{8:[1,123],39:[2,33]},e(W,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_e},{16:37,17:127,18:38,74:d,80:E,95:C,97:m,98:k},e(c,[2,70],{13:[1,128]}),e(c,[2,72],{13:[1,130],68:[1,129]}),e(c,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},e(c,[2,84],{78:[1,134]}),e(ze,[2,86],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(S,[2,88]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(c,[2,85]),e(c,[2,53]),{37:[2,10]},e(Se,[2,41]),{13:[1,136]},{1:[2,4]},e(ae,[2,51]),e(ae,[2,50]),{16:37,17:137,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,59]),e(c,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:A},{43:140,47:_e},e(W,[2,38]),{39:[2,44]},e(c,[2,42]),e(c,[2,71]),e(c,[2,73]),e(c,[2,74],{68:[1,141]}),e(c,[2,77]),e(c,[2,78],{13:[1,142]}),e(c,[2,80],{13:[1,144],68:[1,143]}),{21:Z,73:$,74:ee,77:145,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},e(S,[2,89]),{14:[1,146]},e(ae,[2,52]),e(c,[2,31]),{39:[2,35]},{39:[1,147]},e(c,[2,75]),e(c,[2,79]),e(c,[2,81]),e(c,[2,82],{68:[1,148]}),e(ze,[2,87],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(Se,[2,8]),e(W,[2,39]),e(c,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var h=new Error(u);throw h.hash=a,h}},parse:function(u){var a=this,h=[0],n=[],f=[null],t=[],U=this.table,s="",le=0,Ke=0,tt=2,Ye=1,st=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ve)&&(I.yy[ve]=this.yy[ve]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var xe=b.yylloc;t.push(xe);var it=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function nt(){var L;return L=n.pop()||b.lex()||Ye,typeof L!="number"&&(L instanceof Array&&(n=L,L=n.pop()),L=a.symbols_[L]||L),L}for(var T,R,y,Oe,P={},ce,N,je,oe;;){if(R=h[h.length-1],this.defaultActions[R]?y=this.defaultActions[R]:((T===null||typeof T>"u")&&(T=nt()),y=U[R]&&U[R][T]),typeof y>"u"||!y.length||!y[0]){var Ie="";oe=[];for(ce in U[R])this.terminals_[ce]&&ce>tt&&oe.push("'"+this.terminals_[ce]+"'");b.showPosition?Ie="Parse error on line "+(le+1)+`: +`+b.showPosition()+` +Expecting `+oe.join(", ")+", got '"+(this.terminals_[T]||T)+"'":Ie="Parse error on line "+(le+1)+": Unexpected "+(T==Ye?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(Ie,{text:b.match,token:this.terminals_[T]||T,line:b.yylineno,loc:xe,expected:oe})}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+T);switch(y[0]){case 1:h.push(T),f.push(b.yytext),t.push(b.yylloc),h.push(y[1]),T=null,Ke=b.yyleng,s=b.yytext,le=b.yylineno,xe=b.yylloc;break;case 2:if(N=this.productions_[y[1]][1],P.$=f[f.length-N],P._$={first_line:t[t.length-(N||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(N||1)].first_column,last_column:t[t.length-1].last_column},it&&(P._$.range=[t[t.length-(N||1)].range[0],t[t.length-1].range[1]]),Oe=this.performAction.apply(P,[s,Ke,le,I.yy,y[1],f,t].concat(st)),typeof Oe<"u")return Oe;N&&(h=h.slice(0,-1*N*2),f=f.slice(0,-1*N),t=t.slice(0,-1*N)),h.push(this.productions_[y[1]][0]),f.push(P.$),t.push(P._$),je=U[h[h.length-2]][h[h.length-1]],h.push(je);break;case 3:return!0}}return!0}},et=function(){var x={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(u,a){return this.yy=a||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var a=u.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},unput:function(u){var a=u.length,h=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===n.length?this.yylloc.first_column:0)+n[n.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),a=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+a+"^"},test_match:function(u,a){var h,n,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),n=u[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var t in f)this[t]=f[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,a,h,n;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),t=0;ta[0].length)){if(a=h,n=t,this.options.backtrack_lexer){if(u=this.test_match(h,f[t]),u!==!1)return u;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(u=this.test_match(a,f[n]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(a,h,n,f){switch(n){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return x}();Ne.lexer=et;function Le(){this.yy={}}return Le.prototype=Ne,Ne.Parser=Le,new Le}();Ve.parser=Ve;const zt=Ve,Qe=["#","+","~","-",""];class Xe{constructor(i,r){this.memberType=r,this.visibility="",this.classifier="";const l=pt(i,F());this.parseMember(l)}getDisplayDetails(){let i=this.visibility+Re(this.id);this.memberType==="method"&&(i+=`(${Re(this.parameters.trim())})`,this.returnType&&(i+=" : "+Re(this.returnType))),i=i.trim();const r=this.parseClassifier();return{displayText:i,cssStyle:r}}parseMember(i){let r="";if(this.memberType==="method"){const l=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,o=i.match(l);if(o){const A=o[1]?o[1].trim():"";if(Qe.includes(A)&&(this.visibility=A),this.id=o[2].trim(),this.parameters=o[3]?o[3].trim():"",r=o[4]?o[4].trim():"",this.returnType=o[5]?o[5].trim():"",r===""){const g=this.returnType.substring(this.returnType.length-1);g.match(/[$*]/)&&(r=g,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const l=i.length,o=i.substring(0,1),A=i.substring(l-1);Qe.includes(o)&&(this.visibility=o),A.match(/[$*]/)&&(r=A),this.id=i.substring(this.visibility===""?0:1,r===""?l:l-1)}this.classifier=r}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const pe="classId-";let Pe=[],p={},he=[],He=0,O={},we=0,K=[];const V=e=>v.sanitizeText(e,F()),w=function(e){const i=v.sanitizeText(e,F());let r="",l=i;if(i.indexOf("~")>0){const o=i.split("~");l=V(o[0]),r=V(o[1])}return{className:l,type:r}},ft=function(e,i){const r=v.sanitizeText(e,F());i&&(i=V(i));const{className:l}=w(r);p[l].label=i},Ae=function(e){const i=v.sanitizeText(e,F()),{className:r,type:l}=w(i);if(Object.hasOwn(p,r))return;const o=v.sanitizeText(r,F());p[o]={id:o,type:l,label:o,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:pe+o+"-"+He},He++},qe=function(e){const i=v.sanitizeText(e,F());if(i in p)return p[i].domId;throw new Error("Class not found: "+i)},dt=function(){Pe=[],p={},he=[],K=[],K.push(Ze),O={},we=0,ht()},Et=function(e){return p[e]},Ct=function(){return p},mt=function(){return Pe},bt=function(){return he},gt=function(e){At.debug("Adding relation: "+JSON.stringify(e)),Ae(e.id1),Ae(e.id2),e.id1=w(e.id1).className,e.id2=w(e.id2).className,e.relationTitle1=v.sanitizeText(e.relationTitle1.trim(),F()),e.relationTitle2=v.sanitizeText(e.relationTitle2.trim(),F()),Pe.push(e)},kt=function(e,i){const r=w(e).className;p[r].annotations.push(i)},Je=function(e,i){Ae(e);const r=w(e).className,l=p[r];if(typeof i=="string"){const o=i.trim();o.startsWith("<<")&&o.endsWith(">>")?l.annotations.push(V(o.substring(2,o.length-2))):o.indexOf(")")>0?l.methods.push(new Xe(o,"method")):o&&l.members.push(new Xe(o,"attribute"))}},Tt=function(e,i){Array.isArray(i)&&(i.reverse(),i.forEach(r=>Je(e,r)))},Ft=function(e,i){const r={id:`note${he.length}`,class:i,text:e};he.push(r)},yt=function(e){return e.startsWith(":")&&(e=e.substring(1)),V(e.trim())},Me=function(e,i){e.split(",").forEach(function(r){let l=r;r[0].match(/\d/)&&(l=pe+l),p[l]!==void 0&&p[l].cssClasses.push(i)})},Dt=function(e,i){e.split(",").forEach(function(r){i!==void 0&&(p[r].tooltip=V(i))})},Bt=function(e,i){return i?O[i].classes[e].tooltip:p[e].tooltip},_t=function(e,i,r){const l=F();e.split(",").forEach(function(o){let A=o;o[0].match(/\d/)&&(A=pe+A),p[A]!==void 0&&(p[A].link=We.formatUrl(i,l),l.securityLevel==="sandbox"?p[A].linkTarget="_top":typeof r=="string"?p[A].linkTarget=V(r):p[A].linkTarget="_blank")}),Me(e,"clickable")},St=function(e,i,r){e.split(",").forEach(function(l){Nt(l,i,r),p[l].haveCallback=!0}),Me(e,"clickable")},Nt=function(e,i,r){const l=v.sanitizeText(e,F());if(F().securityLevel!=="loose"||i===void 0)return;const A=l;if(p[A]!==void 0){const g=qe(A);let D=[];if(typeof r=="string"){D=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let B=0;B")),o.classed("hover",!0)}).on("mouseout",function(){i.transition().duration(500).style("opacity",0),z(this).classed("hover",!1)})};K.push(Ze);let $e="TB";const Ot=()=>$e,It=e=>{$e=e},Rt=function(e){O[e]===void 0&&(O[e]={id:e,classes:{},children:{},domId:pe+e+"-"+we},we++)},Vt=function(e){return O[e]},wt=function(){return O},Pt=function(e,i){if(O[e]!==void 0)for(const r of i){const{className:l}=w(r);p[l].parent=e,O[e].classes[l]=p[l]}},Mt=function(e,i){const r=p[e];if(!(!i||!r))for(const l of i)l.includes(",")?r.styles.push(...l.split(",")):r.styles.push(l)},Kt={setAccTitle:ut,getAccTitle:rt,getAccDescription:at,setAccDescription:lt,getConfig:()=>F().class,addClass:Ae,bindFunctions:Lt,clear:dt,getClass:Et,getClasses:Ct,getNotes:bt,addAnnotation:kt,addNote:Ft,getRelations:mt,addRelation:gt,getDirection:Ot,setDirection:It,addMember:Je,addMembers:Tt,cleanupLabel:yt,lineType:vt,relationType:xt,setClickEvent:St,setCssClass:Me,setLink:_t,getTooltip:Bt,setTooltip:Dt,lookUpDomId:qe,setDiagramTitle:ct,getDiagramTitle:ot,setClassLabel:ft,addNamespace:Rt,addClassesToNamespace:Pt,getNamespace:Vt,getNamespaces:wt,setCssStyle:Mt},Gt=e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,Yt=Gt;export{Kt as d,zt as p,Yt as s}; diff --git a/assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js b/assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js new file mode 100644 index 00000000..ac6aa122 --- /dev/null +++ b/assets/svgDrawCommon-5e1cfd1d-B4aG73a4.js @@ -0,0 +1 @@ +import{U as o,m as i}from"./mermaid.core-Bc1j4tiv.js";const l=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},x=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};l(s,e).lower()},d=(s,t)=>{const e=t.text.replace(o," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},h=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",a)},y=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),m=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,m as b,y as c,l as d,h as e,d as f,g}; diff --git a/assets/timeline-definition-bf702344-BdCHgPg4.js b/assets/timeline-definition-bf702344-BdCHgPg4.js new file mode 100644 index 00000000..852aa6dc --- /dev/null +++ b/assets/timeline-definition-bf702344-BdCHgPg4.js @@ -0,0 +1,61 @@ +import{b4 as ft,E as gt,c as mt,l as E,h as G,t as xt,b5 as bt,b6 as _t,b7 as kt}from"./mermaid.core-Bc1j4tiv.js";import{a as D}from"./arc-BDtf7cdN.js";import"./app-Ca-A-iaw.js";import"./path-CbwjOpE9.js";var K=function(){var n=function(g,i,r,c){for(r=r||{},c=g.length;c--;r[g[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],l=[1,13],p=[1,16],y=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,o,$){var x=o.length-1;switch(u){case 1:return o[x-1];case 2:this.$=[];break;case 3:o[x-1].push(o[x]),this.$=o[x-1];break;case 4:case 5:this.$=o[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(o[x].substr(6)),this.$=o[x].substr(6);break;case 9:this.$=o[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(o[x].substr(8)),this.$=o[x].substr(8);break;case 15:d.addTask(o[x],0,""),this.$=o[x];break;case 16:d.addEvent(o[x].substr(2)),this.$=o[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],o=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=o.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;o.push(I);var P=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var _,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=z()),S=$[L]&&$[L][_]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":J="Parse error on line "+(T+1)+": Unexpected "+(_==A?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(J,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:I,expected:j})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(S[0]){case 1:c.push(_),u.push(k.yytext),o.push(k.yylloc),c.push(S[1]),_=null,W=k.yyleng,x=k.yytext,T=k.yylineno,I=k.yylloc;break;case 2:if(N=this.productions_[S[1]][1],R.$=u[u.length-N],R._$={first_line:o[o.length-(N||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(N||1)].first_column,last_column:o[o.length-1].last_column},P&&(R._$.range=[o[o.length-(N||1)].range[0],o[o.length-1].range[1]]),Z=this.performAction.apply(R,[x,W,T,w.yy,S[1],u,o].concat(B)),typeof Z<"u")return Z;N&&(c=c.slice(0,-1*N*2),u=u.slice(0,-1*N),o=o.slice(0,-1*N)),c.push(this.productions_[S[1]][0]),u.push(R.$),o.push(R._$),Y=$[c[c.length-2]][c[c.length-1]],c.push(Y);break;case 3:return!0}}return!0}},b=function(){var g={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+r+"^"},test_match:function(i,r){var c,d,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),d=i[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var o in u)this[o]=u[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,r,c,d;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),o=0;or[0].length)){if(r=c,d=o,this.options.backtrack_lexer){if(i=this.test_match(c,u[o]),i!==!1)return i;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(i=this.test_match(r,u[d]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,c,d,u){switch(d){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return g}();f.lexer=b;function m(){this.yy={}}return m.prototype=f,f.Parser=m,new m}();K.parser=K;const vt=K;let F="",st=0;const Q=[],q=[],V=[],it=()=>ft,rt=function(){Q.length=0,q.length=0,F="",V.length=0,gt()},at=function(n){F=n,Q.push(n)},lt=function(){return Q},ot=function(){let n=tt();const t=100;let e=0;for(;!n&&ee.id===st-1).events.push(n)},dt=function(n){const t={section:F,type:F,description:n,task:n,classes:[]};q.push(t)},tt=function(){const n=function(e){return V[e].processed};let t=!0;for(const[e,a]of V.entries())n(e),t=t&&a.processed;return t},wt={clear:rt,getCommonDb:it,addSection:at,getSections:lt,getTasks:ot,addTask:ct,addTaskOrg:dt,addEvent:ht},St=Object.freeze(Object.defineProperty({__proto__:null,addEvent:ht,addSection:at,addTask:ct,addTaskOrg:dt,clear:rt,default:wt,getCommonDb:it,getSections:lt,getTasks:ot},Symbol.toStringTag,{value:"Module"})),Et=12,U=function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},Tt=function(n,t){const a=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=n.append("g");s.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const f=D().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}function l(y){const f=D().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}function p(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return t.score>3?h(s):t.score<3?l(s):p(s),a},It=function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},ut=function(n,t){const e=t.text.replace(//gi," "),a=n.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class!==void 0&&a.attr("class",t.class);const s=a.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),a},$t=function(n,t){function e(s,h,l,p,y){return s+","+h+" "+(s+l)+","+h+" "+(s+l)+","+(h+p-y)+" "+(s+l-y*1.2)+","+(h+p)+" "+s+","+(h+p)}const a=n.append("polygon");a.attr("points",e(t.x,t.y,50,20,7)),a.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,ut(n,t)},Nt=function(n,t,e){const a=n.append("g"),s=X();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=e.width,s.height=e.height,s.class="journey-section section-type-"+t.num,s.rx=3,s.ry=3,U(a,s),pt(e)(t.text,a,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+t.num},e,t.colour)};let et=-1;const Mt=function(n,t,e){const a=t.x+e.width/2,s=n.append("g");et++;const h=300+5*30;s.append("line").attr("id","task"+et).attr("x1",a).attr("y1",t.y).attr("x2",a).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Tt(s,{cx:a,cy:300+(5-t.score)*30,score:t.score});const l=X();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=e.width,l.height=e.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,U(s,l),t.x+14,pt(e)(t.task,s,l.x,l.y,l.width,l.height,{class:"task"},e,t.colour)},Lt=function(n,t){U(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},At=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},X=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},pt=function(){function n(s,h,l,p,y,f,b,m){const g=h.append("text").attr("x",l+y/2).attr("y",p+f/2+5).style("font-color",m).style("text-anchor","middle").text(s);a(g,b)}function t(s,h,l,p,y,f,b,m,g){const{taskFontSize:i,taskFontFamily:r}=m,c=s.split(//gi);for(let d=0;d)/).reverse(),s,h=[],l=1.1,p=e.attr("y"),y=parseFloat(e.attr("dy")),f=e.text(null).append("tspan").attr("x",0).attr("y",p).attr("dy",y+"em");for(let b=0;bt||s==="
    ")&&(h.pop(),f.text(h.join(" ").trim()),s==="
    "?h=[""]:h=[s],f=e.append("tspan").attr("x",0).attr("y",p).attr("dy",l+"em").text(s))})}const Ht=function(n,t,e,a){const s=e%Et-1,h=n.append("g");t.section=s,h.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+s));const l=h.append("g"),p=h.append("g"),f=p.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),b=a.fontSize&&a.fontSize.replace?a.fontSize.replace("px",""):a.fontSize;return t.height=f.height+b*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,p.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),zt(l,t,s),t},Ct=function(n,t,e){const a=n.append("g"),h=a.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),l=e.fontSize&&e.fontSize.replace?e.fontSize.replace("px",""):e.fontSize;return a.remove(),h.height+l*1.1*.5+t.padding},zt=function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+2*5} q0,-5 5,-5 h${t.width-2*5} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},H={drawRect:U,drawCircle:It,drawSection:Nt,drawText:ut,drawLabel:$t,drawTask:Mt,drawBackgroundRect:Lt,getTextObj:At,getNoteRect:X,initGraphics:Pt,drawNode:Ht,getVirtualNodeHeight:Ct},Rt=function(n,t,e,a){var s,h;const l=mt(),p=l.leftMargin??50;E.debug("timeline",a.db);const y=l.securityLevel;let f;y==="sandbox"&&(f=G("#i"+t));const m=(y==="sandbox"?G(f.nodes()[0].contentDocument.body):G("body")).select("#"+t);m.append("g");const g=a.db.getTasks(),i=a.db.getCommonDb().getDiagramTitle();E.debug("task",g),H.initGraphics(m);const r=a.db.getSections();E.debug("sections",r);let c=0,d=0,u=0,o=0,$=50+p,x=50;o=50;let T=0,W=!0;r.forEach(function(w){const v={number:T,descr:w,section:T,width:150,padding:20,maxHeight:c},I=H.getVirtualNodeHeight(m,v,l);E.debug("sectionHeight before draw",I),c=Math.max(c,I+20)});let C=0,A=0;E.debug("tasks.length",g.length);for(const[w,v]of g.entries()){const I={number:w,descr:v,section:v.section,width:150,padding:20,maxHeight:d},P=H.getVirtualNodeHeight(m,I,l);E.debug("taskHeight before draw",P),d=Math.max(d,P+20),C=Math.max(C,v.events.length);let z=0;for(let _=0;_0?r.forEach(w=>{const v=g.filter(_=>_.section===w),I={number:T,descr:w,section:T,width:200*Math.max(v.length,1)-50,padding:20,maxHeight:c};E.debug("sectionNode",I);const P=m.append("g"),z=H.drawNode(P,I,T,l);E.debug("sectionNode output",z),P.attr("transform",`translate(${$}, ${o})`),x+=c+50,v.length>0&&nt(m,v,T,$,x,d,l,C,A,c,!1),$+=200*Math.max(v.length,1),x=o,T++}):(W=!1,nt(m,g,T,$,x,d,l,C,A,c,!0));const B=m.node().getBBox();E.debug("bounds",B),i&&m.append("text").text(i).attr("x",B.width/2-p).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),u=W?c+d+150:d+100,m.append("g").attr("class","lineWrapper").append("line").attr("x1",p).attr("y1",u).attr("x2",B.width+3*p).attr("y2",u).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),xt(void 0,m,((s=l.timeline)==null?void 0:s.padding)??50,((h=l.timeline)==null?void 0:h.useMaxWidth)??!1)},nt=function(n,t,e,a,s,h,l,p,y,f,b){var m;for(const g of t){const i={descr:g.task,section:e,number:e,width:150,padding:20,maxHeight:h};E.debug("taskNode",i);const r=n.append("g").attr("class","taskWrapper"),d=H.drawNode(r,i,e,l).height;if(E.debug("taskHeight after draw",d),r.attr("transform",`translate(${a}, ${s})`),h=Math.max(h,d),g.events){const u=n.append("g").attr("class","lineWrapper");let o=h;s+=100,o=o+Ft(n,g.events,e,a,s,l),s-=100,u.append("line").attr("x1",a+190/2).attr("y1",s+h).attr("x2",a+190/2).attr("y2",s+h+(b?h:f)+y+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}a=a+200,b&&!((m=l.timeline)!=null&&m.disableMulticolor)&&e++}s=s-10},Ft=function(n,t,e,a,s,h){let l=0;const p=s;s=s+100;for(const y of t){const f={descr:y,section:e,number:e,width:150,padding:20,maxHeight:50};E.debug("eventNode",f);const b=n.append("g").attr("class","eventWrapper"),g=H.drawNode(b,f,e,h).height;l=l+g,b.attr("transform",`translate(${a}, ${s})`),s=s+10+g}return s=p,l},Vt={setConf:()=>{},draw:Rt},Wt=n=>{let t="";for(let e=0;e` + .edge { + stroke-width: 3; + } + ${Wt(n)} + .section-root rect, .section-root path, .section-root circle { + fill: ${n.git0}; + } + .section-root text { + fill: ${n.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,Ot=Bt,Zt={db:St,renderer:Vt,parser:vt,styles:Ot};export{Zt as diagram}; diff --git a/assets/xychartDiagram-f11f50a6-B4uqsceT.js b/assets/xychartDiagram-f11f50a6-B4uqsceT.js new file mode 100644 index 00000000..693d098f --- /dev/null +++ b/assets/xychartDiagram-f11f50a6-B4uqsceT.js @@ -0,0 +1,7 @@ +import{a_ as zt,a$ as ot,aM as wt,aL as Ft,s as Nt,g as Xt,C as Yt,D as St,a as Ht,b as $t,E as Ut,l as Ct,aJ as qt,i as jt,d as Gt}from"./mermaid.core-Bc1j4tiv.js";import{a as Qt}from"./createText-ca0c5216-bYdpW0Zp.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Jt}from"./ordinal-Cboi1Yqb.js";import{l as ft}from"./linear-BnGacGIF.js";import{l as pt}from"./line-DS2p6aKt.js";import"./app-Ca-A-iaw.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Zt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(v[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(v[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[v[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,v[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[v[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+l+"^"},test_match:function(r,l){var u,g,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),g=r[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],u=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var a in b)this[a]=b[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,l,u,g;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),a=0;al[0].length)){if(l=u,g=a,this.options.backtrack_lexer){if(r=this.test_match(u,b[a]),r!==!1)return r;if(this._backtrack){l=!1;continue}else return!1}else if(!this.options.flex)break}return l?(r=this.test_match(l,b[g]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var l=this.next();return l||this.lex()},begin:function(l){this.conditionStack.push(l)},popState:function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},pushState:function(l){this.begin(l)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(l,u,g,b){switch(g){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return V}();K.lexer=It;function J(){this.yy={}}return J.prototype=K,K.Parser=J,new J}();nt.parser=nt;const ti=nt;function mt(e){return e.type==="bar"}function _t(e){return e.type==="band"}function N(e){return e.type==="linear"}class kt{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((o,c)=>Math.max(c.length,o),0)*i,height:i};const s={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const o of t){const c=Qt(n,1,o),f=c?c.width:o.length*i,d=c?c.height:i;s.width=Math.max(s.width,f),s.height=Math.max(s.height,d)}return n.remove(),s}}const yt=.7,bt=.2;class Rt{constructor(t,i,s,n){this.axisConfig=t,this.title=i,this.textDimensionCalculator=s,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){yt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(yt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.width;this.outerPadding=Math.min(s.width/2,n);const o=s.height+this.axisConfig.labelPadding*2;this.labelTextHeight=s.height,o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.height;this.outerPadding=Math.min(s.height/2,n);const o=s.width+this.axisConfig.labelPadding*2;o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${i},${this.getScaleValue(s)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(s)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i} L ${this.getScaleValue(s)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(s)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class ii extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.categories=s,this.scale=st().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=st().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Ct.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)||this.getRange()[0]}}class ei extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.domain=s,this.scale=ft().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=ft().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}function At(e,t,i,s){const n=new kt(s);return _t(e)?new ii(t,i,e.categories,e.title,n):new ei(t,i,[e.min,e.max],e.title,n)}class si{constructor(t,i,s,n){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=s,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),s=Math.max(i.width,t.width),n=i.height+2*this.chartConfig.titlePadding;return i.width<=s&&i.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=s,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}}function ni(e,t,i,s){const n=new kt(s);return new si(n,e,t,i)}class ai{constructor(t,i,s,n,o){this.plotData=t,this.xAxis=i,this.yAxis=s,this.orientation=n,this.plotIndex=o}getDrawableElement(){const t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]);let i;return this.orientation==="horizontal"?i=pt().y(s=>s[0]).x(s=>s[1])(t):i=pt().x(s=>s[0]).y(s=>s[1])(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class oi{constructor(t,i,s,n,o,c){this.barData=t,this.boundingRect=i,this.xAxis=s,this.yAxis=n,this.orientation=o,this.plotIndex=c}getDrawableElement(){const t=this.barData.data.map(o=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=s/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:this.boundingRect.x,y:o[0]-n,height:s,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:o[0]-n,y:o[1],width:s,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class ri{constructor(t,i,s){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const t=[];for(const[i,s]of this.chartData.plots.entries())switch(s.type){case"line":{const n=new ai(s,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break;case"bar":{const n=new oi(s,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break}return t}}function hi(e,t,i){return new ri(e,t,i)}class li{constructor(t,i,s,n){this.chartConfig=t,this.chartData=i,this.componentStore={title:ni(t,i,s,n),plot:hi(t,i,s),xAxis:At(i.xAxis,t.xAxis,{titleColor:s.xAxisTitleColor,labelColor:s.xAxisLabelColor,tickColor:s.xAxisTickColor,axisLineColor:s.xAxisLineColor},n),yAxis:At(i.yAxis,t.yAxis,{titleColor:s.yAxisTitleColor,labelColor:s.yAxisLabelColor,tickColor:s.yAxisTickColor,axisLineColor:s.yAxisLineColor},n)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),f=this.componentStore.plot.calculateSpace({width:o,height:c});t-=f.width,i-=f.height,f=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),n=f.height,i-=f.height,this.componentStore.xAxis.setAxisPosition("bottom"),f=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=f.height,this.componentStore.yAxis.setAxisPosition("left"),f=this.componentStore.yAxis.calculateSpace({width:t,height:i}),s=f.width,t-=f.width,t>0&&(o+=t,t=0),i>0&&(c+=i,i=0),this.componentStore.plot.calculateSpace({width:o,height:c}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.xAxis.setRange([s,s+o]),this.componentStore.xAxis.setBoundingBoxXY({x:s,y:n+c}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(d=>mt(d))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=0,c=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),f=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),d=this.componentStore.plot.calculateSpace({width:c,height:f});t-=d.width,i-=d.height,d=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=d.height,i-=d.height,this.componentStore.xAxis.setAxisPosition("left"),d=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=d.width,n=d.width,this.componentStore.yAxis.setAxisPosition("top"),d=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=d.height,o=s+d.height,t>0&&(c+=t,t=0),i>0&&(f+=i,i=0),this.componentStore.plot.calculateSpace({width:c,height:f}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:s}),this.componentStore.xAxis.setRange([o,o+f]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some(R=>mt(R))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}}class ci{static build(t,i,s,n){return new li(t,i,s,n).getDrawableElement()}}let X=0,Tt,Y=Pt(),H=Dt(),y=Lt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1;function Dt(){const e=zt(),t=ot();return wt(e.xyChart,t.themeVariables.xyChart)}function Pt(){const e=ot();return wt(Ft.xyChart,e.xyChart)}function Lt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function ht(e){const t=ot();return Gt(e.trim(),t)}function ui(e){Tt=e}function gi(e){e==="horizontal"?Y.chartOrientation="horizontal":Y.chartOrientation="vertical"}function xi(e){y.xAxis.title=ht(e.text)}function Et(e,t){y.xAxis={type:"linear",title:y.xAxis.title,min:e,max:t},G=!0}function di(e){y.xAxis={type:"band",title:y.xAxis.title,categories:e.map(t=>ht(t.text))},G=!0}function fi(e){y.yAxis.title=ht(e.text)}function pi(e,t){y.yAxis={type:"linear",title:y.yAxis.title,min:e,max:t},rt=!0}function mi(e){const t=Math.min(...e),i=Math.max(...e),s=N(y.yAxis)?y.yAxis.min:1/0,n=N(y.yAxis)?y.yAxis.max:-1/0;y.yAxis={type:"linear",title:y.yAxis.title,min:Math.min(s,t),max:Math.max(n,i)}}function vt(e){let t=[];if(e.length===0)return t;if(!G){const i=N(y.xAxis)?y.xAxis.min:1/0,s=N(y.xAxis)?y.xAxis.max:-1/0;Et(Math.min(i,1),Math.max(s,e.length))}if(rt||mi(e),_t(y.xAxis)&&(t=y.xAxis.categories.map((i,s)=>[i,e[s]])),N(y.xAxis)){const i=y.xAxis.min,s=y.xAxis.max,n=(s-i+1)/e.length,o=[];for(let c=i;c<=s;c+=n)o.push(`${c}`);t=o.map((c,f)=>[c,e[f]])}return t}function Mt(e){return at[e===0?0:e%at.length]}function yi(e,t){const i=vt(t);y.plots.push({type:"line",strokeFill:Mt(X),strokeWidth:2,data:i}),X++}function bi(e,t){const i=vt(t);y.plots.push({type:"bar",fill:Mt(X),data:i}),X++}function Ai(){if(y.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return y.title=St(),ci.build(Y,y,H,Tt)}function wi(){return H}function Si(){return Y}const Ci=function(){Ut(),X=0,Y=Pt(),y=Lt(),H=Dt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1},_i={getDrawableElem:Ai,clear:Ci,setAccTitle:Nt,getAccTitle:Xt,setDiagramTitle:Yt,getDiagramTitle:St,getAccDescription:Ht,setAccDescription:$t,setOrientation:gi,setXAxisTitle:xi,setXAxisRangeData:Et,setXAxisBand:di,setYAxisTitle:fi,setYAxisRangeData:pi,setLineData:yi,setBarData:bi,setTmpSVGG:ui,getChartThemeConfig:wi,getChartConfig:Si},ki=(e,t,i,s)=>{const n=s.db,o=n.getChartThemeConfig(),c=n.getChartConfig();function f(p){return p==="top"?"text-before-edge":"middle"}function d(p){return p==="left"?"start":p==="right"?"end":"middle"}function R(p){return`translate(${p.x}, ${p.y}) rotate(${p.rotation||0})`}Ct.debug(`Rendering xychart chart +`+e);const _=qt(t),A=_.append("g").attr("class","main"),m=A.append("rect").attr("width",c.width).attr("height",c.height).attr("class","background");jt(_,c.height,c.width,!0),_.attr("viewBox",`0 0 ${c.width} ${c.height}`),m.attr("fill",o.backgroundColor),n.setTmpSVGG(_.append("g").attr("class","mermaid-tmp-group"));const T=n.getDrawableElem(),S={};function P(p){let C=A,h="";for(const[L]of p.entries()){let z=A;L>0&&S[h]&&(z=S[h]),h+=p[L],C=S[h],C||(C=S[h]=z.append("g").attr("class",p[L]))}return C}for(const p of T){if(p.data.length===0)continue;const C=P(p.groupTexts);switch(p.type){case"rect":C.selectAll("rect").data(p.data).enter().append("rect").attr("x",h=>h.x).attr("y",h=>h.y).attr("width",h=>h.width).attr("height",h=>h.height).attr("fill",h=>h.fill).attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break;case"text":C.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",h=>h.fill).attr("font-size",h=>h.fontSize).attr("dominant-baseline",h=>f(h.verticalPos)).attr("text-anchor",h=>d(h.horizontalPos)).attr("transform",h=>R(h)).text(h=>h.text);break;case"path":C.selectAll("path").data(p.data).enter().append("path").attr("d",h=>h.path).attr("fill",h=>h.fill?h.fill:"none").attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break}}},Ri={draw:ki},Bi={parser:ti,db:_i,renderer:Ri};export{Bi as diagram}; diff --git "a/assets/\346\224\257\344\273\230\345\256\23510-BcbPWYKj.jpg" "b/assets/\346\224\257\344\273\230\345\256\23510-BcbPWYKj.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7b2266aaea5acc7357ecf4719c4feedcbae1f5e7 GIT binary patch literal 129027 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

    =O`eaC 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 E0P@4N%>V!Z literal 0 HcmV?d00001 diff --git "a/assets/\346\224\257\344\273\230\345\256\23588.88-cwJg-qu6.jpg" "b/assets/\346\224\257\344\273\230\345\256\23588.88-cwJg-qu6.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..368fed97d0dc78684acc40f66df852053e999c7f GIT binary patch literal 124963 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 literal 0 HcmV?d00001 diff --git "a/assets/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254-xmR8DCB1.jpg" "b/assets/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254-xmR8DCB1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f2c960c59b54eb5eb40e819e8d840c9b07736946 GIT binary patch literal 354705 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%0D>_RfQqY4>!#hakUsr* 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

    X_8^;&7Ivr#$!cEMi>VL0`|Rq5n+!FS;gp`x6^ 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 z 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�O0XWD>j#X5lc-QmiCI=D# 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 literal 0 HcmV?d00001 diff --git "a/assets/\350\265\236\345\212\251-Bu8SX5TV.jpg" "b/assets/\350\265\236\345\212\251-Bu8SX5TV.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..22adddd49d7e5e2cfb8b8bc4437cec2b11feab6a GIT binary patch literal 171632 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�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� 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 Y@Xzeky~B>zS=Gpd-rH(Fd2#dq0f@);u>b%7 literal 0 HcmV?d00001 diff --git "a/assets/\350\277\233\345\272\246\346\235\241-QdAFSPTh.png" "b/assets/\350\277\233\345\272\246\346\235\241-QdAFSPTh.png" new file mode 100644 index 0000000000000000000000000000000000000000..4afe70eee5c0c8140bad8bbec2cf2ab9fae7b408 GIT binary patch literal 22172 zcmeFZ2T+tx^Deref&oF0jDR9Y5|Atz1eBa}lnhH!a#}!9B#21Pu%P55VL>uT&N(N^ znFW@-u-xJIeP5mbse7yLzwWI%Rj2B_RTR6k?>jrwGu{1k_cI%;qV(qeUCO%<2;{!3 zjFcJ#a^nL8g6)4B8?+QIZH9neK$CQAI+{oS8I^AV&i@c(+sA_tBVkaG;j2x;hExg|qFZ4T-Y8VVip!WA3 zJ)EuigUu|1A9z#Z#fw+XG9jNnt)At2XQ3~S!?|IrF3MubzJiyBzM5T!$)anA$iu^* zV&@o|Z=2O;ZiF^aJA>+<>dXvuQ4g1fha+S>pk7{rlqrN@I**Ng{ov{8PspKm*0=e1 zIUW!eB8;W<^hw>yIfx=QWIW#fE!!J0PtXUF^4B8_>y!Gy9ToMEjtFYExvn$w0Pjp| z<`=Yc5ucEPf~MB(i0iX5=rvk~N06IO(3Cu|#6>nc=qnxpKE99Et`-&q0zbZw?_}kR!HtdJlKo&Aan?+!P$E@2I=PLY_%5rNiJ_sl_uZR8&;lNIqU(*Ym@TeC=Yd;XG{E z3TsWDpATlc25C9B(S^ty$83KSL9RzJwYTA$ zaEQPmfNjX9^xm_w%m{pwDwZk=42!6{PRA}c6N5?;~iwfl`k07 z=4gJQl`-sS^yfmO_wjZKZNn7?jjTl}b!o8~R=Z#(&(F{Mk_F5v?FTcYk@e`^wlJy` zj&hsfXWo8+2`M68a=d>%~yT`@Q`0 z!tT2UUA79d#m1EmhFxVllV#b(#T>+U*^KLjb4|eZp=4+s7`mm>X(F5x zZ#EdbutCU~eFKA|F2y{|V=8J)zkZK}Q!+g(HkPzu-jN(CNJJGD7AAWNee3f&fkLUq z_wt-oyJ(`xp+8k*y28G!bfhmuNHYC<%0h+x^fNjb4A%FFk&b`PV`*=1ugZBXmfetr zZfmS?Yiq0Q+Z1Rx-kILv)-mbpi?AIpvUlinN*m&}9RtE_6%0tZwKEpdk>WnLp^zZt zzH4V|>s;XpzR1m?>>!!iCu%X}GGwhktrC@t2!{pE*0>{Qs)oJzR?uddvS>;$=d?3y zX?o(jv##TY$DVG;xjOF?2cf_s-Lf`c=x~-I6~DtHDylNG%Y&8fofBYqMj%3g?7F2t zf7I1UVQI`*sW1@jZTa_Gkz-w96B=u1^pL4Yn5n$_VJelFC>YT6U5ze-E^JtG^^`g; zO#11ESe+~e>8P&nVAgIXK*)w*7QS6~v$Svw8+_|vf5F$x`(44j`K>Zw=$*<+$9V^2 z?fa$IYh}9m0dz$8UsBNSZf-?JbyIUhcRw4!jx@d3j<&`t5eR|GZTb?|6S%FkijC^*Cb@(H1m|fX5H+XcJ_~8XA4JI_-eY&+Hv$3}?!p&E1467x zxDg?(l%`k>Y9%PSH2#lrXEA&ZT)jHaEfZJmI)O%YtQn8xU2t-*_luH`u+ToU$NSO@ ztX{qEWi|J6qdG5F4-b#l5E3_LRidb|fr0PNR_J{&KIvtC0d}T$X9pH*;b4)B>%5MJ zGUW@ozciby$v@XCxAyROnY-m@ZQa2#!){p30|Z&^!n`qgM!}QY>jo!|a9-=PpZPt= zGN0w+2kem4a#78$Q-hnfS`wHUB@knGssQedpdb{pl`R%TCRj(;)yvDP05UZ=H#a=2 zzABg##6z^8@m0`Uhi+D4OLe*@(#JkJ!F*ar*iMs^%R!kUa|j4tSjMoibeV~)#D zNlYxI(IM$d*0Ha61ASJf(si;1EPxnhKm25S((LlbaPQjzyzTcH$JXP?7`A)B*nM-x z%Q?~+dOo4?cpSDLc$(wQnN$2S9;zD;;LfkG8}v4~Hu%D(2?qk~sv8 z69TqJMn*2k6OTmiQYa`W$mH2*RzxGiTdrDd7)DlCE%`+bl#Yo@rX3qZY(j{Dmo<@% z`pyN$_OiKGsX1WCUG>Bk^>NbuiO>1Nv)}#vd%)738Y+aqGnB<)?s4ma%7VQ>*>F)S{b<-wA^@6L`NU_41L@S*#!f zwe@|+U$~G@%_eAOTf1v)Aj@pklm-klKdsL@;FyjM4~b7!3@ipZW#>DrJ1XI9Bc?b> zI5*fV;iKaNP@Zz~P_k1;yF+xVowc>jueTB}$bk(9mztbSA!3YT%%b#7coqM)tjLWCYr;Fwl(#or+m$o(udIpU(AoQ zk}Y`zZQ@rCvSLJcPR=d@O>{cdnJsp>&}lrt!i?@rSL*-3LxYu&=lJ~UiT9z&&_NV1 zG+Vp74z{-4xp8Mb3EV(S=YPNdA(A{IKr75(i%?p_Y=ppL(=dnGV_phl;S2931RhK$ zzN&Ya72Ns+%pY)f7%*6_q#oAL2g+5EKGBnrF?Ec%~!+oM@Q{8Lx*P*dW8?UdS?lL3VLk0YY|28P>y$N0r6H_l zHNXDQBMk34#43)E0GR79FV{8VuYHXJrr|%{0S9mPDF3I2Fks`v)!YXk^r z-siwDKhtE>z$+%+wttQBEABrdAt(4}keoFCjNdHG3*7Uck)I*P{ym6LKQFK9e@7$x z{5(9-{~o7rrbg8?c*6huPcr>~dGfzI=l@TF`aci-|Ji2$8%ocw2-gK%?(XwmTZJHC zBEAo_OnfxB)$}?@b96*DHu@)B0+q?1Nvq4xw*}FGT&_+}nF!ybQEfCDUACJb ziL6-&F)&TSI4OX%0A8BPLHKTD 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 + + + + + + + + + 此处存放作业 | 现代C++并发编程教程 + + + + + +

    跳至主要內容
    + + + diff --git a/image/index.html b/image/index.html new file mode 100644 index 00000000..17667bbf --- /dev/null +++ b/image/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + Image | 现代C++并发编程教程 + + + + + + + + + diff --git "a/image/\346\215\220\350\265\240/index.html" "b/image/\346\215\220\350\265\240/index.html" new file mode 100644 index 00000000..ef7090d2 --- /dev/null +++ "b/image/\346\215\220\350\265\240/index.html" @@ -0,0 +1,40 @@ + + + + + + + + + + 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/image/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254.jpg" "b/image/\347\214\253\347\214\253\350\231\253\346\227\213\350\275\254.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f2c960c59b54eb5eb40e819e8d840c9b07736946 GIT binary patch literal 354705 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%0D>_RfQqY4>!#hakUsr* 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

    X_8^;&7Ivr#$!cEMi>VL0`|Rq5n+!FS;gp`x6^ zt_(S}s3ZS26x6$FuU+_vYADcD%gCk1dUW$`9}?-6w8Y-@UjjLUw&b5eMt0=UI1GHa zfiH6vneWZ7#~VL6vdsWsv|UyTmo4Oo}B)f zNt(#*m)w1gCatRHSbmeqKbb=)R}If;lX#bgd8nYq&{_2cb4IrF2U#T~vMZUvn^xa# zS<)DGKizf`6hr~<5-SR2?5)C-)jhTx;~E75K59 zzyBDZTS4$`@m1Li(UF(bhUHc8XP}_rWz&#|i!{B9Jr`i+u?+K8o zBu;GRv1$SI2$(Pu`lHeLZ&H|sn!G;Tk&t*j+_yO0MRa2u(%uIfL8M`n0VDycgR3cG zA2AIY#;_yH{@#Ai+SnK^f6^|m9RUi?dixKt!j=H8BPgtXn%SL_X2>Lpo|l+cw-0St z+Xne@P(HjP!;;@Ykmm(;?@t-tlS#F)#Y$N6Lge#V1(XnZ0p!Ah%p?H#iVPhvFwclGGt=Be;# z8%&Y#$aV>kj!cA~bAiyhd%coY+L}K`RmF-wP&k5?@-GYUTc+?L1p%0U0?0=5tKxxg zP32=!xDh2OB*8_;_>ME8Dfhm=FnWoN`s6ylP`$7t4!y)dfHHakNUZYSRWmiok~`@D zJB23Q<$5IMDsajxVHdf!X;lm>bNr@CiwG5(#SaTI5C8;LxmrW5xCN>CV}x~Sd|f&b znNUhn6xX3bxhXJ9ikUTe4I@y>Myqj%a6DM$dkepw((Ht!0%1*{j#p{bI}07T^7C-W z`6W;Vy~Ikh`B2?pM?yJ^8|EJ$MdhwLb%n6#0Trn(+Dn_^?WcEqw-h*^gNoZwJ};1) zJkN@SvmB95ZGdqpfFiJEPx94bN;5d*)5pRz$)LYW+oQh-CG<;v(!4ef#9-mfQ~-$w z=)3@Wtnj(#NSNH#v4>)UQ~$UI?u`;m69;YhXZ%yq*vFw1xCV03sP-i%3h!Y?Oy}<{w+J)&%`+Tj`g#uyxc!bPi%FG88Uf3*g|$3 z2^rS&ScGp`y?lL9ebb{c+{0PWMsT`cU0iK%?{$bm>W|pP(sOBouz-o8zDu5OMFGznqi8LNuBRwxpC)URY3EiWL<4{{qKtslt^tB~_h8 zg|}}P+$}D2ZvS7-$)=LR@`B3V((0MJMcB#lexX?`^?y@aDAP5hzWKqb$8&uzyGq43 z-hVjE7oUGQU$*dQakl#Bo1-V?2Om#?JDWv6+a1nFP*A(iets-H7p@=$t2SL`@4CJ- z=#kC&cva4=N6HNP^JurxQda~PZ`<8;!C(o&xu;?4te3Vx<>}l!^gAEetEGrWV{tiU zrl)yJNVDo$(q8=BTtZ~Pc%)FlRE|v@Zn+);hzYnYLOX((6RrN0_BF0psGK5ia|}@2 z8f6$E=zqL8y3Ge|UZIDG9y{gnea4BHkRD2pceSEcts#{7vII({0~a(`x@V8MUk&km z4PBhL#Pl;a?&x?oo^AN{-`{>f0Y}Xhp%9HF?++ICCGz_f%Z?x1-Yk9XpY{bmZW^X^ zQoFPVUMvZHcUV=A3N%@@p9;3Ha8)ItD#mnwg%}_T->sgS>$a8-58TgQUh`$J{i{2^ zx0Aw+&{09-t{Sb<;Q%8G`in_t@>(4HL{`;z^jUxJJA0&kT;DL5EJ@9R(}_t@JujNQ z#inw6pLAANPdIRMx7HMIa2!)DMdR-t9RajAWB1EYqpc-!%1ZYP^C_obiOTv7%WLW^ z_E0m9BAq37xNpeM7|0~tvrAIKCUGm>uh87}o81k(%v&2J``8NZpxEGg@u-GPd&zUU z8U$>CK66A0IO=xzk&Tpz%KELU`Fn`nvth3T6?!^|>5o%KRx7Msf5Zc0fPwz> zdP}`7_hl&&GZ*Gq=N}J!9n_E(ijJpDTwX(09P5exMobj)X;vcBZ_m0@HP)$Eh6mET z=N2v(AEtlrR#P591va8(rJ2ZGcl23bcL1r`&$>kv4q?{C3GF2}?bYwS@T>k$SO-Zj z7_n{8p;2d!Ea(1Q^^vF-y71*u+R@Klow+xedqb+X+Z3DnBFG>!nwttRYq(QWYJWIr zc;5DXUvlQ6wZ@l^Ywl->Y8(HWh9oz$dDw!xQiMjc=$N^2RDTdnz(J!-{DrMLER~hW zeIIjnnZ}ZbdfRT6=3JhqUR&f_J_ykeWZ}S~wZhc+&>+jhd$(PS6<*A%hmA0kVjgHu z%>5$#YLnr*wjW(CZjkM?Yrt0YHt}2N2PVqoi`M|t&C@>Eamd+=k^y{%t%RaVePm_= zy-&lj@_$2lPs`5o>rF^`kL@F$aQz0n0DdVw!7e)y?&YIQ@E$8F8rXvo0OF_%wQF#yHvi(nVT=QlK^qF6F#xpBtOg zA(rR9y~FYiHVK8U7$?4)*dis10k9w-Mo%v9?jtBw-SIN`x|g@0dg+c0Xl(Dru4h3W zz`U|yka09;7xlQ?(C7`gNj!OZ#F}~s?u9*#^QA(Kh(Ab2b)d(Gh&+oLa*kYi+ZFwE2QEQ3eIk!Xdd9 z$YA0xHXu|H_Cq-9EZs*g23u_MikLAi=wEc=w=2_quSs2qf&=dkvH}n7%8Q>efC_|Z z;=Khp(~QL^9S&U48#lSuSj}`d7T*)iW+taGrnENGnx*!}o0KJBV#S$dxtJTDw6``& zw@s*h?H9Q~#$Cl85Tuf^blRu!gqNMA6O|&bn*(jf5YKEiGz8`)K53N|x%*nRsbn}! zOf(;a4vxUwaX8%=BmaJUwXA+ylL(`l4h54|GLt$$m|6%r#!tN3RvG`CMR=%9j*5G3(+50jHfhtFbn~c z2i?t3_78%uZf_Xs^-xgET_wH>OVeyfGI+dV!jXLMj^qZ=Enm>p%H96pg}!_$(}azI z@f!gyi)~y)b%kwjnh5NWI<(Yocx5TE0&|)*JDr|YBPB2SPtI2*(I)^sY{mx&y1y6;<1UaUtBm`gR?KKULi-33?@mOK+rhKRG?_8e|9h@rJ*h;6iK$ZHvA zkDmlRY3Px6C+~2KvdNXtI@xIkJur{Pf_iI`pOZf9Akf$mncsJcZVhj_a9{RRwC`$= zN~@gEoMqJ?TmSeYYV;0PN)Cc2IAoX#acOuBUeAk^)UE!1sCuukCfYV^cP0rCAVBCH zLhl%Q$Iv^3-Z6j_DM|+^8hY=&_bOsQdeMM@0*Z(VsHg!H5F028D8Bjgt#YhmZO-0o z%{X|0}lkzU+GRNYLsdSuuwk>le`J^B+a1KoyWODQu>du+m3^ ziCar$tdiYjaim>uo;jWBj`cztf;mqr;tAA z^L-M7=;bS?zTgO!l;toXKG;5nfzQ3zVH9QDfjh53wM{;-?+Yo zc%a5a?OhRd57wzxP+ONK@Q@-mHWxSFe%4rQzbpHT?+wzEg-OyjdnvT?l{QmnDW9E@ zc+jFaOjO}-?h2LzivC?jG8nw`%AD^`0Eouf zPqu$db_<9AII2W(eqDeS9no~!+Gt%v2SQfVP55#@(KaJ5#`wBXOfm-s;2$|y2KKLx zi1w#ZpXTb*HhoJS`TZt&P*Dxu=vLrbEJZlW)5s6N6P_YiY3(?vl_>=-L$_W>V z<7N~E=qauJKef@n0f~|e-{$nVh1n{LeLd%*&qh2ggmhx`b;u{O5t)3;Yw>iV4B9x5 zg>q2G{_niWhJm*D+3|O9m}ALcA}9(wOnAhsh{8Y-XvafC`<|8Le~^pKv;4HXS2(CR z*E*%SIQjUU<+O>QJSNpY+^=O``x&)AB|{|<5SP!!#1nQE#SUY0@M*(Gnwq+EsL6Rt zM5PMJ{rRbH3zrJr)_S7I)Ak$5g9Rd@Q7lNbgrqVC2Yv!Y^;hMXP3TOsOo!MnM7mrq ze1?wO_YFE$)J+bNtVAD+t5QIv?}M<5SXKR5+Ab&Iqd|e+v2<6tvNio;WDGLr?JnZ> z5N`-+j7ryRMl$_(aqdIFE{y{VQ;k7=?Z4WJ%+5-KTsAekC+h2$aib~9n|Y3> z{E_;$E$gpC5WYf|K_HC`I=KXJVI%gUy!LecT-lN<*mx&f5R%}iYDOF2zWFeJtjf>s zLE0b@6zVjhC4eCvCMRp5Nhj=K?6O7h{1%qNNh7J9VbiE>`xtx0-hu4ON0CD=F%=|` z5+DV!(EB5~4_>a|JsKS^4ZVJ`|H zS1^*lAyg!z4E%bSk%KH{K8t?X}Q6wyJF-zTjJKo8s@L#8ODFM31rpW@p#3Dr` z!u|K}3TUv>VY$nH{pPtaFZMWt+15oz#V(0FogUySq>PRfdI`wSC270TPK#o{!b`7R z7gstX=Lb-kUrDo+U(=4$C?@Q1sBL6!DYI8$spuCt5kN3Bu-p_1Wh8K(MZ}+&z;j(C zpG$~cNmoXtmH4DZKz>M`%%fp0>W%Z@#esyJjGP(+`nQztUKAAh5Pti*_#B6DYH6aR z>qQQ#OJbw$djTQQ8mtvaZOK7_JN_cS?bF|AltuZ8FOJncFSe%}&i)=?^VqoF+3$t` zCR!)PNi@n(tNdcw8OTJ)iz(B5>6*#6C6f6Yrba63&2IRlfeV}~|GN=@fn73TgJLjH z4jkC!0J0IFfw1a(Dm>&sryXWymlvr5AEX_sjXyk>39W|H9iZ%7qrX*`M{Xo}vyve$ zVjvyTM~efX!T(PhvKy;tpyoQlUd_)8Wi8TaR z*kAjq8ODh&NUuP3in>u#`+glOUgt7=Y*c34E&nDfoF+Nwy|}X?Mo<1vi%b|K2d2O| zWRY2A;o>UCb6D;CfRi3q^mD`a$lvdIm81?@W6lUXHuKk`g~*3pecdXY)zqoMeu;%W zD6=w0Yk^j|$nNbzQE4e~VWd2MtUdh-Q!6z@3!?x!W?hbHx$jGh!9#Q7f*B&<@#By| z6`>BH`YSIZW5$>iC?&0{Qj`rJ0}(tkQ&i=aQqNAIdIqNX2{YrQIW))u?CnmRhoOvZ z&=B=rAF9N&dG)=(UR|;FnOT|TSt({>^Wq#>mw7@$^^NgPHN+`x+p9aLVvaJ*nvOw| z55_xDXP(c_7)*M2)=GSblA$gx-9lxx=g8VQ#p=Tz7@UyzoX&9lsO=xJ!<{|Dq@?M> zB7`J*cPFAuBPG8N1G4)D^5bsvzwXnQFbtP!(P4=IF?XiBJET85WyixA$ z&2-9YP9lxPsa5gI<3OWn8T}G~PdX?e;Uak2)Wd3M(C;O$7TY{1A=I5EBnJIYu~&8l ztC&+E@S$Dz3T;fRE^K9p)_;UNQv9n6w}~-&9K}6U3~1x>;~#1Sabutu$y8Fe_iU}r zhEr{IQu}N6zjhQPrd(08PC2L0d6-s!=$2Xq@S#}-UE27F5hEPHNb!`58{|BeLsO{b z$HdJc?yT8aJMCMgNVlK|1SUZl`Wr1e@URFQmCW2l5rw-KIy>+0pLH)qWG++$#B<3h z|EMgJ01)W5>>rs+K{EH~&H8X&|JH1&Us?QfBO9uSTdpdM{0(-m?ov)n2oZ3`i~MD$ zJB(QB@Ee)EBjwUV47SqScAme*@o9#O-3%&SF7Uba0o`I}p;@*B58D6NXrsFC_>40p zi!M3Y`1@>ng3i`qcu?mLJFEx_ZPg&~Fjn9}TB7ant+}Oc$oLyQ7y6!G*~TZIXb1mF zFcbT|CPy%T`!4K+aN$wMZr+vq^9Cv+#bN%hBbshZRt=Vg6!HX@bSUdQEJgtyPZa<- zZZ>?MH{UW-U`a7J-0YS(V8ophQa<|w1Ep$;iuZ;!o>zRICsxn0^G&EEwD6+34IgHf>BL3#ZM(=w2I)tOiIf%?9Ks{~_d<839_9FtFNH)r%V_ppD4*{2L%I?e2_cD9}x(_K~LWZt~jETWF=b9VzCCUrj+ zo*s1n`#AA8`YAV$a*@u7J8XNiCf_ItWp8bFI<*r|kHJ!<*VtV02H4O{cijpja>VNC zrTFn)XZm1&#Q6B4h-ru1)?}R|dgzR(323{a$`qgPKzNGGeg3#shXb*fm+3sw$%{TB z$)NX)4#fwd7-~$|V~8;k<=(8RR~^iPXL*5+$++SbStC$wV^GqOZS8A z%EQd|Bi$0aZzqM)UL;yxXC?RMnz;u&(|ly!R;f5#JO@?Bm>d4+l@u1IMomNh+?U|5 z{+B1q8)m@1gI9c_?cO8!gjCy*(wA$s5~NulG^f4hdXZ)#Pq|Gkt`j!#cs}7wRQNHM zLQ|HR8lYs!e&$xIv;~nkX74;H=;2(9Qc}H}WLR}Flvn0hSJ@+c!Y*Ekc`EXx{aLnN z2>s$CwV3Ex&+93V*~dS5-$Zsp65|UCd?xeNT7O#5I^uiYew{q2m1A7#nPx7l{Nci} zC%f>-xgyq?xPgr8@-~cUx^@MkAgw47yfUehA5)U`pH3(>9#9C>f?=Wb1ZZBK``x$w zcVvw+Em4IPub_v}xO1}jX7jTr#7$|VF$JmjlOC$-;VVk=K|WTropk<)g+&V-=xhq5 zu=o_G-MR9jQbPwd>(b@f&0CLwM6wUT@V1;jwl^?kP@%ilph14*{BOtdJgx50#5OwqZv>z{)%Bdg70v-!7<~vH!-jdYH5|9-eMebpd;26_ z*$oxEQ>xl4Bi9$nNJ;99_JwUsa022d_BXN~3lLv+RSTPrVnv%wC4)$!rSI>n$DVY= zXix)GDAJbMTb=01#~ph=`xmHJ2WgN~=3kzdAC8g72dagDn@VvwWv8EcW$)$$*XwT; z6F~zHHhLg_a&#>^uW@wYrp`2!7N^35oO0GUbY;2u2Br^kU)d|@%E($_rB68ke~>pPfFWW)=r2dW-DfQ zY9LoNX@;xn^&tEHOoqdtE*!i+0KeK`#d3)dvhrolv$KNv8=%9^#xfgFF9*PS8nDKK3G=Raty`*@SHq+_$ z5f^p8eZsb~&oyT+4+-m!n@iG1SH#nwaW^xNS!lQ@qfcC6knQ}GR`hGKAA!)Fa)_Fi zUARdnO_VfTrlMhBL9n53vF;u47Dd+wa#=b zw@j`Wv^~sxyZB97aq~UBlnWwEC546=yP^lb7#23oLeEBA532vdPGr#MWA>D;Oz*O%!xST!}S6!N<7W z#^P{@B-1auR#)dKpwh`;z?Ix4-}KVN-bl`fy`Y3!^-8-YcQ!e8S4bDrWG^v*Cg>UF zp#JcepE+FNjwyScfvGd<88)lGgS@gA1QQz!khk&L=D5nn5WigZ!Ee#Kbg69J$)(^6 z5o2ACz~fo$Q`BB-$ktOjP3ls@^gz+@2oCGxxGN4AwT-41J=EFdmwIDEP2QAtShDh3 zNvZIzhu*khkwwEJiz$2YUuCy)*B%?$Gi0V&O^d@*+(ITQzFQqe3|TW+^8cZBa;}FuC|RZ6!Q34 zU~+ps1*s?cjPR6NL8wN<;Ay#H*4gdes2aJ1W95LLfnZMEp`Oj?)jw|PrqF8#aAIxk zCK7nsGoT~HDjG2_`}UOjZ8wSKC|-H-quGaFd#5EgxD2?Odw>I+Cbs~$>^ zo+a3Vk^AFW7k#86;5*zMxYSah@k}y+FSf?GvZFlKb0`&2b5sp6tiAkwf04lu?hRux z+Lzb(z8>~ibf8xH)%T_wf9`qjB_&w#yjOJe_;!ACzH`@{SCr%-F(i_5N*zeQ=o(^f zZO8FkQ?&NB4(zJ*((9M+#9I`ZFGPkX6po@FB-5&sB{=j}SV7uHT2iiNarDX#6~J%e z@oj^Yk1{WMSsoGJC&6#7PB@%@8%e%IwZv+|vjtzMtPkU2v>5x77x1|K&gcCgv+14n zmr-2>2%iwAo2-26bt=G>YCpI>Ukf-bHWD=zs%x>j%sjN#DfODp+4|?(zTph$CUzB?e)5GzWDB*QewMnB*W36>5k>ig2A=9pBeoB0tp6~W`P5jq#M^mdGiHlr?pkdyh6j)ZDR8b*1iM=5b}eKQsRK z?cwA^ww(yGQoW7rhAD%Ok?-J_s&qcRR2s>7S@PJ9*a(CcD&e|lpeVJOySP5qTx}QG zVb-qnYn^BmkyceOSU4+-7q-4?QM*I`LF{9uE^K)>BI7j;)x+#XyZKe8d1b4n?LdA3 zWt>1H3rhFrLK?K>fy{rFTU5@bB3q8%xPWx-m6COSnGV)c?qCT+$uPV}ygoJSOHWjG zmTkUYzn}Z9my4#QY8o{cayrxAxBu~5P8GivCxFQ-;9|AUiLtLii|%n-1K+M~A34_V_pK#z z(y0-qmOd$2YoW`^hF=_54q8S!UaAz8*SnFo?`=jm-`KTitEo0uZlSYAx!^4{f6VI8 zPe=^S<8Ls_1b!lx=$Q$B_p{ypq9khOIDuNalLqnfyg~wS3ub9;a<|J0+@%(yCI<$=GI^gR#nDQ8d1-{{`pqy4b6(#g>5^ZpHCM${EA<_` zY1p$cFdh^YT_B$Nz3Eq>{22L_vEM@@e{# zrAxCDX2mj%f$k1*)loG8Oay?2jG`|1xhfrb*Qn#2cuW>U$cBTLTYg$#B9iK}eFmMZ z7cBA*4q+FEyhtQwOw~@kq)@PIT`3tTE=?)Hr%Iw9lVN{^H-Z+bmO_6HfVGbe8C(Yv z=k2$Wd>oQ%Wi!H8=^Vi@A~>?F+C~@hmr)BzgTqKruj^t@qlcHK>1<(LfCKnu8&-4^c?usvu&y z1;TYI7S)EuO90?7ka`6_Z6N1QAF%rTM;so~AIAz*#DBS4Qu8XMm&C1c;4<46m+{3d z1>`x_yIOhMUxcDqq#h(&ZvR#>>{Go4m&XHk|E`(1HuMi{S!p=ypFM0H8?nm$n+in` z->?6czn@>%LbcMA!}*}bjSysOa@aJ|`kEPpV}Svu;3a&=X;ZMI_tUqkQ?-AwMv_Hb zE_vrx=gEOSD3my`#4d(#+|ER7rHEl5&MWy(I}3MB zY?H4~T1pb~TggR}7w$Tp5E%*3M48xfp1N!r;jrjm%0#N+EeteqhmMz|{d?e!uiyRB z!$#@XicjND?|+&Vv<+{8;KxE6(cjK~jA5YN)xRL}O%=woB*^FLp$RjYgrwiGk-8t% z;Ik}N`q00>qr+*CpaRSJyqV1*aFL)Z8Rg3Mg8MHXyuWRCD;!)+zo@+u)4@r<{_y6% zJyrTyV=_zVQJPBB2gsC|gi)uC@Ls~T6ktw`H_p&I3a0Ku4atHgHedid;Hp8S4w*GZ z)FtIVm21&+%FlOo`3!81n?g~Q_WwwJ+sxOi6s~{SV2>EVut;3zY!u*=n z!GyBw>Uy9}d)W99h{()%vtO~J;;ApBa^3$G#geb~A9V;I`2ZCr5KHFhDW?lR5DLT({QB zYE_*NR}(*F0ZMq&#cfDJMiof78G5}oD4lA0FfVjS?Sh@>4?{R#5iKJgKv2pe2ml=( zK%zk2q8s<``i4b0PW`~fuprs7RH|bBOK5OvkJcJ*v)PS1fiz$%?QAVSsiW|Zc7JZDZeRI93G&?rU5PRTr%`9;1${|NusyL4pD^@9%lKKRwB9S5Jz`(h=rc5DTr)U_xyG|wfTiNq5s$#Dw6Mq%`u z;sA?DS9(yFLYpM#%eoo+N(W`{$c4zf_?UE@a29iHZ4=-Q?~XC%*`uzv0lcP^ds4(h zB_n-)pIO}%yE^pH-s{v*#teZutZM#53&(*+-Z7V|%~tf8)QA;VsCrXk8tyBbU`zBR z+`@*a3O|h7Tnlne$AR=X^h?SR5m#E`i6iqGq-(r;Kxhx4vl%q>?8ifX*%`d{_p!xdCT0uh5z2X8>anBI;ixGxUh7<9>JcIf&fn@VRK2jql)^2_XE0)muP|a`4 zj5l@+HgzKTkOOq|y>_9Q@bO3SuT$E4(!;(M!-npI0xQxgvsJigd3J91h0enC%d}c} zfktZNyP`aYUF*&qI`k{lYblRZ`fDiq0bOj*)vWO9EA6Z?9z`;(^*?UZDx>SMfL)lP zt*GFDo#ioHqLF9Vl!ZK=Hv*E!!Q7#-7sK}R<^vJkslJf-pxhiv+-hc>mW2o%eIr}a zrG{_k8HSG&Ey4}|LV99ryyt!G#5lSpMuDC_1pvxOEbNt{;MAbwVOz7aPhu-fcY^1N zq}ThUIFvipePy%i_A>QH5t8XfqwRgx^B@O0sof`d)f{|(XalLbl3Wbu2U6A)Q=T2& z7lRYrEe49x18=JLoh}gFKSbHlg0xN7r&kNM7KyUQUAaUkwMr;H8U`ODW z>WlrQfQZhqHbDpwLH45L9nLhSqQZf)+68msCuKPL6({D+16_}l%j@PCS{r6M`F-=* zKz+D*6PaStm=j4(rzps^(F5Ai1oEdK6m48RX*zjruBdB_vorOl?Mzhs{ez}F0i@#3 z9|^bd04w%NRNjnWGI5(Qy}SjxS4*GBS47o49NA-1BTaVwI@TWALnx;8e}Dh7fqzA8`kM;V(te&jncNJFC2ZT@adKR6ht0( zxE=gH+$Y;%`U@ z%^49fqZkr|f-(1maRvW2AXXL&IDsa?Gyc61?WS!jl(vhowie?jbqwU*&AQ<^W|h4K zsBtdHiv=G|!6eupb$ z|LY~KsO&5vxIUJR)E#Zy5GeU>Fr#CDNXGE>Ss8Xcy=o|SV!k%1F~DYRMnbmSrT zTU{E8f$1HJFrz8Cic1u<)Sh*jJpxsG64MD` zFKBm-6CtgVpFivgY;>|Q^Ao-y<)=5g%Q=w) z-;O}jH*SAZr$iOAt8cYCBvYL)?>Zflchn>IC_Y~3JJ4(y7q#}mSJ%#=Cng(7#dPhf z9CG^Ze9l}qz=#AbkcVIYfsQ2T@~Ce9pZqGH`%md1BKLoK&fwMGa>ifTdo$5KTm6EDMl8uG=tv4AfQd)N2iO9us$2DOkUSCvrgGb2EyH zv~|c0GUARcuplP}RKg!~A>VUhL3Iqs0)ULD)3$3tPG~vvk(|U=bRKs?kHg~iPMMrz z{FZF%oUngJ??gu2kPmU(_?+`Vy>nIYZpGi(`x(*nIl1yTLeIm3Kd1F;& zT}5?yMNLtu0IG*lK1!VK9x3TBADinNoU6Y3=x*6n567iY&XGVJx|q);aV1mejfb=6niJpA1onpsMO^(YX@vd}iOG`h~&pFVyyx}}@XlT?x%Gnq%~(am=~YZtn|tFN--L&U6-E>h*zXx)TmG1E zuWda-IAF7}+3~gd#q0hxm`>N1$q)z}D`=&__V9TGNoWY`^EFA;Ey{VWqa>Px-x(Ez z8YSTYuao;IOIek*HHW%B>EMmpdTaF7n&rpo7L67P zBi<}UO`2`KFWMtbXRWUpkg~-FidzziEtAyp!-5$-A$s=DAucFW9`?9V-ug<;1tH%a#*$$&DR>0-94g;-D!M(NhotqjU4>7=`A$mIx;e`^H#(}Z+qtJ-N278&W)}+ zMay}!L8+iHxd_0R?W*#&>4jT6i%R!vPL|@r|MEZaxXO}BFCT_aK#Xm9oMCz5>V$&vO;62ct(9QRY@FL=W=!k5Uf|pdj=-x_h^# z;NVA~%)Q#%iLVDrWodV1PrgKF;`Lx~brvFo;t9rL63?37c2c%ckaJ6ynQ?Gyvs3i6 zIiE_R%W0RA56jEiH_vSrj661>WyGPP(je zqZhWOdYaoX>D6Cy;3(&>8vKGrvcrjcLW~e5s_ZINRA$F+DkQY=BmefD| zq&CYdRa)IFqzU757!83>n+XF@`9taYts&VcbSJRK_PJEGL`rY{k?s9A)y!9X zh1Qcvz7YBiR*aMx8`xw?hiqJvT`T`d1%%8lZI9Z0n6tCHBEm*pADb8CmVM)+*S3|ozwn7V<}#a!?Cl4g%2!jV zVMynVkgg@HzbynqdTJl2oJ~3^E}5MG4W(RI{j8P4)6Q9ZccV0<*!Q^qmI(zYuNZnR zA0>;(2~^LFQO2{E^+-G~psBx!w8mxPYGhA=yYqXNxh>2Z*A%xu>~l~gK&zJKR(qqP z-Ah#GM9~4;3?|VqgT`XodU1Y?)*ZT%-WJ8wpY)cIzz>dxv)Q44mFSo_Q26`V5pkc{ zxO3Cb@EbR888GkdZ-0O|cqp`86RqYE0uNYpr^<2|etp(MI)V*tu zkcSxXVAeZY(4}KaSV?G3rLUCHys+;bqUNftNS*94c=N5@fE|B>=(>3a9qEg~pM73I zdK9HU;YpVkOf>%alJ@!&n`@{SMP%#8Ki&2|9?&ElhcaeMt!^1L6?Z(Lg7Wj?Q{3<% zf?)&D)$)i%bA^A2=W}si_b~83u;z{4)Kw;79%-_5x0VXi%&QqP;ZT<)dGIiwretdM zl|IN{k-+yyKC>#_Ham|mUHK@3lvI$9ELU%A!cSPiIbcWr78o?cN8 zgl2uKwLxF|(P!(&HFD6Rwk9dCBh91s^^3+S+^ZW4yBw-(>jH1m>vW-qm^zh!WA!iu z3f%{#!7R#g7&ktP*`(8<1S?YcvU%n_pHx!@pZj4&p%YsGibNwlNA*(u5N~E~2foRt zqKfA=;e8zS^aYp7Yilw0a=l42fOX&1)o7AYSMJ`^BPDCr{pB zu-H_eSZq}sc7+ZRClY#VIo`9$yW@GEORFW+-rA;68ss6on!Jd|YvgOHQFvkf{~WC(5|?P zC<^+y%|o0m&d-^Z@q(?}f06-`R<5&0tcJ9n1XN7|;m=-YZ$aE)ap<+Y2frI1umF%a z)Za_4O+X?{WzJ?RKHBf_M%IGor=*jeYz+YfJM3)?u}HREm(K#j6ylt8YQ>uN^D(X?hu90qVd7Yz57D1_el zE38j=mgyAhGDjI~{nYm!wfn;?_yK~h83AV=A-|eC&!cKscVR|&Gl3*G|CYg7=6bhksk8&jY7jA%L30|$DP}Q`X z@8aP9RoUwd*cr#>nMo+c?*+;1$MqkTm5kUOQ_)UQ>nXodr(ngHBG)x`^y(hvCDM%b zq=G1@uHyxpY4!arC_e$pi-F4HgHwJ<%}a`0nzPl~fgnll2;%kaQ;r%U)R)Ckl@R$p zD@~TfX2B_8`+)0mc4piMknjJB^;1zaBr7@Whw03%W)5-8OrNUX;c&Vgz|C-_Cj`EJ zvk-_q^wIPB^Gv}fCS3+b>Xr(YcGK9C(?{}mCgewB3PWzvz zEQ4Zw*IFj)Z+{QvaEa73iWxr2*M`h3W_=}eF0+P&fl3UxZWxKPpaU*u`SPC>^ilbg zVzS3Bi&yz)u5fVMb-VgS+|=GHHRUSca%>5$u9Fxmxk$i@ImYpDgS}10n*pX*O>%mv zAs;2s=iJU|ztx-Vf(`6Dy|UB9S1fU+yj24gulBAtyE^&$IBYp){3lj~aWg*ODapKU zwSPAdMAuWK-esur7)NQv9I{aFF>fd*?O6?38dtM zwTMt3X{TS+%_XUgRz}dKOegRVs1`*%zMdxvoY~mZnxNJ`LGV40p$`Nx6@yXe+E8swuG!$BWmNMn-rh6d;IyJh!|5? zZt9|xPpGe7@s_Sa{ONt_@7*aC6&MB5te{NWqpz!5y=Z~4;PRygihK9sxdy!!Tneb@ z+m^!z&$fh=X9I)Np)+y(CwGIGKWk-pb55sOu%QDkjF(W9530)Qk1~etXBm!mRxPP3 zB)NEptVKz)0i4(>=#>h?PvjAn31$x(b9Y04jRZP(^EuH$kVORC&)exZ`@;%|obXNK zT7>alcdz4^ucjzEQ<>`p{|~iOMl5zw;%MFrj2v-Q%Xasa5+4InJGrOrrI+7_h*0&Bfz1vZ5N&^M1oEW zD|&sHajbxd0}Vgt@3qn1HrB$=OZ2X%MYgkmD^>TeLvo61Qj&TQe1|=8;s66Cv9Kk{ z)YkW@gyzQt^$Tl6Qg-`9tu625oebEe;)ia#F!ikgK$qZAu|3VVs(5ntkPk>|83d$; z>JB7Ccrn$E7RnA^oF6PnBcKZ%>G;#!m_EC)#5esl#4OMe;3PF(7XADDkWL`|?BxHtlM?`c6E=*>XMWO~Lkllh7@dHIdQK9f;auD$d^S z)d%3@&$yw~^A$*q(1HkoqXmI2UDWgLxUL&44H$Mw2hBj{`4=T|5Yey~|1hso{cC>5 zbRFhpvh{)pVYKl;sQ51>?pvnvp+#;7wX01<)z3gN2{fW;bmn6Ls z$3he=*Q1{d-z!!ja^rjc@br%Jm0+OH#$3fs{1GpKF(Z|!#f`6XLr?wQkfTFV1|d_6UYnCujX&Nl@J^f1 z@OpqyI!Q%X6Qzp)%6I70K&1RKK_(KQPJ)ipS1~s1Esgfy17T`UR?_TDI?tym;*+5l zCI-GcTD6A!N*3iQsFp|5Ny|12;h@-_(nS$~bXV%aEVvzVkn^=hv%s%IA=j)Tw(p(n z76XH-)#tVWgGZkqgWPYQ_1;SrQ#kz@zOoBd$45Y$0C_yQdGgH{#n%zaf0kFh^y&7y zRI>YS|6VPz17|ZtVIsuC{m*f*&oR))^{y!z%Olm;Heq{!t4YB@Q-R+o=hrrids6D=Tp(3d0&NN7jM=Y5Jbg*v3Ly0F>-_2GR@Y3=tL1YkJPs-wHtRXw12=Lo+k z;aQnzvl3>q+#k;fv)3@0c=TA0Q3p%=_1IN{f4lemKuQ1$Rt5CLdez+LiIBVECXmA@ zBvtNM@5zB$dg&Fo&kVieHe`eQ!1?_i{4Kxlr-%HTX;1K-STXzIJnoD@{&Me?oO1&@~SJ<&R%W~^M zOz0DWfrLLEM{7QK{Q{`FLemLp6wP8A)j*cg9%+w0m7-nY#!s831+6;{jN!qUL& z?^-?ohtLY5(uLB5($fVqb28Gha|OvSCvu7cLy!h4iV&b@-n)JdW4vCi2da@FK$iXaCKc(;*Nz9)Y&Z*FPj?PlJ5 z&h+E)TMyIuA&rexnAx(dymzZlD|>~s5Z@aNoO%Oi7hj>1Mn|hBMjkbc86uuA+;Rx2 z7tNx#k%BdY6=wL1R$I(fG#sW0s6N-y4*ho()8h4Lj$AZ|q}9g12YN)cRiDLXND4$?pC7AjRFa zW|yh#kRU+>GCZyJzUI``#_2t}DpuMsYXC8=g}@C>>usxk+D%_HM8#VH-pQ7)dLnX> zLN~)_F>RLS30sj^OISn`9w$gS)G~BspRhQ*;Y#E7&>b7J73L+1=SsjlaOUCEUbCJ; zT3i4zvwjonVyERd{KBoR8eSixeJ0Tm{{FHgBb*b3&ec+7$LVQqvNl+$}%wx#dSQ8FGV#!(g{b$`D83^2cUiUDmK9<$8mj+nkgIxlH|^t@Wg z>>_fBrXi=*6*)!#q4gfV7^*l&6N=Hz8SgkgFIJ0i~0 zNd_=NdbAa$PTHueufi(0BI5SP68SRrs}Iro9mt&&YJ?~r59QoHKJ;dO2tUwMR#YMh zampfV0lKWL3s|_K>!aDjg1^}eb#%v10>_z6(X(4!rPtCHyr}$w{*IEM3|e7m*Aj}V z;AdC1f<$!;pCuVhA73Yngf`t;Okbcu!=xgUPQu5dhppp9>Iz?3jfLLe>5x_#Xl7r$ zJpRpS@xUvE?#nPW-DMsNz(oHei=te@N-~r>abUX$GV1bE?yM)e#T?|w%UKVZigllu zYRKK3a_jd$D}7mz*{t)C;l>b%rHfO_*R~|!Wo`1bmH<62g)=%c+-|H|R-y61i{zMx z8(Dw4yH%T0>Fl@rgexmnOXTDVH81ch%lo@9>Dw0;u+9;o)O7GBT~jh}p1^Wx&)3{P zpl`FP@ZDnmm+|*aysq!s`rrGhQmc3%^Eg@IM1poQz$xjk@%1`4jrdgji2PR>IrXI1_ZRZnYNP?)RvryAwNkFA~cjP=YXM+T^9( z3YRZKPgApz4D#qK>8Y_W#uzN#wx$-T&^h^B=Ni7vq*XG(&u>#Y6hRU7RX|xWsu2Qm0~SsX1Sfns$DOEg3Alyi)ZY zz(}x#;pe}iRTY;UzNKJ?!{|h5r+K~pvlN}P;g{Ag4#_!`Y->FVKhp4G>FD3QjP?@t z1rg>Q*CHf3_$w5>B;ITx5BFCx^&M_(gxjT~ereQ2`|2mpaEK@kSfGD@5&d3Qsu;0* zi>$nDN6+T*P5!zVA?&B1tRspwgEUbSLD#}uFKqhRkg25WZrus}r$+p<0go25JhF&1 zxo@M!tS(Is9q5FKj(uF!7v&)rmckHt@RCtqnVM#{UHjGvhW2Bp_ZCR@_xQb$`=3yD zRN=XcS>|{yeEPHbe}CYu4Mke-T}pbuBGB27%NSnE#xZ!k9XBF|h-F&H(O-U` z$=lHW#Z=)>p3K>o5!DMH4Ky0l7$PrHH1aqsH5fSUP)|(b-5^oxOG3QwXpMczc-fiv z_M`vFC#kLG6=nr21nxsh;UcBpHgK0k#m=j6GyW)FJ_Q(n9lKy{kk})Zg3Lg{06{%C zdbm%HXhsU-shW7MbTzb889kbkSAi97p%OufuY9DJT6irNBocS4AHT14buacDRfeQN$ zw=i(b4|I~4p1Iu6;3)ZnZLH2Ht>R5Gv}b(6o}>N$aP^)+O}*i}?pjIcNbfcDj-gjE zH0ct06+=gAkX{WvpE>)?-uwH?OeQmHWxe-v zJ=aajut8Yy)wfI5KM=7ML%CR4rP1GgoR{a?*HU>cDf>>~TeW|C2|qH}4E(i96FqoE za@dLaZ_ke;?#1+_3X%08dK)@v99Hx2CroxS>f;+8|EuTN z{pCo3rHFgl@JZD>4Nq4|be9ns+Je=zx108fKTGJ)c*;9JA@baW#8+A|u<Km zYz@2i*gbGW`}Xxv-0q&HYG%-XpDRW9C})2LVcezVZ5h7P%jjbX76$|GA~~6s42&AT zr;RIQa{Camv_-h(?1Bj*`B%gNg9WnzWD<*8w9&YMb`IY%aYW*2qyU5 z)NsbDp;rODo83v_BH6vU3=73Mmt~`I9q+#`;%ROrNsI7Qa|)S~LDUhvR%4>mp|MVd zvCg{Ul(*a?T{)FMQwg$gmbwJ1?}STs@%(h9F0?RnazpASQPQJPiWi*Z`e@3gJ6+v+ z9%S)J7x%xLfvUlpW`#aodiIq$fI8gqJkj-&lBIeBZ00`C;kIKH!Cu7HLTpbHtm6}| zpy0PMgYIlUvmvz%AI^!n3 zUj5}nQCqDtfvm{UVfPb24M`#`)5sburV|mxirIbv+6UAW?rlSSV zQ${GuG4qcB8xm1WL>?o{nRD4$Qo)`l@g^og+S>}n$aRODUtU@DG{xrI3LwWFtda#N z>){-ww{&a+4+`J4O=ZUk6~$et7=uKNP7wX%3OQ83`~`n0JTGc@@+)Yq%0I@Fm6E5OzSHf(`>L9m7iU?*04;O|ULd zW-WP3Va<*w>QzM=mD#sPFaw*Ix!wP92;%Q2`A$;MqCpL;2e+MRvtDt58IMk2(n2-3 ziqJq3!i5(pu=^Efr7(87nqT_~{0R}IasK1TP_AFHY#RU#1}N+^rj!TBj{#*o_`50Z zz}hK`0JYN6>&60XfKD?#(aR^&!3NYDJmRG^;}fsEU7VNFoX$g@m-GT^hy_^@pb;Eo zoE4#Jc~rcNUW?-k4qt~r}eP-&A(lkVsS^dC`L zq6_eKx&3gX;Mo9bBZ3-JAETKo!>4XnK<%W0qd+!CkHviI13ju=nzfq{!nlV17kI60 z8}&~x^ni=5o=@= z+*sc!!EOtmr*9UcNdDM*yFW>`@ef(J!*9ip#DmAOlB+tNtZ9f_{>@Z`|rJ$)1uEvRFSdyiXcU;K{ov@`ldV@qE-7Q@s3fMniMXYy_NR?1yS6F(gf1>>Do^+q zI_OP2(a8a1c^7nh0-;5dHMK3Kb5Oz30k-6s_NM{GheNg7Wu+mK7O+k$;&?Kr=+w$k z(znlP4=*E0AddqV5clt|hwMI0jBR7M?|(C)nJ<6`GkjpFaFpbx^3jBz20Wrbo1iq!b1pLEs)$M}~>DqpD9jVyEpsQQ@<^Zkj`PkkW&=jsdnZ`9Fl>`_6@&Cz4j#4|1e~WGz6(t=2GGS zdLm{@fXV|fX3{s-s|lA7hz3SO8HJk=oRdi+YS(XpYtd}a-n#5TeuydGKbUi<%#RDy zq1sqbMuD6_nHu@KR&A}RNPo={kOK|UxFU=pwc+`v-{PEozVicygc>_>~q!R1ud#B>7}@dS5)%o zE)eUMlH!@|%?&NbkJY#9#vRc`H;AZ)6&x^rXx3 zNi*GQLc&g~{O*t;FQv|gmHWn*z+Lqo#{?*)LK>6<2V?uw=tl9(=@7R)MNf*_2GL~~ zdtWLdiLEl5d3v8C=goDr0Dm6Pa2ixroBXme^x(Zxfj68v$J`XJ88ESbo@QL_bxjEg zQ$hnv|I(G-_)Qz!t;hkWHULH9we+HLOl_l*J_cOnfIHUcf!p1MH|{Ue z!G!TpZVb3D1sdUj{)a%rZGZv;*fay=vw)%@IP)Jgk#hg@pm3w-61UAPOx23l<#Fob zSIgGd3*#bnNaxaNa3>4oCL;9Q8}H;%YfR@y3mWxB)Jb{6<9Az?DLy|h_dm9rHlZS# zy0D)=ZGpVlr^@F~?bk7bmYg}~V~`4F4*NJ5t%u;FAsAVNpLp}PCc8#WeSz0;dFA?l z2Rws`*z5)$obQC>(@(&6r!(isB&^!*_Q;V>WyOt~a}F;;X&@j)hUvzHCGDhehvN#Y zR_UNs&2jeVq(GuMTteil&`FNatvB(d=Q-+vFtREdEcANDTKs5tAn(vc_i#JU&kyv1 zMclKoS97*jM=;zrOOBh=qc=8=^`z_Aj$1yK%FmD9RV%Cf;(cxYIE`j`ULvw)!y=d&I&q?%p0*OxUR2YLLGP`}vo zo4fUiqp}*`=`i4q#>cRUABh*e9lNshDO5M%g;7_qh3vy?FOu12D6Au7&>ui~Y({vs zpxtn^^P{!w!Y9{iG!8%ge5qldPL9!g4^ZQeoR&9WX71heut064t*(~;8b z^Sp|>ON0de{q7KyNjUkd*ObanjT5s=#v$E|ix&39ydBn|=R9%h{ zX`x!Rh8{luFJ5H5QAd!i&X|<2%8IE#qM8H}Du?z!jiLVzc~f;xCM)^&#&o4H!u~5yTIhjw=Nw97U{P9u_A2BNFBR@pAkx#`yo!^!_i#`2W`Q!r{5O zeDI>;lH!8ge3}1E(@SKG^NREMiYj>vN(%Aa`FXr0d_;-Q$cvYwP3`6FJx?B&O$_Cf z%?&z#NI5#jk*grn`q@7P_?d!MiwLwevF_B+_h zg{%WN61pdOmZ#WU_AIiJM_j!qd;aCUCp6ycCElMT(^*E$)&>15H0)_gb?exsKN|RO zxlXAE*Kc(PY;q01An9_xUhz@3SzFKKPJN+`hxo#P)_$dMgbH(}?SB(|G3231iNrl=-eH zU28RVrMX^Vp`T^SKei2LCnd+6q`egVR>gJJnPUEaa-E3GjbMqqjvjktUK^|MX8q*n zPYFdR(@mQnx_vC)e{C0h!1O-(_{S>SDpoS`RHPu(Tw~R0{A08wv9G~fjbfQH?n~2- zdBVTRo%IKAR~9Sf{$+%%%36(ur7JgU>a$usqDZN{!OWA$_prQvhcgYvPdxGKRKvC$ z>)b!%WD^x^X=Gh`_uix<%CN;(@f7gp z-YQ1Nu>HC$H~9oFcG3CfPL^N%GBMSSvfuq;&Uv>@X{(5qM`S+IZ!5ncr^Vz#lRB8v zRU~h2EabDJQr9_CVvM2(cbMaljz=QKjvZCotj@9PK{5rg4zKaow@>6cFWA>#`$zuB zhh(S@)?8l_DQ@3B|K*;y88aoS;>A4*D&;QKSGM*abhjWK)tA3T?Je{6U42k|s%70Z zE(RY^Hx-@;k+YztQ+h+Yuv&5tLRm%I>^K}4%DrP$9ixU67^~vd;KzwWDfmC4RUK@} zH5E3RRF9-4dHRkTu1i@5T%p1WEykcA42j_*<)zNa4tdsSub-sx8PPgmSW=s&vZ#Ml zLr+deAn?l3cTH%TL?7kQ@78&|_(#)fFL^oA{Aluz_zp-4Q=j`Wu6C0{O!m_Lv-vxw zYXiRq*H!h2=uiTZdXu2si7S z!!`bKeu3^^QcWkLbFobd8WC5|w#s`HQ&MSZ^kceTXY$kZ*D3wjWybl$`|xJlnj-4F!C_|D}*J?l3AlGggn8*j;B6WpPvU!Jodw}uVDxPfYjSsvvOO7QtoaU73h*9dVU#%CUgkI1+}(DtncQB-F#uXn zQ2ja{KT|3%XKXlMB=B8i^gokvRXxo`-EfR<$nEcsHWIPl1%;W69I@rVzY1A!`%T!e zK1oF!*J7fG?hlf=j7o1tK@Dsi*}(|~P4uHv|A$zr@C^ycbR7aI@H`;Ym;CE`igxa3 z{J;%Cz5Lw0&qsE$kAzUtRgRqcM4kDA&>2vAmhyMS2uSj`I}aQH{oGXFv95IJwO(;sMBq+xMXm*iILY36maoCKKkt@a2E8l;VWf$|ecY#wTAxpLN2PtblXe>>1h zbaJD6eutJu9bWwPP{`=n{#=#t18|{^Ei#qDyt!*?a#^!NhOUf zp|-$0Knq&3tbzF`T|rTaJ-P2r%le+CPx=~?Dh0P95Xf>vQW<0-4{4v>IlbGFKd);< z#^JTx*JOGo0B{W~gQ8fnPOi6Pf^<_atomJ#j{NLmsT|*6jEY!)+PGaPqG(R0Nf_}T z96v2hUkqOFhcppVGx{0fC}dM{j33~O(*EI+@YE$Tr{6kAQ>j<7ZE}C(3RE)#_u}3) z4Ze1Vx}eRpxS58oU;tw#dcy@vG2$WPre!@gz~j&0>Z6m%q*fOPbyTeG7`x+6g-np$ zmuFy|aB=Z_WqvVttg@}!=>ZFp?cke|W2>j%2$vsjdofNzmBJGev}U`{49}0^H?UGf zWB2Z`^*QRC#1*!&3!RzX?GUUSaJeV>-B?Ad@6M4$^?}}Wmmh@ZSYk;P2dt0vViciu zW$7cktNKtG{QBBJUeMFZqRz)Wv%nw61JAV|dBsJA_Am&yD_t-Eeln3XGZ@@cRaljb zFFh^zkaq{JsPhWbXPFxAJY8;eKI|^l0#%1gYKGJ_N70;Pjjkq9E>Bk_BQw{`dldvC ztu2il|FAZQPsOeAueR}!gpLd5SVl-El3hFYlK#+d=+&;2x% zpXh4g4c|6oKvR$&@l~l(`Sm#BOJ}giRi;{*Ibi-l-L{pUSE^OugVW z)dXOh2wzrQypwku2^JPQg&Sp*dU|#&=H@fW<<%di&bPXV#V^q?!N1+{4s5^rdtdW` zcWwjaLLB8D0Y+|PP`*%jP=iy6_i51|e7_e^*wuR?oP@io=yx;4K+<86rAO7Kw8UNY zR;DoJ0EI$iRnvaSvGs4MLIruO!D161<=t<)U#A#&bN zlvo_)62Nj{7eXD%vX_Wg?Xa(!ZbT~=^6ILT+o`hv`%2jsr<>*YDn?J0MmI>ehHWMnAzW#YG&R@<~hP?ik$8MW$~n`Xi(BUza#M zJd7HS_O(d8Ih$nk8JZ|y&ixZG2%(ihf*zrF!^W}c$TUGXcWWKOWk7+WPKo0(7G|Y# zm1p5Q7Q=}MbH9~ZG77p0`cTqeAyCYq20?gFF+TJng5;+|y)tC5GvU2v%JkU->Y@Y_ zMQPhF0Z1(7sSbd<^A)HLMVhkdVhRo+Wm01Yo zjfG5^OQ(-ogyza?2K&v<=CqD#CtNV);WWrUs}K__t_FVIS+FRxRC!>9@+u;O zsSfDHhyiU6OPEp(#Rw(IjZR$qZjYDHjUkcz`xG3rfXt;S3A(;`8((jnpellDn>o*M)P|kx2@9wz^ z0dy#mJDr?UXW}iaaY%Y7udp@@0k#ZM#N?asTHpDS99C0X**#eq!O!()(d}!J6=pM| z_}0}uHq`xpD|$~y0V&Ze&cPVUy5J2w3}>m#iq3wFgx>qANiReK$ECYmQ_n>Jc`HXH9N@A5zqiJ)_FNjWF2U(RijLcPi>xAl^P4*u2M} zkiiTT4YbUifLdg}Bsuwm;^YXrJoH-3lZA-$?eowgM6FIIURSG9QAT|M|4?3BXW!qOO>!2m%+ z79^arsk*Hemy!~l`#EM&#GI5)*WmEFf`x%1JTM7`%H7RjZw-uTY~xlk_0@BXTghnL zygT2W9OM@Nd>bF`MkUK4pVQ!HyO~P3fN8Y!sggks-lY#OUbQnzsPrV^sv)7!Ls!Wt zPt#X%VnW$@bWmEnVoDOgGG#Nsu0q<{OuL&?iHDXen$sYPn+(IdkD>o|^hy(JD$Ws@DcLb(M<>w4lmne z_is^>GfefW?`AniSztq+5J!9Dw3ZdNDvcSSJ%;j2R85!{Ts*{&qwCIlbqtE1u##vW zvIjA;dY#)we)1XgP#NSZD?e6sXjG$+23nJT0s`X0NisqKonqYgip(~l&Jx<;Q-QeZ zb{w09h`#$2Wu4$km*1QeRgLN00m;`9x**B(``T9$`_qOtRD;6Qkj7Hif`P6(%ym3y z@DtOGab@xbv$$`1r4zq`PVeLHE-9#=(l&pwIGZpv>Mj9AHIrhCR80yQ9@gpZO2jCx>E6=IXL z=hGGv+o0NUFl-h{H>%V8YFeJo>o@djAR~CZBCi9FD4CB0ZoJ}79C-mJm=1=Fny#l5 z9;PWbGFJY*d4t(RWSfx-5oT?oQ7k;fKf z;{_5uQ-f(Ehog@^%X+e>za{68-|+h*Vi?n-NWak)>O531({h={5MH7iYDDBpUtfrt zDM4T?_y{|Bfcb-JR|@WgFH`fys8c-)H+$6u9!gIc|E^n6wNK~1n;Zq5F3*<`9nO;P zsn;>py(v}zCmoc%tXnId!j04_Oo`-9nc3{pjOzfQseaD3uxE+@rJt=Mkok`&0vv!~ z%1qjW+8Lg&*ZIh-$Y)(eYp)2QBVg;o9aBu0fT5A|veM&=+&eG(x`XkHw;XT6!FNjL zerz`OEC37#D#nbk|3tKS`78UWYcBdLZUfIVln_P~$L@^~IwxfME%C2ny_FM#!aX9s z%rwLiFEAn^1uXggkH?1;m+WD+dbT>>K(EI7ju1h5n>di-D(ZR0O%ZWvsf6I%ifYrc zEizOZ_gvGL8+w{u*X|)=PPqZF;vUN*iA8C|I6a5hv1=rdCq~hw`MPC#3(}pg8yXxG zdnng|P!|5@-$ed;&GWqy_4_@_^y*2+k6NSu1sgzq1<9lT$0bJ0q-lW?x>xgM(~Ds} zZ&?urc9H-s-Bm=L@yL3ZE@Aw(y^^PriN@TF(%&cBBtF~-z~=T>jbcw9tJ$}VM0PcK zJU&KL;>OA(Cxt3^1rc`(QBTj3~UQRZ2CXJxKb+`qB+NYK3(me0TQrmdWl zc}YOqwt)(=b9sjn5AvFf7hI#F{_2T!+ozu53Fht+s#tY>v#K@sng0yN9||Zxd7&Ly zuK7$Au^yJsE~$NF{!|dP5xvQ^ld7}})5q}FKUoO5_cq~8tP`lkdZ&!^wp$U&(4S5P z8*oa~=<2h2Y-%3-$ru};wD#c{`*54f#>cZpvH7-=$f%iNfqAZtHzmuTw7dp{h{p|S0z%XR{OJrQrMwS~ugLi0 z+`>Pv38g)taz}GlH;mRvW%Z^Y0W7YHXZ(Yg6Uy6wCO?a-+N z7>IZLay@x@+u_m2F>y~_yCV%!JXoh_>LAT`hsNsZqrMP|>!j*Nocmvmp++1qE+aaH zAO%2F??1tNN|?h=CX4TV>&zVJhRyf;E!T*QF`N&cm=OOkF+DK}u0adt0mS7ZUcRKP z^x~A%ge<=W$bkN>pOTFI$XU`kB%EMB4p1OQMXe~`51F1j)oXNFYq31B>8$y#^P#A2Wz^P4kFT&_g4c2b)3PI+2#Jhwkh2ay6L*AM@O4H6NVi*p4P6B zy7)dacXP(7bLVzXt96OGS>xBiWx6;pL5Rzj(LwHoukP}lXZvTiR+RKF5}<7{g2eG2 zAVd>)_IbgWnl(dYk`c0w;n6J(zQ5|I_0P)8q-+ z7O}_u_4cKrLlTJ20Dz*E6Y%)&EnRS>-t~(*w3Gc+xKWt6lIrx+_+z?M z&m{^RfyAI=ein7cu{AeZu^r(v;SY>7+>_ zk0L;p8Si1D0MmgV_FI~#De=*@abW4S93*AStF2=e7QARn_$sGA+x5=9e$m~X2BWO{ zy;2;9e>svDYt-#A+F5Xpt^mozW5VJ)!}mh@US#!;2)U!xbl2Ss?N4_K%=mU1XI z9<1#1>Oen@ZS^#du+>1w!zqe1_(2{)uh75ZYhqX&*eQ4=3@~X|?c;WlUpEs%{@Z#~ z=SX-V4uG&H5VBhZMa{qDuSqqot-7rWDRIT3p;7kC&`{*F@6NlCtbrp{)~;FLY)7my zzU1O}$mpMH9qG&MasF5UN~J@TAfu2l3?3ArPrH>smGQBzSgx+~JKIKFo;q4Hf!uOi z^|}l|5*k8FN@`&L+#Uk{7Ni&mkxsLuuBtE;Rh=%l%|v{zLuilyI2r(uqKFIV$68@x zDdKq?a72a8=xOEg!-}oA!kuC@5&|xwptSnGHtQ6;U<=2%njoW_6~m{&H_1b(x9Cks zAw0oeIXk(t08zJ3<7OJHYK#{9>Q1$Kk2?K|E=ZGX@+B32l}?hdqlL%lf+o0^rJ$tG z%2Ycs-XkWRVDUshs3}RAZWamQdAhBjk;n#fBuHZ7%?93RJ>r#_Wj-22bNwKpV!dpW zV~Es(oimqv#ROH|TqgGkr3csrt7C@}H6JpSy|~LlsoyO-1GdrgsmG!iNJ@}oD2j1b zzT?WmxP|rj(#~Z<2bcfLR}A_hOw#-Es_J+^Z-5=pZkJ2*m&Dzso#=`-i;jB zz|R~Vl^Vz(j7+kMop>s_Wt^}E!2`h6x? ziQ-qBmlhJJQoai7uKhTjR`^mW) zzG11azjpp87pmY8SEkdn{`e!X?Os}d^AL>Hi;`E)v9$KqEeDIUIYIwu0$fFvE~q6` zfdq*pu@#o2#h}SpFj&YHC9WlCH>E2o2mKEgFD`M;I|ijgp$ZK}6JELf2@H$C@RM%<3R_?{3dcGEg5V5TA`~4b(}N zR^11NBoZ_`*yty{%q8C)?ppgqb_Vs~)82+aS-3QpO)Id42)intPZRP)f$whq{XcZdOzrJ(pOQJwJ#64C zm5gVznd^m-F10*iM}lJNL6z_4R(@@divIWJ{mN~_7|8sD+U7?!t;Nx8PPKXrnkBC?{jjz zATt!Z@b|+9X#7&!Yj6MFeLXsXZ|7tml^w|>hmQkdd;{NS2$w@=K<;d{CXS_^=tmo+ z6qz+Uld5O&1`j*)AH0Bacp1z*!a#pgZ=Pz=0UsRx9pGO5P0*axr2Ba7@&_ePANxcM z^Nf9H&y~6V>oJBz694*OLu0(Dn1%+#_u){viqAmWQnaW7UZgm>Za*d_j4lzL$hS-& zEwZ$lb-=X#4+XF3<@YryCTji5N9A91y(>{Ab}OH^>Z^J$XPl(?{Qn{QeBJLy@KL?( zL3Y)E6`S7BIA_yjm_8h)gMr;b!uG~vv@kGTIE;Tj@Nhi#E2}PNP81g^N3kRB zzunUN6^|)?$HK6oeEwO{c$A5@QR*7pJi;OXb?J4@!rJRrjLnIhsav8~$wS_y*unlQ zkeR_4aW3?e2_?GC--CxdfN#ev$H<(DMgc2NRKE5-PkG09UBd(v$>;kLti<+Jved5d z#JmX@2VMM(h>O~(l1NwhSRqlP=g5>C%{|Ao%1^;WKunOz_SJ{q({+4(46V>lDr<=C z4$n-tP9GXaO5^U@y)-wRgoj>n_S~EpQQ@ppgp_UkEv;+%U`C$gYvPDZ04DvpD zVIAc}1uUtE&Dch8XKI8G0}Aw4Hu=G?{M9S9nhC;#v;3rc75InAw@xg*fx_WGQBM0n zL!7JPZ{~u-1r*l?6glg8UC`QnJX0>!B1p{eg+CLt+hDRfXG6}$~bgnwa3^QiJpscIBs3z%mUX}al2?88z)z0IeGjIxMX zq1wEcM9TCa*)!DI?!i-X!#RuOG;&XW3ZIZK4qsnY z-`lIkhmfqxNmS?SlL^&W)H|&f#dE-fkkX+=RSRP~Prru5xpkHKeZaOA66Z3o^WZGH=B;OW`#B|(YJP&jb69)!dNKE=}b4aEiwIj=AC`1Rvfi%L%@Dr=bv+uy+t z_C4UUpmU(XUlxFb0LUL}b>ibULLO!w1ZGn@-KfWg=^ezM7oj>O^N5P6S;$=lU80Xo2!%0nA;(QfaKH_$#y0{; zJ7zjH)V8wR#*MJ2+3utPD0u0Ag!s85yr?AeH z_Fqlys3h<+Lc2T85cW%o3!XiGskyRYBKHTHJ8LJDj;EaVs_qRsPF0=P%L(B#2H!hb zfNIxwA(=KV2c#;nS>u^Oikq{Bc5r_q{F^LLWL} zMa<6Ga2YP5ctc|4G2r@%gR+D!MP)IuH!e)yd5_zSTv$=brwm>y;cAvE1- zebS$N4R#C=!*i^;$-1?PuDwoL5KgEJSF!;i222$AM_(qG9&5D`!d&5~>cz(DmDXqd z;|@?HaY4mOo$iry-i>eKPg>Yq-W?FZNRVRoG4EC+k;Xk&z1NlS$oLn7WBHT665&!g z#?Tz#8Uj?KgEv-J5X{rm6V1s zm$4>do(E+?RPrDg#vfAmt2Wp92q3X;^vIV4=AfcrfC;HnBChSiKuH86ZBAfP_-gsc ziM-1`4UgdLZd*-K&`k#_{YtynUKa+jCdy|y;V;88j7=1)PAoEDco+v^>|sRn&3(e@czzMp@?NMt%CIwp1Hww|3CFbmah(4>@P_pR`(3?g+Z2PusR?SL zSHKTYfR}E0CW$}fo*T2wO9kkUCp=g>E*|38;H5Dtugs(tetSjx2i?vt4mJ+C2F#jk zu!O4a55TnmG5}=3Ly-i%yJeD*K^|#v63a_i@STcKsS+`%n_6_RJQa`dJL)WC5$p1S zeQFb9`c1TGFv(NVL+$D6fwTsJUBm>s#X|`LQ^5_9!LMSqzncGTy!T=yvSxMY z>Ip!H_#eKta+Jq1&RtH}gqD8(ug(OQ_u4pn)pavKZ39X~xo4u-Y`^+$_Hk_Y)h&vY zlEHn-qtc~kZ`U}qk&oiKU@|_nf_b?9kjxKg15X!=RHEXWXi=a!ekW6w^fV{%kn1J| z4xqv>vSM0dtVdGqnn%8He!_}Icn;Q0euAvBcSi#($F|iN&y5ejP$=;1#>b}w4wB<7 z{TU(^U(PxUetbQa7%urQWEg2bsh*Sk_q>~De-k2J8mC!Nq{?I&CrMV6cR!a};cXZ_cAa9sgSGO15hNoG$RXz$W;s z*Yo*|77{-zFrw$h~GWn)W5>a|C+>KKgpS1w(Xz(@psu+!v5ZQ)zlcJJTi&9b64BxAlnd# zeXK@}g{sqOKa}{8p(FS_ci3qv3k$;Hb@Y8XN`~6oJ6PR(GwAXkhCuohELEO;i*%$P z9B!&eN~ifc*N#v9%Rq};_lijPS!sQWLP@CRB~oRj%<{#G?kL!QyGs=;RcOG5Ajn8O zVAXvfB~dWjZDHt7E{*s0PdI$l{Jn(g3JCYSO^XC){B{Mz)zqnPyNM}mK@2rqGgw(h zLCPPiYQcR^)Lh@GEvFJp!)tQtyG-S}nK$^#6kl6-pKz~t<3WO!un}}d@6^!5 zjfSt4aRkb9O20c-UH@r!Y4*zdRq{0w{Gy`EbBddfr_NPIH$W4DU4Ys*)8apK?KubQ z?4$&M1C?5eZ&eb>4Q$yT$ABc~n#!MS-q8NA-bme%0ruZ$*>fn|(BPJr@0KSd{JVht zKC<7wc`k)M*SWwPa&KNl-fWB5eL6!yv~vbHXw<&#zxZ_eoH>|x?nx1QioMRG;CpH3 z8$qP_B{T1Wsn zZ`~hCt}Qtc>x_f2tBb4L&jEK+e{3;eK#h$YH>1grC)ZeVl1qhwt&ppW@72q=2O2lP z>cC3xwXw||2%cRtAVmJ^g13kL7hf(9ar4IW)|x~g`U`##*!c+~evkGHHYlp4IR=z; zYpf({c5t9M=1TGZ2Z=5IPg$|W|0yfx<>iCt!g=5&@cgoJ-qJE2-mKcX`i91)=9boE zzWnl%sz+rdIbBtSr9^hPxQ!?)e(|zZsI$MI>PattBB#4+{Lzz9qO5p1Lt<@BD1U0B zr@OOvYqy|m^U2g?fzZnFkCXcKGYLr%Jbw4!X#CT_)V@ISx0Ru=pA6!Oo*jIYP6PfV zj-mecgTWJ&PCI8(i!ZX_Hl1GjvPmhP-RA~VpM3?UGQQ+|US;cQFwqeV^0(lNUzatw zPT}OX@@=8rL*rldwBSL*yKL3kj{=&3yXJR>Dw>eLUhA@EP}+@ z@Am==hZo%q&o#%)YHgN>KfFYVIA>_0qv6+eJ)W8rf*F*thl z#sFJ1PgaqQ&7;>14bj5>LNw*A1I>JBpF!rvQX@lAI{%t#FIz#y`~2HdC?GNo$I-H3 zQfnCT<&LAX(2`IUm^@Z zMstgVd(b|1(3;>7k!L~E#m-j7eqkTMLWCAUwKHD%R&(!FnE;kVm^jOJveC^6(~DQA8U z;@m_1>%G&v``e#Q4<qladr%$jGVF+6tI>e~7j zNL8p5EHD>lHfa;)8RFk6!8( z)wN@iXPC?=V{hlQ`-52p-iso_8UZ^c)%bM)PKr($faJLmYl zjQM&fpP_fjaU2YSz@GgLKzhg(fDXmoHNJFOhSg=w@U8Y(y6LDtKs*#i2mJS8CqC9p z6HNmXqKy}d_A$Cuw?m=@SMl|cUoUdj+J=zh5y16CKKqCD*-7qSeYn>-|LUJsq1^eI z@`C6*_rDYIixQ~NDvs1$_odz8qj6tR30>t zbOu0jL56DnS4|UidbtTJ+b%z4OQXfyhPw$c1{83e1qYC&U`e9!x?D8hub|Qd5Dq;~ zWMSya5v0J;mF5oCshr$Ojw=4#&Z4V5g4DcO@P#Bi27`aE`}+KO)@UN{;$hJ zR4F6PKN`pNGAr_*?!EO^rYcn%M3*XjLV&WXm>w5L_sgS&9FH%EHzt=WpM269A*(97 z!|`eWqKl6{fO4fEK~epwpgaa3E?NtGu|G&6Go^8J&jm@c4~uB)7W`O}y1VD1HCg&2 z@Y1jd`g{ZmBkwBsXxsqU+5(gV1k~G_3Xxd!D6wgx7=j<6w?CbYtb?QPTU2fY>nI=l z6%?kt%ob55V3YDr>OcMU0@(0zI0Ml{Y1?XZr~xeeGP_jvYCXe{eYr%4yHWlof2kQh zIg8Dg01VZ^sortS2S__3X0(~fE!j}Pq_X4^Z006|aqr~WeOhncF*b~_H;beUg4F)q zm3|^--s=Q!@+wavw!ol@Aq*W6y|0|YAiX@Qh9xkyk97Hs3+cLIr1VH}WOmv6MH&KF zQMV=`vI!+^v+4vzwLDTgSC~r@i(-F@KhkgQ2^ZGSP5Ytgt*vTar!n%V%?cpPx-b8l ze&JF2H7s=wKGXaEq3SH7qI%zOz4y$}HFU$!jesBxLw9#cr+^^cLpKba!qBZWNa)b1 zf^_L1h#&?wDE>I}UuT^UXFjs#!ml!kR*tgLBnc<22#)pZ;dA6&1VkLj#rMA+lWzsI!fpeGM}x&91VL4snGhOuL6p+Q;Xd0npA1WXj2i1FF(u?tV{=#? zBJ49>my)%WK7TjtY(R^R7R|I$JXndM9zGH3q2?4PR4U_DQmtQ~R2FlHWNHbT8sYUY}b8P^oI} zBV=-NSEIQi+#d)Nw!|dKHslZp`#ex&otEcJ%rqoaWR0>S?-^drD1S47QgL~L*=1V36MYn%=pms{*edT5w=4Qex1{Kzw})Dj)e(# z9(n!6PsGuIg>SjD&19>J8^}WezphVaw#Kbt!KvSz)FNKCmQ5VqE4!%i>+WHoTXZ_$ zT6vr)K!&;=zntxYwqJ~6t-u}n*?$H->>=jGIg6wkZAnfPydC6&_tf4GfAbqYJWY>d zV?zO@1hJhz?~hx894q%u@S8eB?1Go8EK0Ev1B;R7CQVB~m2znXVwOE>MIo`1bm?ZoO(@5A>LR)98IqBU#ZQT%e&Pn`IQyQIzaz!cgGn zA7T+U21wAFyD>$b$Nu$gv-iK)%;CE7&0*VGJ_ai)8x0^KpgTP0u16o_(n_2g>WxiH ziT};z(1=ZlBtI{YYcllTsgNW+CV`E**xZ7e5OEpVON@=gUYE1PW|o^D)tZ z^O6bgqia${u~z)4R`E2RBF4Nav}&OrZwsrKf))hviPHdb#e#!7CiADc`=IG-&DhQi z;y_EIvian>ZjBXgN3uJ&RR?dq_DNX^G1Zg1NqR9v$BwrDFU)x5Ck%!{>FV$!F92r` z8v+zw1Reukq^|l94+)0;O;_Dc4=!UcDAbM0ExhZO;=)A(<$^;=B2_Vj>0B64>!%SA z6zSUpOsuPD{)TF4xe^C~e?r}_=@Qd@h{dPw-$JcWP)-bp zZ}FkWfYLZsjXzpIMI1!WR`ETG4uONxu7nQ$b|l0B6F+o$d!aB1lnETH zLqQ2#P=AK=laSE~1VtzOH)Zh;82hI+n0%<+GUzX6lb=jN=}~}VMmm8h_?9l^-aMHE z2GrQJCWeC&7lnORlniM1W;w77fKXkO>HL7n1i>f@h)=DqR)U^zGzV=#tQ!7=if4ge)2-kC=43k|fmKLkKPDS%SENQT-vW)0w4) znS|^ylM;T>o?-aIIsgI(#gTWD8em_=g!35u~p`Fy|fi zDx#XCy}^h#eWxY+S7zpUgA5beU0oj_#QNN|#L!AKA8i!62&M2Za`xFIgJ|g2w-635 zo0VaQK#DUUC9i#snb{NWHdP>Og}j-Q)UhSe+_0~WBFVAT6yIpI)FZAJ zwk9o3yUkoNG1YR$P%Jwo!KTfG^1+XH0XCG#+X_bU9qkuV2_?y15@DJOOX8p~9)R-D zJ}(g$>0XzvmiU#8kTdaK^rjPb=t0@iY2!y!=(tUuPMs$IZJEiz8v(pGC*Y3}6gN;j z4E0SjmcmpOmPLHds*cR|EVrw-xANWh={C*k9>PJW(RuQJZCTdKZCD55EPD2m=(lz} z!?ge=z+=&rKqK7!4k9thRE|g!-R+0Y1og;0Qes%Lo-$;!BYGLG0Je*An?LRh5k|_k z)fXoziQ5K=jes=9Lfo{5?B^hNJEC&45=Ar+#iIJOP5zg+4A~|P{&mtj%o0Hlp849( zTeO}e>ZXtym9KQ`@HM|BhR|Y-bbhr>ux48+j5-Tt$?{Yx(2WkQCi;KJM-iZ`K^;RM zAXYetLw1%2Ls!$e{K-bw^+Lq14FP?H6VwINx}@;gyshzdw^6=;b@ZXFHIWk`S9;Ff* zP_J~5oI^~VJyRu~o?n=;Ej0^!fF|jMrtEb7o9TJ3oALfCBTG*s&sW3a!z_y=EfN93 z`~s3l*jvpBPHh9U(X;!>p+Y&)l>4=5=Y{M7*+qJBwmR;{-o?O%KQsuGa$stswYhtH z0VMO3MgxA<`V0D6eW>`{MVNDhHjzQn)W}S%UV^`6_Qh{#SmxZNU}~ZzVAZ+E5Y|Q3 zpfa_jpV#4aYXETWm=p{HGgx%VmD=H=H@2j_qar8tnsa>{?HLsSR8ucz`DC2e+XD;& z7*IW7gxsw<6GSKX!0ih0Q)Aul!7jgG>GA|$MnwckyEQ?aN;vGV zM_>-cv=y_AJY4O4{#Un&8v0t`o_zL$3P*!vS=T))DkMs~J*&CPUWE9#R%K}c(LKQ3 zl&5*8gDO%J8ssC=9*F9ToY#T>q_zss0u0b7&r60s-y;=Fsm|2fKFLXR;BQImnhgg3DZx=Dc0~-3!UPQ8GZ}dc(xJ012yz>C z#K)ELO8(5L{${(n8tKQtc0b-Y{?qir?+oXNVR(^+A`Yn5ZQZnq^uPY`4onU&=mfqCnD%!QvwFW)|=wUImUiN zdpFHfXjo=fX^R+MIm%VM+i!i!8)Wb0NS2#zCo)KXIuw&WHb@8l*f7C| zdCmfEBUeDTaTv?R0Cvh(>(cnX?h+26=0vJ%E|Ev7Y|~~H@N%5u){gcQ$UJeIj($tm zD&6zrH0L)ss5$eEbCW2m!bebG;8|g&v?^EEH&*m_W|GW@mPA3|T5r5LV7L<9y zo@%tazhpajUB(u?&Pu{^&jt#B&JMYr+bbR;!8dp%#a%M;C7%(P>0O7mvNVwBh59s6 zTnxB0dX`;Oq?eWuB*g>^F$U49ipbt8B-`_n5DDWAB zq;+{Wv7B5+9IS4p*fAWlPj%{TbWCf%d$zySE%)N}^`j$2{q%HzR(O4SvQ68ncMo^8 zA*NNJFwN~g_Svbqmj;4g;GAaw_4-aVp~HtCtNJsVR1Nth5U!E?c^R9tQA?=SOXp(B z!78@oeTADjp?CH2A>Bj)2H!4cNU?g|0pp3)Q~t5qIh~)LzZ#bJvQaRo$DQK$Po9mI z_sZGU_G*T8r*=&gpUt~VT*l9`M01-=FNV#={U0v|JbL2yZDZDZx^-*4r~EA4B)(^mPy2WDtz0zDe((X%6b zCgh){7Ue(u&3%gsJ7unWZXy79{>qAr4wZ1(G8l;yFVL+ z2npZ3elK~_5%Tq*_4}{=rI(6U)EHM0%JaANJDQx>--QRaH+}B%mX9d+Nm8S3$(Tcf zpvYVAL%(F%vt_z*zvzxo_EWZ@KxEvN#_t&4NDjvR_fW!(%p)^}Ne-w=@&K4{5@n~n zN-L-=f)MSgly03|#qB<{)L|8C(;B}sm+#EOn$^hP9io)q)mK4^*1Sd-SO*xSs>oDe zU=$Ko5?jc~rN193waNp%Z^!-U{s5%|hzVg3VrqQ^f-@tFiwlv*iO$X_F3#f2$}Gyu z&&;jBl$6$$KWs+OLO>7z+ld)DS~99D@~Zo?RLCF@6B8(?E>cvAtlWWMD#)!1X+rSsdR z#(d7-T3VAs5C$cLTa#yRZtIc%(XA6skV3MUtK4UJbI8xlZDh$l3W5w3eO^JYwsu3RDW#sG_CXU*t)6LZD@?9m|2YG ztyd}2k>ZKm$CWa>CF@70lJ%P1^lt|C3_pdWy8N?NHp4dD_H8RDN}c-p+xZ6W_Wi9; z{H#OxQ@`Q4mBXmZ~0m|wqpss0~^;W0qsXi6YtEdGHfs$2eM2v<|Gk%H*hNa_Y5R52M? zO7%dB-Id&rD+j9`IPwcZw#Xo%(5F^@3;WI2D_FCC_$xs5fmkD!K=eemM(pb}x%bNl zS#ksT$~$I9qA!D6*}_m4I79Rz$zMBiM%0Hx3X$V#H6rnhP3^)#*rHU{Yn!FbC2E{ofZt zX8)DMhrutN*ya^GeE@s4+td2r4SknZ-Ze?>bgyTLiGTQVnn;$1SYNK9_*xA`hRqAh zQpa~{9YToKz363KCZ06|PZ_IWg0>>d_NO7wh%Ro9eW=~5Qp|bENF61deEQZiiv=F$ zbES*6hb$Ma*MqCz2_r!_wy2(-cRBVQv#KpJrUu@#XLy)#NVaX#{;T$bi6Nw#Iv4JUP#>m6 zQLsJGM0p}y9Nuz%t9d797=!`2*<2nM&MJ=xVxf=K>A-?#L{oF2zbMMR@J@(s;k6i~3O#U~p>RyczcF zqh+C$$&RfrVX@@B6$B(esSqF)6tkBqaJnIAgY-fK%1Mk5AqoBzvepAimp??UM9D!o zH&(V$rqc^?+yt#omFRme>9~z`K;-|P{B8y_<@iHqG5s1zI>n$ zbC?yPx1hBenVA97_ir1h|C@TC&4VQ@m(_(ae2XrPej)nFX2nNT&G#8#1@a=5L$g-H z@{7{RBmm*TGfXI)z?SH9l5!8~Je}zY9RVqD%Z#wN>{Ey{k~HE~3Qe!4s2yV2UR}?g zYZ_|M3gZ5gL=ogX_IwXRYdO5ax?~iRAX5eRC)aC>H)XttxbG5~Hg{S{y>g{_Kg5!PtM9E%Plje%J&U`g%frD=2Sf#xJer z@<4QGDqr)Dlt1MWi4$Q^;(XT&zR8bkA9UR@u9QpEY~3ht-yu>$f0Pyzcjmp}<`Skc zX^bqk!Y4m6BT0C^I=4q?S)GCM82}A=h7q-lA%T<4Lu~GT$`SfxC(G}3X1y>0qY_4H zQGsb7%jE=Pw$N17TRvL0R!4x1VC#(IYdJCft47NtRma!>RD#8G=jwJvP!pNPqQBr> zd`{y}xfHEEP?i*lO#HlU>`RWtI^nVxr2QD`G9rC{c(|kt6NY7e{3-V5^}Y4jAfWOn z_iit@zZMAluCVvh+4#oBe91RhJkjS#3XQOfh7dCfvVmLU&#dS3_d$YyPYZ>lUDVWnZOB_0#2X~!Cbb1S5ByYv zIxk)aG2Nm3pmOeM-p>(eZ(!Bv=>J~u*Kj`meb2F!IaYw7OlM(t#ZPvhHS>M*NtOwA z!c6wib+b#JnKZkdqS*X|CvCppezQF!4OZKSENVFB4(eg^;n+IeNQQW9r3JnLpV?H=Riz zN|Nr~OG#0KGR)r0t6d#|A}W+M4-9BqPzXX+7pzXO4WAT|)hmYYpX_CZ`3@?RhzN8W zdtIUx@AB*A{9868mz?7H>{eDUx}Sckc}W(@g(I5K=Jyb<%n`m2Ng;2$d_uK+L=kg+ zur!2osI{81}x7sDnH+_j*`6?;>AD@3PjS8VbFnpZ-$^Z{wn# zcBNCYNC1|f$Wbflujf?GcQnZaYHhaOC6b^5P-TkxpV&+fXqsZ#m+6kr|LF}-U811d z&3(O~B0z9s3$$=~J(5uh0%35MjQH<0Ge_dS9VdL_>z{iIRWUF!Bw~_>?hrc7j2V65 z_sp@`v+xb9h|&d>H5f8B2$2OK*Bmd;EJPHQ@B`UaBALUP>L-UUu7wb<{Q_6-S5wDb z*28Eqz{QjSUJ=Q7LHkQx+eRQ>&@Ie@C`5JuOvINLTZiC&$|55`)eG-hYPttU5Ii&X zLrd$C3}4k;6kJOd0*OAC2^*TlM&Oex+A(!oJeRD3ssT#TmI(pCaIHT1HV`c|Tx!+^)#fg6ws zn~LX~NG<@XATUT%z*s%ZXO34n+(frT3C|2&zm;f9S2TGS8Yu08S1sa^6TJ0M0$=Bh zN4Wq422+q0K|tXG5Oyo?a;wW?@41~O!9CfYY6xIU?=$d;5FSEQaS*((mK_5V)i7ih zh!g5{|6T9(XO`{ZB-IEba0d>@*sSy)G>$dhq;*=}j3;4QDybxmoTVGqSEOj(t23tkKP+2TBG^L<$$lD{ zsp%cUf4}^D_?~Xsatmk1rg~GOT8pMoVW^cEot~2`mlHnct9b*GNrX@{kk<|8ilAWH za9GC*BttH^ju-uv=dSAzTnYjFmCYiILMLo%Zmde?gHrF-g}t~6wB?F6do)M|BGU;V zYh*X?c9RzSC2S~vIyhceD4#NZRNnB1Za9w;4{$(^v5&PcpJb zg&`;9rQTi=|7-yw8xy~*E7#lBKt>>1L9C9MFsn%jsDN>ctogS^MlJ!0uSAc@qXf6| zJQuv!`pcu5Ww^`5<4z!YOsa<4CFIfdf`2L~cN27I;q(AZQi6d%D#cRPpDshvF4=yn zfz5<2d7T08+c6}=k(Tk?CtD@GgN6x>G#c(=L>6NQ+yP1qD2X7Wc<dn zW`>G}=1~chC86W8=>WrSjM2zVGvrU>Kkv%6L;#LbkV>JUnB`$s<9yzz{%^wSTo;AG z;j7AFz}*BBK7bSsN+K<_hFl%h5x8{io(Z1gmLmB@di*folhi?h zNtn~JJiD@8Vy9J9{{ajG(86US%{h9dBh$f{mhFHmm(t^6y+2PtO2DgH?{0T$JO0zD zpSCC%o(zRX4C1?_v=M)Jax%m7eu};D67Mwysk~-VsgV}Z`lB*ikNS7^kKXI2T`{UEasdRU0NxJre!zjG zBKvtyHrrPAt&khGH;kmNlU*3ty)3%_RWMPl)N&GFK!;vvN9W>c3h_Na4tc9;#&7Uv zi^EZ18f{l4ezdp(jMe+@YXC$my~u7A;ceLtTm@f8tH3?9=4c_gD_{@=>Z9Df=8DwL zIy9m>taM7}uu}9m;GV_(aY!3AmcJMWr3UmNI}jkIU$?5?qqW3Vk8#V#nFIjw)uAR{(>G`&zn5oARx{Op15G)MVocLrwnF8vYwLI)6;rcZopI`%MZ z(79I_rJsf4rbQRjdh+T_<=}zbmO@S?Q|I`;!ThDh0@kAW=9t40fV>;J|DHl+SDxzp z#(y-GSl^U@3IAIMdY6yUln@KhW5MD-ciGWE)i0Pk!>GT)X!;ZB+=vX0RN#`&__tov zH_|*D+DfS#YH%S`uG5J{0#pclhh!FKw|2KtC9DqzUUA!<`XD1AQLFKR89;#n*N@_A0GPs8Kk&kWy}F*$uqrkJD$oss zru&cglAeD6ZevE-a1bQCA1NHuM$g(d1-_2~8E^o;YSCa@r5#A6hu;hgYWHwnKq(lRciVHlZ4dQv@|1}sQp?K=}E;&@wZpI2X!w%2R zRDv=|fbbQ71ODU( zyla|3Qum`5w)~z+02vl|v7Jhc&3qVHm|$1(YetL)1tR@Alv9XVu%_*GvF(mEov}6N z1=3I#$|ectFZI$N7002o%5h_b>e}rx-tD75{2+M98wqC zyHf#r-27(HQz{fdJvk>KQ{ws2!056omVA)c5+Ge!RtjPq8#aOVLLYUo9Ph3=U#-S9 zuHfC*Sq2nVD{PMCCx#chO>eb1pqL&Z%AT1&|M1p_b1nN-JLs()(c zZk&3tN5g^0Wax$w2LVanR!oKp=9z94jdBnG^E47rR#Sq3@=}p&Z;Z>Jpgh1vv3_l{ z87Arqy?9!bLM-K$btRWBFp5a`;_o~YB)%TUnJsHxEG*F zNS6a?^WQoVjVcyc=62?%-S-u`-TId8zdR&apsKDk2slr-;LCWYVoB`0$_11^agAQT zNPp+lNDJL z3yh`J7YrO1uIb-}+%hobYOrQV_*+Nj)$-#u`(x^u>xO32=%{xDK^bTG}iP> zrOQ`R$n+LFY1~PV!5L@gE1Cv=+R-c}(zhj7fmAW!RCBl72uFP$ec&{_yJiVGt>fYe z-=hpF!b7r~2^GeYay69>$BgHc39RsO2L_}`Xp4f(x7&=lpTZeq*Ky$eu@|5zpnZPy zvgY|%`jSZpd5CQ748xJNO@w%n?>U%rMuKgq}*xYIr$x7fkYjpS$|Re)E8CR|y3v40#5D)F4x-!&vi=1P2) zlalbK)%ka_y0!b(d;ed-6NAPGVXJ6F6U!Z!KPS_>-A9j!RfE9PUDFPi8;*xJS8oy~P=F8{#PvbTRlhn~%rUl;<=3~8zfZ)yD>Ksg;T{0a&h<^Myt%6FOauU~D;R#7VDx|4-?zXq01(}v zjQ&6NR|H*v7UD*5adMVcA`lf^4@>jv{~!CCR@n7OxTK=89K%)C*IUNbF*g468Mf`w z)T82>p@Hhfg^DM&oD-|B*4DG9x28n7Ut+5F%W9Su-wg0=ygxl_*#0HW=8rRI`acLhrD&)3U(6Lc# zJL!tQou2Z+W=YNK@HP-6e;jn9mq@TQsoC46#o9X_QF=Po zQ1_NpTRP$qDNQZzQ;9$!mr9=5N`^yLV{#)7UD+Zw(&3~cSiGJ_&rzem4H8}h(lrK6C!TI z>nK8=2ugyCDtDM)f4zj*V5wPP|7u2NZi5=rVf0SjyM>#)<{!Eo=|8Fk8w$+0Wts}3 zbG3_{MB`<=3U zo6~YvwktU+eEb3rl=_-6XP@S_V=s>g&f=BiT_X$=$+G@sJGJ5UM)HmXNC#d|o;3epaO=^-mS)Zieck&pApZwO1Xcj5p|oCUmqq z_!<|TV%cL~lb4HXmL)D1k%l)bTFE-_4~mpxg0DH+x7td+ruW(M-!>5%Znqh)d(g)E zh_0{d<)BA6>)ULJDXZ00p({=15?TW*$vHrqL^5@!bWy77J9cJ3KYe`t(?d8%)$IyB z!sw%e5yJ>xQ>XEV=A?Y{xj_cKy*b@FUw?Iq#N?%A6sI#pWUg%{4beItW`8CMtPfR8 zGhCoo5Me&6-)xi^Ws;-31q;v7vH9x8KN4i(MlYFpl>yzJ%efryd8O7(S! z4bc#KItd!Vppw^>I)gumJDp38Uc6R+*AbBE6*%z6y5icEin<(0AdIcXx#=WDkdRAj zW)VGp^iFQk^h>Nn1>3QHdB;tFIy(nbE`x>qj>%ShmCvY4M&#zdK;Q^QKvTy0>$)#?FFiV^8!Nrx*n7cp)=4@49$ikoSJEFrqr3=|fVAU*LwH)jH3=~WdpNdL2QlqQJIZl0L>-%u3cXIqG zyKmCrW?pxBXUDv<8mBM)ACH>hwmOVQB9X)xJx}l0!)+C+C1QnJ)()Ji3LoR^|8~06 z+#}{N(>C+NM_!v8avC~#n@?E*PI2etLwX(8p}dYMB&-I=TQKw>HAl~TwD-YyR;Wb( z*)4oJ6;tW?y1@($?>08-a*6PpC6-@Jq;PbBFbxA#jyMR}qj!e9KeUPH;5m-3@)ID+ z@9qfqti$JDM%|>qYdLIG{le!fg>I_X&BiZDICYUA-joeM@T`^`3ZjH#-F{UMLV+o0 z3$#^~*>l!5D;Q(vWETs!U+n$)JyG1kjzJZLAD1BkP*)W1e%=J6u@LccTl24kMHEa3 z;3<>W%TVvuHG*kIOZ-%^P!`1aRJ@6{N22(wm~{1RQVlm>wk<; zGK4kZ_&jCx=I^z3c4OWAP?FVUyLy(Ndi5m54zp?5jyZ7{C>bUIfFT?{N#P*%mgl3T zE4Ft9Llc^e4m<>ywpU~XBQEzlRMyDEzZM!Xu=ya}2bQ*{7x82-CeaC6QOTs~GMee6 zCAl_hGyr*3tFc7G?gG4Wu#CMY=(vK;uTR!l>_V}@L#L0lN~WkRjT~E^qA=*3B$Iu(DZtb4_TH~| z4ZVw}{l_U{$RFbu;tsn@U0!neoWt07wH%jS8ka#ibmunS7(kj6*5l5O6-r_;Wuz_6 zm~}_k8E@)I)~_ahDfr%|d|+o_h<*MqAhduCmppbyoX|k7SLnK^``Orhlnn#TTfl&} zNaf|o_iz4>zujz}BXnjtkZ5dWzS5^@ZU8DTa&()f(7DHNi=@eg+i#>|%bPVi{8e0_ z)lHF+BlF(=j$=2G`A6r^lOu!w8Fdo6UAS~yAi%zVw}y3Gn_n-`i=h5%uxdzKH#;xv zkG8Igqk8&2<^l!k-2K?lHhw@HDp|*P5%hG3HH992Z5E$hN2WR|7ksPYew}g~$Mb7x zxh5mty>B3dCFZ^z5!-^w@Q$^+i|@{78$bu1N;9c@z|;_txtweD=#s{=MyBl0==ayy ziukt|cLG|uynf7&{slPRWHF0p01fzd9bLJ}Lxs=T;}`d1F1l}Nu3dQjJNTdXOG3)!eF5VJ{TZ2 zWb9dXi5R5V|GA?dqVw{uKM-hIuyFLxW_G4$z4qrgQ*^rdQR$yA?%Qq}gNAcYU&ir! zcgBRrp@_1h^Et>qZASE0qXK;fs#mCPYlrcKj4MtHBIaBxFm3^RH$glf5EI6Gp zMoas~ffNf(9po%6NzUPe6~NTf=;5{7&KG~FXxOnkzsZ!YlVZrpju!!y7!F?7Hxq|UuwD|EjH#gHg z#?1)E}! zU9UhKkH9?&Y;>3|9lHyl9pMqsl97f>6x~R>ljgb<7Cw(kS9JGZvCy3Lb}iJnAydVt zk?~pvQvl{-O?Qzh!w~yXU4)4!OUugxuaB4<;*VN&MV8yD3zDocB_7gRCD{Z|rf28K zdcjXoaBp6AQ_%ERNTM#(tT^-YPyEOWoIMT6+HfWfisPWs7Ds|COrAM2;aw8BfMzhf z*+_WUAd(k-&o(e-)&T(r4`zJuh2g9KOw7*k4H8Oy|ypki{ zNERR5Wd1h8T;!8lk`XT@XH#Qgvq%V$4$5j7aw128+9f4q$51+KNW!qw-x+`nuJVVM zj1`y3>E*F{S!@JArKGh5HCb%a%>BQ4-hbeQ89K2g^nHBlN^8AU_^Jif_(Uf z0GL87ln8-Qn-=ouI^bcfTIOt`BdZACNU@;GKv`mFc+9Y+!gJ3|3zFEoQJIfyZCJYj zzB8XWK>!XfvpI_|#ejc)W>zr+Btf9rahd%IiL`0toNe)PR2n~nefv92uqaL5OSn}l z!#IPCBvSI(6bKIr?XxPSL*5r4ad{G^?n2DNWE%ZL&S7iQ<3)rd6B6*St?YeQ{QODT zbyRLtEAMVbj8}Tpk(^VPjnn&03PnWiWQ7MZ$jJb>iNRlaOmMrnW~qw)Y(i{lVB7y@ ze+6sN<>>Hx5%+%zMdi$UR-R@>NB9-aCqYS?KA(}OV1d`#4n(M83;U1&67jz!Q1&hfPm~8G`f+9d<3Br(rCc+rvphI1 zJhV4$bpiBCuad-BrKUl>U6zO!h%Vb1KWR)e0o)kP4DcR!5^@~|0~T_lXwr*HBWU=m8XFv< z>7a^14U@hJPVF~NG^Pz}ji?Rj^gQ82D)T-^rVM=yxqNqUZWC09ME1}C-pnr5w2HkT7UzFcpu6P2O92AU< zup-3kfui1piu&3V|0e^aZS=OJ+XgXbLS~TOS5eXLt@7HEr4e*2$jUx~ddenbjDC8) z{YabdO+@7>gb58e*gC-Q#eI0eGzz4{W7XH`89xEZ6*N!uINhFn&V2r)JV3Y7x`+k+ z7=j@1cC@L)<5zuSBOcS~dQ+a7rY*5#tyGK=_o)yrdetOZ(I7Q;^3@hFuqnj-cV;R= z@69FGr=JumL72JAf=0h&^cieo6k-sP{UM@xGeonv+$4=QLFOAs>>uqm01J`jh1=cl zr3b}b!Yevk)OFGq=qbl%LbL@k+KwPps80Kw`SPK7{&1tuvPBf9k14Imo}YR_P{0Nm zP0w2h15k|*6DSF5OK2{|Z?yEc!Q3i}3U|CIMB-YWBssO%{8v1%T@iFg)Q`~Yrgb+J zZ`WNGnZnPzU3-56Z|&@9wmfzn(amI;2mq$nQ6z`yV^_bs`*Ts4w_L&-B^u^zc4}u4 zSqojH9+ZCo#R0*3A^J=ZaRf+){-5eX5&h(u4y`a>YTeF*p4fQxCk5n2!gBsOzeq{C zu2v-sXL}Z+20PLQu;8yfpSL+mnIEC-z_ik-K>SjD;qvt2O8IqD!#8gdUcKVSj`3D{ zSv;|_b=6Iw8_yrEfMOjLd7jGFixH#?Ej|^QrtA_Qdxz}1! z(O92$y!M4`&E`_CIhrJNFp(CO>uTs1*_ofvQ$J}ndtqIrw-;9v>&U4F4VRB8K!fL< zuk0y$`_Eq)vGuP;gR5J%V|$OPwu784_Y5Dl-H_tF%f;M-0EA(n7GB#N@k#`Zf212E z+BQe0md&k-&eBa5aUjb@!W!#nVwcsmzR#?3@E-e1aCGEA7QE7b_JDj3jRu)77Ai&* z_I%bN_+GLFJU{yuJ?{tJK-FYg6b{DCsYEdp!>kQLjZ;rvOq7!R)Nznq=~){Golggq z3Cq(f;F+14KyvLh4W&{LkgkJ2-I*64b!;3h<-A^)^qZ2R+se`sYoNdj!%K_Hu*toW zGFF#2ZB`}m3Qu<9(j{7hhz=pBkIqCFOZ8i?Ooq13KJ5Uk&{qs@Fch>lmPhNW$17Pt z%k<5<(Ts@`KkD}jFaRCgjO+C)L9ST$dg3)csZ-;3Y}AeQ;$u4&PVB+(+HG43#9@Ay ziNGVLDBm}~$8&CW+jg zZ>!(1(5_`?9TFR>NQR$F#rAB+w{XJ-+A?SSy#}IWs@?yyIFWb%udxolvPoy3JwJN- zZ33!@a^R5AUfOzAZ^U3T6}I>>41H`bNO_YrC7%&PugQj)>JMx2sOhjgOOon*+P*`9 z2NrB%%kWAYyf~+}I!QUVnY#LOy}?9`F*?+yRnZ^75o|5tAU{f@!Hayg*NJ_)Pt>H6 zxlmXrVw^J#V8C5GyS-$fG&SUJe{a~Rmfp3}1tWubM~~^-3NTUyJlTbz6II}?pylt- zMQ!!ng4m-#{ziPJXnJ8Lr>_G&{`9H6-u+8mxrRsIL;^W+R@tSP(|Elv^I#W8(2d}p zzx0TK*yO7P5{=oqOM`ren$3|eEzD@9;%EfA`hC*RngB}DMw=Xlk^A@AX*5TBY~H;4 z@WKW8oZQqfjx{QB?7ZkIPe(iOW~tw9;&S9G5S(dSr!nul{ux)nYPzRT_67ew zUU;v`_pAF1kS-=a*f*BNqwKWld)RuS!>a(lW*+!(G`h56WAUdN2PNxHjd~Jl^>>g+ z%QvxJqQpE>DZjHz5!Ch*Q4jrNX;bljk(@2>hm=f5lkoLM37kjhfp+r|dAvSL95-@h z5z#zzJ-GZn_h6V!_~+2~td3+>+*3lTDJ;`O#F9Iw7&czSBavppAv~_8Owh(+k~7so?q~wU89S-F~N)k4D+^LG?0TKh?+GQ%GN>Kzc6C z?7O*Um6EA=#0z;}73T1MIMKV-GBXiwlAz4j%Zhw2J-`!J#oe9PdpP1X9XPZ<1R)=VH7!GTa;VCV4 z8k;dtjQq!f7P}F{KuhNXvNn1TQ%jvYo{B`R-rFWCc;3|GQZ-MQnxHYbkdd5>(O#G5 z^DyDJy0<^%3=0O;p4ASdl6t`p)`*hPf+`vYrDvm2%mz*+?In_ynqQjULMZzV(olrr zp%E_)aZCgxc)rTZ{{I^&&eNHKKTcKOQ zGMoK~ruf0KU&Fo_(K8 z>D~~rvnkYdJQyq$b+-%F{lIOW5h^H}*mI68m)?yK6V6W?btr7PlUA=!{{)$+@(=DZ z5&q|&8#~SLB4ZLA#lQ2At)3C%go}kumw>*Rzbb++J|s z==H3u;fsPOInDO~awESu;b(2SE9QKGU&p-1S;NvT_Kfj1J1Pi9r^4S?zLf8-)63K7whDs=f=2CuFCK__K zPI|RiD=djY9u$WU0dNfDvt-#Y`oX}Eq-pr@U-N7jqco!<7F5)?2N2lgr>-}F2~#UC z71g^zm`^wH<=$FqQfb|HP}glWXaXAE|0u*C3M#MI&$DRsdswC@ys0Z8YZ1_V8;gYA zB3tC+#;I1BYMc9vVDqlOiYeRmkf>sup8V0gWBbnsN-4Le>KB{|YNDXCtc;auJnWJW z#eM!%=4;%gMaG@_@hSrK47WUoHFdLrBxZHeDjbTkyIDJdl;#krJ*F9o_1`%s6JtQa zDIRu)^5kH8V{JtZSU$Qpy`6v=mJbopHLHd6W*Oq-NGX+EY+9bU(bC`m3Ljz(5t=IP zw|%$F5pEryVtE=PmC4Lp-7AxOnkP%Knan5L(yoa1l!1<;6)%P z{#MiT5T!Ujk(4qX&8#@lmE`>B>E0oNg$;TXNWUNm^1pXP_4^bd{>p_WiVT2sXR1UC z_11g=AOyq+Zgz5WlM-80zHWNGK~zD;oud>&UK9%S@n;~#pu~HdX1`dqmlX=X;1dz% zy(MnxWCPKK(X8uU=62>czeR>L@&amEYgyJn4S_94h9z%d-&>>huTAEBNuU{vQ4N2o z-tP7wskmj>#Bq4Sekqw#+QV+~YhEfqG+}fS(!~S4apjc;Ks50hK*MzA+!V1*Vk`_p zVkdwVp5*jbRt%K$?gB@))&Ga9^Kfda4d3)RNr2Ep?-)QjBE5s5SEW}ep-L4H>4>3s z1nE8WjzN&BH0cP04uT3wQ3S;b*x2*!{$^)q{{beq;^Mmt94bB&TEER#aa%-WA%G4)>HcDS7-w=E5G= z5j}}%6V&;VyzX;j(3>e!uRI{+7KhsBJ*I(EJHE7W%6NW2YV5DX5LMqFC-U*nMpC<` z)a=ae!oPPh%YW&_9b`Jh`@0-R8>xs=+Jq0IDGbsWK-2YCKdIZoY!CG}j)d_%4a>K^ zL1X^LGM?m!r~2dSQTY|MRSDK0?M849 z<|zG_z26%w)}c1xQ%W;=6-)sOf0Dysf(MpC-4z_Z|+ZA!44SoaK+{UvZ0O~ z^yF?ZF7D1{3&l^mC-{Ah4cob3HQr%PGz|K!zH{*G*82CNnjhtI{y`i;s6v(=60Nfz z;={nr*K+S3TON}2Xskvn@Vs&zteU32O%4;oVi#@)p@zi<7yRh1%fN` zftQ#d{t{s>7y*S+>4~7ai$jA}Xz^v4O9fJkOWp$~qS7evqoxj-F1aRAgi(V>42`Jl z79}MD3`EcXZ}ny+ve&}d_>5v$AaEs=Th#=l#>(fSFX$<7po#>t-<5Ho+ehrl{a{ZE znsILxJjjR#I>x;QtKsen3Fcu4r6IK^F#sI~Osw(Yspfo*S2NdzI<0QNZSEbBQld;$ zQ5b_GJ}A!a_=Qw5-SXzy=%s|Xh@EZj6lo?59>Il!(_y)N^#bM5xWt|`T`W#+o8i7B zKq+C#0%644aPbp3W}A9%7ba%{*VzahSz&I-ZKGTNb9zT7=&XAR_9+f0W{`c*dnQDrpHDF_W3;^6cW zpy4(oYy_yGZh|}9lC^0?4H*ZJL{bHyRyGOxVM9&=fUMinxsVI_)SpDt@n$Vj9BLzn zibvfuQhR9e^uTH1gY#sB=85nRmdrRwfNhkPN0Ogo-Q3JG@nwVHUtCBMg!ZApH@T|6 zAsWyGl*x)!|Au|bOfivd%oa@X8UtsId`nA@h$g|YC}Gcd|%Eu$G|pMxy;M6zv)P>cH_ z);Zq2MPdY){E0%4S1{il`F31Je_?^^8f^W!({loR>9T$=jMYTe@^}wkFX+X8uJZH% zg1bP@A3R&D7q=hE6fpJ{jrYRzhw`P+a5EQv72)hIB1|peL4!W7GYiOpQ%GXL$D{?y z@^&3wpfWbS7olbR-Ff1R1gro~O#s|`V=M)YcuaFAY%7X!2yF~PeW=tzFgyHKTwz%8 zidWfVjK0hcj4J^Aq)53QN&`0mC;-Ta3I_B%6yK)K(Tz6$BJp`0&JHEahX58$pSfOY zQUZWEkCpSR5bH}L)q}o4rQk`L@&*jHjQ|7Sq+tciiulHJS~?7zV&^}LtI%PE6+Jy1 zqR`Qn^jMIE2yz9azs4gj4do8LO&0(WYTNLHV2~pL4gq}vGKqT6)yTHJ-kx7vwT3KQ z8&y{#5ZYNZzl8roo}r@8P!XsT0-<+O2Rp1LkfBHdbl$=8eI82B>Br_}0b~S#avPu} zKq{$51qh48f`uX=EhM!d0tlk1a9`--ZrZ3Fpy*d-DggnQle0gs4q$J7>|GigkqAI! zEXLsutdIupDUy0m!%Oq7EqR5MU9~0oaJX)5MDz7jI1>Q>Jb5)ECrS#1?}%t!7m0gP z9JU#N5v;QLybdyLH?FRW>x)!~uoq~MN~2Ps#|oWjiM1|PdFldREp9!dsNYnIJ0dkE zH33;ELerLN1=j#KMIE504O!?|DOB)V0)Y0ntf*Gs(+fB)@j+X`BlgXz-%4?v3qe+U z4)c>B7Z#+)5<2L3HJDp`UHI|31=)QGDp>l&MEW1!;>UX1m3(rze6qXM0ro8IA{p11 z6_6EO2kpOt`HF)S6C-pfsh$9|P|ahL_3Yy-Mmi6qBOWPlJ_+0CU>4@3Kr>gir&cng z!9t;>n+0yt1pd7ugfCZ(+!Bdt9J6t29oE(-gJH6iICvA|JEKF}Jx;VI zAu`u^vX=vo&|deyxd%>8LRwk48YB_^*bTA}KxsVm4?I;d$>SuZqw!Xfi`UBIsW#b4 z;aT~Q`a9Z73QCZaQ~_Z48TGqc-tBPmISyI;zSSa+n1lp5ugjw~%KnX#g1~-&6-~Ho zeOt&<$~@?)oc8QXTJb@94f}YeM9tuyzHE~Ao%>|ZWRkdn?LLyy zM`SAaqYi)(mt<3y)ZC@}bJx9>ftnQ?^+=+Ot!0=)1#e&hu$}~+#i!o*o@ys~_k@^g z9;lcsdl%BYpwPU3faWVvtyjewb_xM{6oExHRG!yqGO(QfDJ3_MdH6(HH@#KgzWE5I z;#n}**e}&&Wp+Lhc=qrD*~nKc_H^v=%dyR3c{&0ZTOGjI$p)|+kbyrl-fS-tnuR*DdY<8)^C3pT5no>WOTW#zbQu_9#AeU+X4{n$ z4Gl8U2eaSnbYEGHq-MdZDH8Ter`~h+n}26`^;>^E_=SJSjaRaqoP@;7qz$Jnt>>Km z^u2)F45PS?wEV-1;1e@Nzf)u}pOJkDQKy&a7{!ewJT)m5?%+&`3K>Ta$*L^IaNe8a z{yQ?v29(<`;%fpga}u|Lk>^7Kuq^T`Tn$(Mjxaxk$|55&HR8in7Uq7c2L!PgU_A!A z7EU>ri#a78^3B*+bz6tK)#tmV;}w64QSPa%ShP-+{G^~F$P1C{+Oj#{4Dl~VK^=J< zep`#~*Jp*Tfa4!?x04oy-2E(Kz=JO80!5{<2_S9hlw;SS71rCS;kbs^_9ejwvGw|M4uUTPYN{&khzN%d1bQx-dc3v zqzraxkN(0duil?03ohwLUVA*=eQ)E@N!SmbyW3l{CU?uBamEa!I$Lkl-P`JR(9x2M zFFw7~*#RlP`PKY3*6(dy!CI?%j*AHqc+l%g3P7;m=AP=Ch(#E!1f2Edgoc9aHXd=f zBu?YL{#|uDLL*Y(%d=j&5vt0?kG%H>jkZxV793e`Vme}TST@PFIrAk}NjP`7qqWuG zo=%<&G7<&^eaa`)gO>*0S|bwU^N}hzFps2Sse4Q;`ki11qkR$u#8Yze8^MQm9Maxt zIo_hJ_7@L`+2P6*`#YfhZpL>!gWM*#UFAIlDT3hU&qQSLda#o_yVx0o4+>fSm< zv+nD%EnSuZ;4K}V|Mt0Vwg}&74k!=%zp$ji|A8fU{s)#c`2S(ahdH@ zFJ@mf5|`h;d%m{cDa^~${PE2||J?NMx9=SXr!^wSeKVh?kNVA4IP{39 zfw-C*_dL5k$8}hIUjN%~MtG|b&#K*sZa>v}n*%OI*qtdgrTi#U%x3`{B3O`TelV)i% zVB8nUc~m{dT?)&Sey5{&|469wuE%W)O#};bM2|7^<-5%T`b@&dmEONK;y*?7iGGZW zk^0uq9b)(Cqu8Z?HymxLz8x&+zG~R2JIm4?-ZhLu?d`v|JqxdTV}EG7&!u;-oeb?{ zHQa6Kc%Q#vD%Pb|A~vv?F4+o~8k|_D6*hI5_bR*6NTr(q>so2lyD#HJ5!CBii<{fW zi*I?ahUl@~eJ!K&?)K;N{OSuolG}Ag%-6W--7L88{6Je@WlOQk&|gK;XUa=jIOdvb z$Zm!dkJZ@6*WVLlD1MUi!8O+)H~ba3diL&SBszaJ<94{Lykn^Y^FCM<^3%dPp&tC@ zoOVl{l;wW93F)iu`b3A~S9)uuGvt>{G#kch}hej5kvEBWc91u(KI$G4=am8aF-k^`SQ+AUN=8|7_{_;4pY(iyV zTb`Y7Z@3SAY@ezwc{Z>iet~;7r7Mx<*#3d0{gu=U`tr=ay)Q0wPV1i=nBqJ+^m-KQ zQ_Urpi`|fXr3Av{)SX@92giNZev!`H0w*~2w1V84*<(h{u#gpY4f02;Hw7p~@FrGf zq!E{Mt3!VzR@%J~Q5C^>r}i@$Xq;BnZt`ZC1h)vE83_@DKQnR9XdbMD+&XX!{&}0m zF4twfhgt5&mb!;utdfpHbDhK5At`s`>L=x{j6D6BnM#C1;PE2A&axr7((@*#$AVF3 zKWZrhqvfjyT}s7|MEGc~Op{O;Enx2H*hL-@X?#YWTInVj4t%q15swj?X|V80-)j=> zi*T`ZIbL7vkbkQ6b*lCP$ybPjt-9(bXoMKnQv}Ws;P;eER=OKYy>t46=T(d!HAZ^> zj7vr)=P9l1Xp$g}hTm;#UvqkP)ks^4sz3jE(V&-b{}T?B8+okG{wPK%JB%e1z9aZhnJmw*5w{w3F*q$mUj}z28{N$hzTt!x@qIE@0&BU zg17QeCgYi5cW*8>gjPQdHjU0^u&ePk>$*oiX?WS}rc+(}vl+h@H@S4z@m1uLE43M_ zHP3Aplwg>Fv4aZ>rpuT8L~7M3x%3qm)^$||v^c&hkY^qLE}7mx8#DNoa97o>_)=OZ zi!}Y5-QV*|uVu)D=`0%}hkG_pe)VLvJ$vYaOk3X%`5@oINK&xfTl0fd`^C(O&i#H( z$~)XCo!yA%a62F4agIyZZFHf%)yz9UB(BZ?sjqK9Ns<09xOZDUMj$n<>Q2(!6g3<@Z z`ZOJidoS?gFgJB^kMGX%V@s?5g2c{xdpN{!YTAz08+O z{LbuGHjV|Dg)Z(i7(00PH@s~N|EK)H^sj{$)lZ=)p)pU(z|`yBB!_p@x4Z;dm7cSE zWHuIG-lLkac`mvl19hj1_`JyPNiPakzPHF4ifrmcZPhcGH(dI2NHOc3YMG<(oy=+M zvSxSN3`UsA>50MGVl`KLZk_i-4bi;?W5$)NLXx+9#vD_&X40LWhGOi`B8KDTx(Y}6 z{8Ei>u9?l=c&NfuI(1gKdj0j)vdt}#E7{35T8Vl3k?-on(t3zVjB*VfB)7Be4Y!DW zFAQXzZ{;g}c$DXDoFA_I=uMQ@izPGBif0bg7Bil`!=|3uWj4AzDQTT^^m!pX4)0BT zg6DU-8XGtF1TT(9D8|nc477jeRfoSzdSRp|HN2cLSKc;rRr8a`$VJ5GovJkp_TsN? zXoRZ>I3A6zPZXR*^{^wX2Kyl1KXM(?eqdhzp?(HH*M zK=v(3-AvPqvgJE0?_y}q(4=aGZF(ENjI@+eU3UBRwpXJzQuc(N{Ph(Lxo5aSG{`KP zBl%v``#6qY2+ByZVh|!j;H5B}4tkYKL;}6PWV(eS>8xO?>@0ZD+#OhB9gL#%r zz5Th@K?KEx1OOt?02~RiIw+7DdFYmC*=kR#-Y#P&V;KDU+k2rhQBzIpDA#7{b!58S zu%j9A#WoI(Jn_AC?f1s44vy3w%dYtRjQ*72+oOq)k8%ZO^}}LU4I}M*!{i&csIORv zx#B^@*6+8hv^Y>;8^%Vl@`g(%p7lUKXRFG(X`5y{XiHVmgej!v?+u2!FYIp*KA;3t z!Z1K7H7-(D`5kh7$mWSkYe4{>?md68<2!>l+p7@^&$OD8FIF5JqSmsFyF80!RW_`DZHz7g=OfDBQE- zzd;uxn>Qgu>9E`IX(}ZOOIPKmTu!%TGdRsP?myaRKK82obas9*r|p=`9vd@qE9!vt z60S*9Il!X_AcN!nqON?w@t6|`RVAGrT(p^@AC&z3{H7ras08bc|BZ1C#bNxq zhK^2R=9qY1@R*;^<*q8b|B&?^toO}``FU3@P4(45pBEVt)jtm>e%rl@BkgYOe@P7- zYu&Y-Bry)W{YS;)#KVD@{XOL754n69RkD0*sSe88P=9Q9G^=iy8sL-|?1+{CuN5E% zNN)_Rc^OUUw#3VQm+_8S#_-YmAmm(ny3{S5A#oHw?Jv#7OtvIw5IW zPIt*C)B~HAr^w4{Sfdraoa?T&8VVLBw$+%8c2Fss0Moh&Qmg>;kiUkFl_VN8^+Z;^ zGw5TCR(I9;z@946MkTDR%o3|T4j%!s%XnWIA0<}+E@)$q=1x244{)vpfqOlm@wYpwu&~+0Kv^^*4io&8%wq7&4SQzSpC4lAWt%pv z+`bQEk;t)RO@I*r7A#h;{{#3ZPO7RH7KQWD+9bJ-fu_mWfm zy&Dk>y`f3`5&SlChz7yWA-Kaa{g(;qf$Qv;01%0dV3jXX76iF)5(R6tGI*dNCF1dU z3P?ai=vlIygVf=L^B!wQDjl!wPN^oEDK?qS%1qPNk}pJ z8M(EP=bDtV%?3bNX{jEMI2v?e@jGS#w9!aw{oom4C-*RSi8{{^#b6bg@D7$>>~}a+ z)$(=Mx=xv&srSaB|^+&JVuo#Bu`yc#9>fV#;;6%lM0s z>n}wks+D+Ae*4o}8Hnw>l@f>`0?b&DnI(aO0Dr9Q(FY(Hw{ysgBj$BL3@+Cb3FF2< zb2RQq7|90x<+rIUQ(-j-cP%S-9`+Qv1dA0`7-k5x90FCaQL1lYOz5Ie8-Q*Ie$fEN z)E81<>$MZ*QB`1Oad8S8Kr;jalQjh4IFUnN4PyDPb&#w6-X&|Zu$Q?;eb(qCYZkm)qen@YcC~NK=HOPK!PFhX`+xMz^#7yl3>dH8t?zXz$Yg%o_+BBWmTZB z9s$EvC$nAD7-WILsd=ti#!e*7Q{*=ztRg#u-SS{?7RV2P!#m#ss4!4_4Ika1uc-on zIw{u!5i}5r0|m!m`;PBuEHRnS&V6Muh^AuDx;OZDW7tiBhsL_M zu%tPz2$UpLaz+56do!r8ASb@ydv_Xq2#D}Ra}B|-vb&m0&@gN_i1bBw2t&1U0bWQL zOBV1dEKrA7zFQ1h603!9+$y`O0MKSNRE(EGt0a1Sl(Hb4UAc|p1ZFzZ8X%V;&GhhhQUyh`q&V&Z{Ao~v zRfI@s;FSWXy(#oLLQkNU$}Kg;B?;Pm<$hjIzRYTJOLuGA6M&*+y4c3*EIFLJBo&!}v z!w~|aYD5X(?#up&>^u$w`gP5C+2n$NBnMu0)i01^`50*L$hMdH{PECiYN!*;#vyDvipku`!{7ue+GLN~9f3=l>rN^_k6 zTJ~Xo!@w(^O;}-Yh9ZJeyY)v21r*X}9%`nBE*qeA#Z1JvUhp*=o~6EB{6$lyp3|A4 z!NQ7b+D_XxqPm(9<{tsjDgflT9Q&`(WEq~;1%9(@pr>Ng6qNp~f>nKeyvg1DLI6`l z;2*=9)sNwhKU{X=?*y~l{$$s4izlaC37`kyGM7iM%>?yM0x7?46&KxU*(?g(u*d%} z;*coYER2u^$YYKwFZ*O~se0-Mn;ebt?Sabk8QccVu&N@SedP!@Q!=Brm-bh=GRTzX`-uAl&z{P)_LLQEXEZeExeS_iwXt zVRhc$KKJ?K8!-_J`_Ji!{Z7_7@+juoA6TdBk@UksRL zzt?)brBu0P{X;m4=cpH5aJ@-Mc4oq^K?SmgwGRJR1gZ;bS&%Z@;EzEiX%8cO69*9D+u%r|;rx+iG@}ZM?=3R>(&}Az)DE0( z`}uqwFmKCEAXLch&({<^(UX^^#p36thFVY``&=%Z1&=J=alk=W74_w)M~zD;ukZAOCM>+wDPX_P=Ms95My@k#&qi(hr( zR_o&H;aUql=z)M2k(ktBc9R}5!(%7sISZ)E|4WAV4T`u_% zkb0lEzPYs|Ui*+FIDCQBg+mq`0^wp1i_@*s@E7 z`FXKb@x^EwSbAdy2ye=40h`G<$`X?k^Ad{t%Sy|W@Rt(ed-JO&D)NgayDw&{swzv1 zrl%^q$Lb_GDBD_KFeFP);@~tV^>&7Qw&>g1>i)ih@9SMd6LZyzrLT2u2hK@&`4$gf>qg=@oy2LT{U%WMR{ zs-4J1>(ZikyMiD6&*dJ2$oCP~k>V zV}@Y0NsQ88Bv3wj%KUKNfQEfx;fXNwlA@+xc(>;Et88oy+7usDo4613$M&CWpgq_X zt^Te*5uePkmOQ>7&5e(O5(6RC?wPrFnsJa_%_ zLKYeT2ySSq+;Qd!19<(}nD8bE zK6d@P>2LfXwRHxrJ%ZM)6Gs}9`qjOTMRCa?XI>zatDY^0gKKml>QWC{9ei{mpzf6> zyG~9sIK?}9^EKK;J+^>NI>R89L?M|Hg|d9;1V;`5a+H$smJSNc@>n(QE2pLs5BQN3 z7Lm5P1wou*>N_F>vc%y#%2)O==^4<^qfZknK8DhC_Ovk7GNHhTN*N)Wo7RFdi6NWg z(#&|EYPw5QS+K0jiwp6C)mU$|jJgV4@{|WWuck0OH}B!PfW_H7B?&+zw@66P;O^*{ z7e*osc0oi1_>&g%*WvJ%B-z^{quS+_#=^w631stvazA^`kqix8#bOjkIO|LfrjcO~ zwh^#LVIcIyS`^Z~(CNujgtOP7iA0y`=3r0ftRP<4d<*}gd$sYbM#_g2+(-&-*Y^$H z_pO<%SP(^77gkS-L@vKH8jpTAM0)cc|3M>}OIJGO;GKduqBKCZP#5@-`NUV$T*IJ&t^y{Oj0h{*2u1OJJZ|{^tr0(v$r2>W-FplF&T)C z0e}7Fzu^@x>S`*a=6kwG$Ujid0%UE54z#|IM9EpK#iQa#=}f|oM98zsLWVka8q9L% zm!i_jJ!jRLvb#Cn4wF*Zh}w~~pSQjkEH8PA!@zn-Le?|3+4!P$q3pvIo_w#DWG+Cw z2$X7uqlfUQZ5-tp;O}2W6Q@)6Flp*y{AO2pzT=`s|NT5l1ZQD!+7`)GqV3Uj#t%ch zz}tANacx;zG4wpOuPPj*&Cw*DS zJUOR-|K4ImSVK$i+8t*#8Pp&}cs0Ou7PB#OP`YU`bl0)p`D?mtufGsFc;~S4)nN!L zhJyYc5xw)P?T((Zda|){#Dmo)GVw6`M;uygLogXY$JR{KaX$+s07u1hFn=tRFiQX^ zupn*W=WDPf)3QGI0d^9&-vzlaz32nC5^Hf^t0MYxcNbiTw4?^eI+TSzPcDQf;^0dz zW7YqxTY4;o0Mg`LhU-Ox9&~qfmzQlwof5jn&$IK|Y6`;$`udSna7J+=MjnAJ2PH7@ zADTA?t5T3G7zt*lo38D4cq17eEIkWlLzuw6VzTyB0bNH~*KPB{f~L;}3-8{a2MAuG zF~P`|LE&*vV(+1XPhIso&JgPizs~)waQ_b^Xu=LRqrBog(k2&GK*JIjvAO}2pjp7_ zL`i;2<#972JYPhPly%o@9#JJIj(>LlMNrPHaJmn_fW!+l0arfJ3EO9tj7Q%UWF{Q~SRE{vRd;Fv zzN8v&-+8(6J^RIzCmd#7Sq8elxpwc-ynk806(LlUVNjcYqV9x?<0fhZ%c`Sc2|Ald zSXY~Fl=Sr@12bj|PqCh>$np6Z_=K??-uxPC7?tO&!vr0}Z|21VbYTzQ8O5(2y>@{& zp3U-={Pfeipt$hJ9t1 zjMha7Ni|cH_q;QW>*(2(g#AGNS-29=_J;fhCz=A*$=79NTS^#9g$0)fbZ2Ib#DyrdtN)G4a;%i0n426_7LYT_e z;jRF613<>8BV1E)x*B~^Zb~;Bs?7BMO(8x8zkuKb70}B~2e-r%1=5!;6sqAr*eBP- z-W)s}FM~EoWq+{hxQnmo2T3IBCxp7DYW3CHr=eTZ*TdvlO)wyRi&*7zI*>X5-?LIt zC2Sixt7WwPx`i;TlH&B|z80QBKSiisjZ%h#Gjj*)Z=`=#{prGVM+}J zUuVS8{B-S?H6RrdAY4}Yny8^N1kq0R2&}*|za@wV6w&(ht~jPpy7zT~WsvYff)NPd z=e4r^mwye1RBo&ip)x-mT?M>zD{m8-wciI{h^u{v&Ngrs9GsdMF2*Vk zWZ7}W%aYc}yrI9h#RTIpQECTbt!?f%XNNbxg+Yf+k9hA>3xLW5)PQ}V-@PR1hSZbv{-?w4;9XNKsAC=yEaFHrG9~x3hye#x6tGQYX{(`LJG#YOy|mo zsROjSNj)$^GP)MBD&1bcp+FMW(T+iH!!+aJG(%PzJKuE6X)!{~^wmOLN zVvOx#MNwcvEk?nK5TG1J$*8T)MFi7W{K-ANNXL@?dN2(PLAxoCw;P}!ShSeLCv;!h zLB}By)i&2106|)=A)pmN!HM==VSa93E@&A5xLg=ga$AmRRT*x3rOzTphL9S+cY}CY z6xDT4A4KE=a7YD656K}rq8XBxK!pkU-3IibV?5mHh6%l|u8X-4?kR#?l9s-)fQpDI)M5^RYfT*)TxYTfg zYGk(N-A&rvt~$dnRh7t2h}$g& zJH~qPlEu*XIzBl-(lHi8@3#=l_F54%lmMa5bBJL@oj`j|fCQD*iVIM*C^gOVZAQb@ zaVp0{kYN=rg(*H5H8oN{^;%tSCguXT zj;H*{qE^HV27A`rR0<~vFDGTFsOJL^DdnJvpACCMHV&Z?kOUGSy|wxcY3bM?pW$sL znIXVrnmsb5?%qahP?yL}HtM`yM38rVFgqseeLZ2Q;)*+`7@wCtY1^1V}XAlBud$XFM6L|fFVn3(6(7dkLI>!So%=O^MhvDq>!O@z<4oZ#DJHR9G16HMvViGkPnl3 zTgcuaw=saWHvskmblYYBvM8PwQOFU?R}5O^h&(xKQ7o9yYqp7PEEha1XsEvpP&Y|? z@16bo3ztDh#HVSdL}<=?gD8_nB-^w*tUgDvsYyxs)LE4?`jvkhz##dEOK7(m10%|Q zLVR(-V7sp}O4o@rO-3N{Y?}Sq%l7Fw1=hs-{%5NH+$fztz*UFJO7?*teE@j?fHVO- z&x4S}C=X!*icrdq12rbVY5IKI4q9cLZ$o0$HI4>7e61L(3*(vet(a@-AE=;XEU2O;+s0T0DcreoNA0P{by(La^p?0FAs>lQooFR)1 z?I-9;AmoXeq&R>cr=^04_~(KilPK(vH_A0{Of9)+(-_X}WGtXqxMLwIVMJE~uJB_} zpv&{}=KelyVohS75h)-`_}(`B0rOO$)P)|{aiQ3>v~)~<%dWn z6(Bof5f;ky?3xdvsj)u3isD}%Kx$fl%R%7+FX|r~}PkyfSoOW;O;Cw@^H{ZfHY%2{LDP3R1)>k@_;H zo8TC(V*>OwBoQqlqd#vpGz(+?2zHK7T_C?E)!v9osOzA>@5jqTXkhd8j`y97lOKN7 z4ud)KyNHd8^uZdY`YZb$We}Qftc)9rp-6~`w_UC*9Z5I~&T=7>nN9U_9?QIM6E5ip zEeS+}V(l$4;0nqirfG7|rU{NS<(Y|~aI?yZl4t0@Q5^u1XBDWwnCg29)5IdQIRPo0 zKu&0J@77SmQ}2vBcK}%3c5MV9xS!@5HX{%z#VB768IPhgA$PNWK-EWKxE!HaE&vV- zfNPoz`bNEAD!N1isI=(RNT|A++X)fxV9*%17 z7|rU;!@d-({xsu?vIH-^yFmW2U+6a?_HFR6SmLhz9Eh{@Wi(`)Pc9fcA7;L{xRAE+ z&z6VU#Ak^r_e(>Ayb9 z!1pQtU9R6+Ql6$z3##bQQq{VrJ&0w^+LUA64q>XAH&I>H6<*Qn&FvJJxWTu~n>LZL z5Ev&xUpC4t1LC~&7W^r`#x6gR(D&I2YS!ZGE<ptD2{?F9%wC9-ja`EQ=Pu z>&C<4_82RYUv2&Vvn8=bA+3R<&9E(U7TME4y4l&PqlsH(v#*aw=^4R)rqb|9_uVT> zi6?OSV-^_E;@Dx~bL%8#jazL*jzd@bLp{9@31?E;+{Nq^82tjo(I4L2ULQ-3;E5F9 zd=v6}+l6!IPz+ALUHCzRDl6u}94UVcsXTxC6!*Ugbmjsb`Zjmh!-VgNbWGR88aA)C z%}BmpvLGbbhi}c(l_(Q|4jWk*aYuEa@7nEEiIWJ)D+Mbcy#AT>jexo9|8|TA*1ITe z{(P5@l>u2JMa2ge_pWX34XBbV%CuPifwN!>b-kxOZx4EZdPVx(_-@TIGlt%xsUWy~ zF_e2-d@a6XNA9a(aSz*j71j5W1MwCrR1m;PmR^6q?^SyFT;{)BXSV860M1S*x;%WX z1!Yzw-ca)CJre;OnFTEgL3f0}pCRQwz3ugxhmGZjR@;NZP((9eM!$*TPtitw`N#3{ z+;;_r9|JxXM<30pnRRxTA2}S&J07ohT`HV=zdCT7CQ3;a^>K^)(V~t2^a!U;m>X$cb6}^!aG6Fduq&dS*~;Y<^5khzC+?PQBQ8 z*+zUd3Plaq*3j0Q2k#SKe;gH=Tv^^(Me}|5`QqsOsUYvp?hY_^y;t`ne<1F$O%|T{ z!4_2Yr8y*|C&@IDMlkyxclMz2sSme?1!wOR+jvg3g;=gN^>$LYnDfKZqRGqCC3zO# zo8`p0jRN2Cx>V~k)Gru_86p0>f9yIF_BHvTih<=~d;Z(UI#l3~OG}kz#~UpX7764& zj;g7@H;5Hh1m}y6?6Mh+>X+eMPQNJGzqvl^d13N`-zTKiyfCU=?hiR_03m=6L93>e zaqIc0_bG+nuX)L~tQDP_!gTZc%}$$Vk6%!<`zz3v`+T7`)gbwhLs6hX(zm>KGd!(q z+>vBY*l@ws|B-88>_@YDySRv&)o<_I15FZ>>{?2+Qg^2-^fy^eK7W`s`d0pC+A^|U zh3*Sau2`o&GA3hJVMG7=vTvDn_3+?>Ben@mS z`pq?7mY!%dS#e?Av2(`t;8Ee&`t9p=N$bH$wJZy=l4wQbO%-aSy*ZDBCr7SunLD>G zz4tkj$H{ub%hcVl^O7VOsb?utu`0!a!uxA?@qIaOtGx#rFzp*20o3(Ek38Nc6ERT`Ct2SmwEe}f1fx;^_M6FQ~6NmD4r&Ndb{yd*4_tq>5-44*6VzU z-{gXY=zkYym!CHM8cVnkxihO)Vbt?6O|4tWikI(_jFPqJKt#vOj;NhA;5X_AZmDIz zvDtSZWq$QNLKsag;(q(F5llBEQ+?y3y?IB)(EIMk?y^*}q{?=r@3a*@-KDWu&!y>~B=T19R zU}61vAnC=u3QZy@-%2gECtEf+C?BCXHGD1hQ>yZx3c|~7wRGXHd5ymp{#kU@>T{o@ z^FqS2ZFLE|VSNiVx7sxiWK9dTr0Z0(>(%f@4N2AXq=aUdD{yj+0pzy=E;s&-d<#7n zC6inki;ehkD@`2TLg~RD=L6o}X@yMFm^l@fYCFjU-v~OFf4(!~l;N6kl?|>}|FBZG zuPe^?K1hoN-voT=$L3nUs0e^ zB6`}Gnl};@{#7Qkt!~QHF>w4q!W#K7-u5Uq_EB1*-?wp9!CFY=)Mer}*uhzWI z)&VbSZ;FiN%0!Z;>seXws}Os1+7`bSLY=5{6gHHy8f00F$0ffQMRamw?;6C#xfwrX z)6Eh8o^m@6WzR2c{nx@gz1Dt=5huH5<~8r>_*@wKz;2#dZM6k1_HiZZrRB`a^yV7~ zdZlYwrk0)^#UU;1LaHK6_WY1O>H_>@?6 z!zoT`R%7U;Q{=eZx8v4)FB2EnqWcdoeJnOVengg&5M-i?0ljg=WdFr~n_ zE~J!8Zd~~%7p-c4DCZ}v-pTsezruHWN+ZPRLr6yN+4ZYd8VfekO+TtMslP}uthogA zb>z4I6`wD)d>1%(rOY6~f1e(n`u-tfQku8vzxXwiBbu&3V~;DA!d{ja<4+ukRmTro ze;e|ezGE2v)na%Wb{$r1Gra5TlE@W4{Lgo}S?Hga+Lc~K(ee$^ay;*)vLfM?KNJnS zd+Ur#AGUeYy3)0u`kFK~9dvv-A6RpJWFEu*;Ktp%b4Z=rF?ojD3i8r*87i&WipOtE zW@wi!_pbsBN{^ZYVV#`mGNpVr#OEIEv&oU)Qm&*wQAubb2FLHW4BLE+iEU9SF^T=A zcG3U-LbfByE@ z{enLyPtb-m=hsxFoz=sj)e@ABTw&&WTrlc*RCvs+n{n=S4T#LYZH{oB}VL?F7^- zAoZo9P<|c0E7jlbdl2N$kp5TahlgdEU7d08oQ$j%sUtpUVLGIIh3DmOl~Xg5pPPkr zPM-<7M!Hv=O0OHd_{B^D!9*iHbPD%lDE~D+&F8opSh~?v<=S>|qr`fXn=(@2!E5b{ zHnzyhh}`gHvi6w9&_D0Lj+M??tZSypKYQ;Is#p~HYG_9DU&i|%5k7jJ=M^0ubWTIz zq=|BKk5VPKa24XF)+w&HFAAoUtcugZp;}etQq_>=z`{-IkF}PfbmsFIvcwQahg7vI zhm=2KRUI9k+MDfW_;y`-l%Y{m%`(1uNI@%O5<_tpjRHgi#8-KP3Z+Ym*)6fQjGy(suTA)P{B$;HF2z^*@D;P|jLJXTGi}|D- zpgOMBrt5WZ*~DGj_*GZ%ah}B)Nl1EUKrB6+18QA>s9sc@Br*=dG-S5HYWWMTi-%|; zU$DXiywB9A?5BT)-3!H%KtS0x05Kwx4G_N>2f=PE zXvZO~0Liz}SBF4&PVktnwHdSdpK*_@ZfkOu*cJ2eyZmyRHVJS+`_)l64G`zhlOQDo zz;OV_i4`VECOIH6CD%iz$Gt(zANuNjx*KM-7O*9dNKxSN+09-X2@{t9?G@r;))NvY zqjJxflJF#)S$bEO_0JG)|8kSsgB1)y^cPNzmXhqM#%=;~*zhra79bASkWkGE;Cd2R z0feiIhT#f3gDH{|gS+{|o_Ea5yC>%Ma^hUDJ&sYhugj{NJu^!QV=V|#nf4NHTB2;|K4rDNJlpeq(KDf5C;O1I*`uMDczx?8%8&dZbUj1 zr-D)MSciFXlE28f3?3CZlx2Wz?Kz{bNd>WD6Zr3 zAu%?jKS$H*`iQ(E4JCqG2BgCQ2vRm22OuHBbT-iCdlA%<%0mX^BTML2(%G<=g!j+v zcreJEYx-Z^FUC<=EQI^7C}e+aa`Z@yj0ywkItdL(Pz`%2xK4TXE2BIXaIj8q7f+S- z1gD!cD}Oo427rk&AxDK_9=&$Jgnm_OD)(;YnV!QY3J%@4CI$)}4ggqxfs=|B6E>6H zE4^bd35Ep+`rMl#Fa?9Wy<1*Zllya_v~or8r(UwJK5h~Cua=odCOkLNi=PZ5ssJ_3 z*|JuU1R(l41xy_ebf#r4Ph@}c^xWFH!VTFh^_?%C zL@=RJrJ^dQ(lU8Tmcwk~T%>xp6Mw1s;7t+he+Q}Id(mMwm@^`RYZi#KPOnY9O9Q2q z#Td9{n&?zgK`ekImBoqWW{1Vjz~J-&l}RmkFX;hCC8dUx2xA~sQ?rY6$w&eTjiP{Yaz&s0&P^%sj%Sd@y5+rFwY=89tos~ zC!CYX%3E#W$AdjBNyn*ozNAR6iv({qp9#9@+CTIXQ%8dj4T#yl%k1|7H8PB=v*trY zCIzMpgQ4FWBK&D?@%zojjlWxQ*hZlWvh1nKz~ISV#AChqX^{*ePGh?-P+1RLO(qLN z$`s2FI(5rc2N70Q#1oZN_$1T5I~RtPvykwWO$}Q_qW3`BnIwott?Nfza$3#Dd8St8O*=PKcU}8d021$ zJG-DanV*H>4QH1e@(ePW0MO$mSXF`;fK?`19SS?3L2gv9Z@=y`26RmCjq@SW%%%=2 z1!xdD8^%k#B`uzu$E7h6?ZpOVnv#--z{wxx!aZ)%I55+ui3(Gux(DU)p|wCC2(;IE z4kKhh3@P?_B5KtlQF9YyMR!t8cF=ica-iVflq|l+6;cx#>>`w}YTc<<>fJsXsHEva z27ujZUQH5`yq$ngdL|Tty%oiIln#^+bwDNDn5HYn7S&Fya5loj_e}$bLjY#Q?ra`f zujCIDM@Ong#F&6>6Qqw#0Q*ry)&3oEW;hFWxFHqbnhlKAft&yj7@7fbI&b973hDSW z@P!TWaIKkz4D)ML$H;)z%0nMKvp&SzG*D??IRXf@UGzs48~y$KWH=2eX<`7lHDtrz z2|tJJ>sWm-%~7J>+erJYwfC@IR1#{13V7Y9!;NWOH%zx@_5V>EVH{XKM$`4)yN?N@ z@K*2QH(YI8D!_s5d|3k??6)$g;~9Trmy$rc^x9R)1jvay&)!2+e*8fK&^n6vz8J@P z5(k0#S>BcJ58EhlexJYj8gEuUL#8^G-~PA9rhx|gpcb!Au`zv50YzT5PQXxoQq~Ik z!df~{MDh^`c6RAnotfL|jUodfdvoALPh$UJ(}@bePxnl}UsZj!%bw$`-|`p|N>0dn z0y4OuH;q>of1RtAD(f+P0pg&%|FEF7L?F$e5*|T^fxC*jC{c*$iLg8!&z>}#K}$k! zm&q>)rhhfz4~Izf*jpSd4EvtXn1QLxAfKZC`*~X!B9%Y zJJ`WE>DM5@PKLo*T^GnOImy8~Wk9PF2BLFc8tH6v>KSfAM}t}dU8-2cNYNi~-e}C} zLcklHEEanZ5^>O=!18tfy~m!Dhqu1SwAODxEr?*7;hFmReNc@Eh}gXV@d(^yXq9yJ z{rC3#MHY49C=K02tyLw02o_y<@@Es=mq<`Lg`ar%@6smVGq2n{tOT3j(KVi zq3UG#ys%8O?Qou2x+;2gG<8@u!#LH$L@Tb@`>>Ce2k45t#ffCqZ3U=-HghEtw&WZz z-*u;O1~vw=kXLN<00bUj03KZ}yZn5*N#Jx5_ad7CfO}Ko%Lh4l$Wv>lbN-SE?DRn| z)#G@G{|)uO``$VZD~)J0H{P|q!^;S516XIPAyb9QEa*5LGR)Xm^$~IOy7}y*k5T1? zzj9*{ZOxaEeaq~5v*HW6#nQKXXUV!})rT2=E5F#Tke-(C<^Y>16$T>`^wjnP0P_LX zqtKs`6|*%9*n7=B;(1l5>DMv~ar++vJzuUwrjRo=R8=4GDc6z`$RA1yT zyC3*>{5feq;! zfF|_*Tm5r+5{VmVT$e3rC}2=sHsdR;?%id4{<1*62;GD(in@Lrz%;!8LwrcT zKz2g!k<{qSA>f?8@j?`PH#1{vwWN7a-SwIEwGPbtt;z(hjcMw)DW3}A7_cR_jK6S? z`X4A&GBNSK$@tS-$F|acJZCmxN_ld>Q{8u7&d=_5Xw(vJa6Ieph`Hr*(6N09_khHm`j|jEO2$#6ZUV{Pau*UEi6AXdWA-*^+R({wo zxc|;c{F%Ojvj24O4cUO5-dGrx=9%XvjQZtdmH_1rElJ8UVQ5MS^W;zDk4Fon#dFbv**UPB zJOtyFRDpPYf#igegk)k$RaHewLsCOkN_|OrX+lkEYe!{jMO#QuA^EEhwOf{*#v#q6J zcz0y*N770wUkl1l=o=PHS=bsyvd0(CF9d>B@h=0;=r}Vdk+XHx0Mnl{j} z7U0nfSTf3H!N%2uyx9Zf!2-5}qCBB=+gd?-(pFqpa(td-w>ZM()=A0ga?PZskF{Am zthB`C8jSO9<(plmyOif5uFb(Xz7JFywFw+y&#ni&PA?6i`Dm)c9%pTu@IO%)P&)N0XP#7J;UvbQ*C93pl6}|8A=N zH0yMp`|j19H>k;eg{ozfF!__jE6)OBG_3FfD{C?VAPPU3Izd6nBWJuLeNzZ{m-6c| zf~K>zOB@~ixW?i`P@}Y9;d`UisGC2U6i|N4yr#+WBruE|@>~f^WP0 z{1*QaK*6(fCHl)}`A-;(+$AspsjU^nr7i5TeA_ve3(6Lp{v6blp2opk z_owu>_u`c&JVRt{oKHB!)QYE@aPLe<5m%b7(eI|oiWZE05+pow(RKl7XYov)1xO2q zX_#-w=s%%mbxHh3?kDfo7%rVKfM^_y2W2mncC+A$*8Q@xe)x`a@&M+LEEc-_hZ|*` z(qkL}-GAclo(IrC_lt`$%aKX65NsZf&dGGEV5!Forv}d(20C_6P*zas@iU3Jyy4-= zG2No|QPlO&lGJ(GCfeUeotyf1)F@hazX?eSEGWm*(bx2M$=(*ayE5(!lxS9Pe8ATU zQsV_ZUR-GNgiV5vVQ{kmR^$m{OR%spVWW zSK^rqV05b!=@Zi|^N+;VosTc`FVgNzC8Lj@i8EFQ_`!jtu)MAM+sRb;fL&=Q=3_fEC4xXd4Cb_s4 zQ1I0AyJp-U6pfn`;IjG zJtU1YFTG4>@)9yGLgC}!PNum5w!Xg_F@GV5zFGN3$>Zct?2MOFN#F;VZLSxIBF$J# zhx?l;*SV#Zo+L+g1GY8rRnXI9Eg<78Oy6wp*XWb(VXyFnu$w{h$RgU)RnwL>9tJC7 zkzRvd0SR1`eEJp5*MyJLL2RQ9p8yN3ZM0IIz}uQ+!1yEnTSOjF-oDgdq@&F?+5IhU zbJ>`A>rzh)J}$)BBx<$(K>UP95_O8!c@PAP^ipF=*GBVD(~W%+g6+;l zPzDf9FAb*9KYoZ+hiZSyl~arThoOT6ytEi#+DT&=2K~%^ka=;tbZ3nw=kacPu)QgF zhu*G+T_8FDfQ3}cW>FIWYCAj?EMd}-L*G%jlEHgj?&eQedpNxw8AL|Zse09Xq}BVa zoRVx&qe3Qko%I4zFLsBjt<2ml%C)H314!qMA3DL+aWJ^C`^J~L{f$b_treCirvh>U zuNetMA{*?D{u(_TeYVst@-{_z(*d}nr#g6HFKnI!z>`EEFL z!Cl<8IP0}e?$hi{whKC@F@Wl%1Hhrj02Nt!`Wirs11nAa>RoS+xSo3*$E8RRK4rVZ zyo+R*1(!XdGMM1{<~RvAx#u{59vXxk313008Z893#os)4jMh@pNF~8MMsFJm&bZE1>O*`vcjDQIyONSMH7rdKm{{X9-RK88DO9cLG1A8J-Bk9Myt{p zujz9)HJG(Pr%{@73%BRt)Q}2a83?-Rj@7y3SF;1*sUW2YK-!BiM@Fs@fnFJ< z9wxN8Jou4FFT3ya(G__31%jyH%mESg{z_C*dU(r z2+;Ku41JvS>lv3%9ROK$e_P?zhG znv4_7pB6oAO6e=eyQMD`mPXL~rNWAVfBz;ow&XY{lDH5N_|X|UNFszwN<{U5dyL+} zqM<)Y;X`wIHBN>Fs~IALj4(_w&hyNhaw3MyS+OE7b6O|%Z4q`;ga@if`F!Leu~%kK zWed$beZ(9amzkUQz|;L$=q9+KE;75IB0^FFGn3s-vXq_ zLn8w{*595ihsX;7@D@!(ZX!YpgAj|PqsQGoFn7DX<=p(eh8iJ~mrtjNFBJ7o%9%CW zo@Z)rumHOxLbgEVhO-8B5+q}Vbq{1iq%&hD0!#xmCj#Rd1+HQcZE1Xbn+Wd-V4hMN zSBf$%vRG)qu%POm6a5_}oYLi7s|#-1{)l4>anI?t-jYq>A?BRS<$N^Bt8jv=29)3r z8TC+zOZYS=u8VBX(P@j-t7f#aB!&iesay#s@inefXTNXM%3383?FseY+*SDl(n3#= zHpMObvWU?GDVt{^tcZ}zFWP0l!IYa-0_Q7-C7N;P!I_&9>Q_})QY?nTBlLUZSvpP1 zln_maZTn6LB~-Q3Z)FzIAk8_CZYY$C0k3fYN+|uell~rzw;tg&Z$IHtS8#kKOVotJ zSb>PN?z6J568ElQ3r5cS-&8T7Rx{RBQno*@B_|6IOgkk#1Pk-r-W7FDog}L-TZ{&# zY8@gKai&mMMQc`N7BCJ;%2X9*P_0H^6Gn0amC3MsuhP0s7FwmoSd^W4!-YIUzm^1= z*Kco`MtSpPlyuJ++_MDv^7ousb^Q0(Jmrav>oT3G6FvE^g&yxTUn#~?n>EX(xOD`f zPgbw99`@c=LwthS9fh`2Z6@*>o}1bhs}1b(EAPq$JT4d7Y5a7p;pFAWr>IZ%U6iIm;)iKKq?MAA?v)%L6%k3@@2d-9_y0#5tZ2E6q-s94WJYY!BY{ zIYTI-iYbMB3wIn3<$UkXf>0;4;MP#ia*#{{=);jKkUpprWL?7=M#6Q^jhQCh2 zG|6|YS>!n8DlRAD*R>c*WVJ3~I%lRr*8#9q_d1Q|&?5W&c6c6pXRlp)H#z#g77qTY z*i{Ad;Huj&#>0*emDF~hK9l>A-Et5T3x*Uj$JNDVf6HYE7upljvYhV)KlHwPuj1hZ z$&o7#*6w+Jh4`P86ufz#}I3e80`h z`+m#>@xBmvir4cQWnhnD!ZJg|vF%|!EzCgX{<#V+H@opFNkqHq?MF#~;W*qTwg3JR z)Xf6NN);>44whu*Qptcep0T;Z3holJ;2zBUaglY(WD*aeT=KG&UcS&fn3^RI9|`0l zhTPjJhvNC652j{Pp)Q}+ExDd1*M4;|1|E#UlSp`C+w_PnLRSXS?rm$h$gP+P!XkX3 zEs#NY7;^Qx?{Lo>-*|eo>SBN8kLu=Ey)-aa*7B)KpW3FSfU~}`y*rbn>y+4RdV{LU zFnb=S8u;G`YuR43gfr^uKqn(SRk;}8vSs9*(<8m;?yvu67huVVxFazuV4w8kdGcQx z?b}9?ePmEJP&fyTQ29I0Xpc}tH$_Jk@UjD!P>8FugQ^c-nU_4j!XkF{T01)(O|XTH zg3o;e`=tdm;+Shuu~K<{wa@Bf=GUb}(Xh*`DM)G0G!ykjz;5Z{Erb?s^qX(Bs{lgx z=%N4L`ascs(h%tc1?N5je79XD( zrbdMz(iw8z z46ZcWNTIPg97}%N0(y#Fy#L?oE^RBt6-HWP(b!^h7-KpL`HrNMUIG8=f$OQS|D9Jc zP~DPu*ec14WWs@R0id!(ez@m)d0d|CgV*v^Zxlbh7$>FSEas4<(>fZP*G69P8CN{{ zzRkk7w5^lJ*(`!*X?@&GkfhH_u?7$887T7ON%FJJV_bZcPrRenc630n`S#~#`7WnZ{4`U ze`qBIgjO#64_c}4|DlzV**X6gtt`&V{9l76u{uqvq`slCDNm}V?LUKNa&vc2Z_)jM z!J+$oP~G@2WYA2$De!1~qIq=sMTZQ;RSHcmE)~wKu4M@Dqu=lgh%ImLNUra%Th4u$ zN1w0T{W>9b@Z*Ur-|M%hoBRvkU_Y3?e5`tGDX@~1-`8o|69_wBqgpL9`Z(h*DR#Zd z#0AO9bk)IGpvHwRQ*3b1=Xp@QJfon?^-G&w_LJoa4&T?Qvqc{mf`DTidF)~X9*0PvvKp(WRmMgi85^XS$pL^N*Ov-w$*Uq;4mOLZsY;5wTCgI~+ zzE>sZ>-RbLUXJjSCl#)BH99?dqrNTNP2uUk&Gd zk=wQ7Es9BX;GL0^?(h8gjMC}%_j@eeZrvdtX(pXWcM{G%iLUfrV4cICbDVie@fn+= zaJ5RhvO2Z%nTJ3l-^0@zC8;-ZMLu zt+RiiC`|9zBu^{o30OkBaw@RJ8(yx1bkYiB{e`5VHvdUXE>*BXLN-g$EhNH5?`Eo4 z{JU!ONw1h=%ra|}7WKs;q+`Of@BQR#RcZDo_|-~mUi@XIw3XZ3BH{vPDa=DITIxaf zvGIAvrUxt$;_l*tKCbATvwi#q_xa@C5A}4t_ZvQ%3_lk?|CQ_G z!{MdYiz7dFr*bamd2Wb7C?><%L&u3$w-7~*D`@FT7 z+5P9!`_JQli=?_H1U|c&$kDKW2%3@+mFj-Hp$K0aRle31JfogqkSWVW_2SE{7W<1O zmZu>BU+2a1r+Z!**H+w>v?Y~HTh!nT$tfq@Ycvk3E=EYCSb@w-7f36lZ-iq82 zf8rcL$us`(WaDnin=MJ-w=clAcN!Uv51YCf2CjCnj66QDRdP6em;ScnbgEtN4Y*rO zb?(p6P8=zH(;VONV1N3ef2|lB&l~8|X?aiexFwvD#&cl3>h$NEl((^GN<@_Z$kG1Y zM}=QDRo?zN{q&r_Tr|u2^Y7yyE_crUJ;|D!_%+Pz2!P0uPoaXbNHa$m`vBi{(&xCZ z8R$QXagS)eUcAH6gFcjiC=9j$Jo*n2Io3!`S%!@hGeVyi8rMP&&BkUNWl_pSJmy^M zO#Wl5jl4X574{<_1@WFtol^2d&_)^xiB~h(j%!z&yhkZ7+-31n9^+n{(!@+}A!EmN zE;!IKYSYy+K40m+ig8Kv^sV7qrhs1^MW>r(*0Sy(ub~1uDX(nQun#vq*U%V4@t|ta z6MA|ntb!o3RjuHw@p04MKop3@@Lr>Y(W3to24X-II*v95ca~?45axyJAVDOaKeCMh z$$|!qD2auo@;h*O@->Zy`65dJ1cVfU$HHh}7y-yopr>(AMS}rH-6h&VRxK17K;qE| zn-e4NkxRhh=q`A>f81|roSVgy^dH-T^u>E7qzVHCiq{@_;!D~S_awtrUPdtBD{Hn> zn4mfts2$-hYpTQFPxT0tCmF^%fTz@u!D53*;BrBu_~ppUKkS16h9o7|>vSZC?7jzvkcl z%O_2V*|)#;r1OB%rVpzh@H;PrxTSBq z9#K`|)#fTIFWH$JtAX#mCj^)U{#itZ;NhFErC3YYY&gF~6dNm8(-GDUC_l*ZAaP$q z^M|n=*68x*3YbFSU~oiBY4AP|DVp^XSS5}3VJ38yX|7ErE*4kCZIpsdC&wa)mb#5JxuQ{I&{xN0@*MwP3;Z@?$uxozx;LHTi zUfI{a*4FrTpELTGop1bKbj%1M8~(VFB|dt0?Hm9PHs|4OtAL*^6OseMvm(BFzpDFD z(0h968m(1CKxhat#oFw`%89v#*mpKGf?TSX84%H{E8A}^4kGciN8a#GKX0|uAeRDu z&bwl^!ICd8U{EN`-U468Ck!@@QixQM(gHKMQx4ckyB-`C1%Y9f6p>J&2&%SYap!_P z)?Aa?N+%ai7M}*l-9h|>&r9_Z-_opq-3xpj@JvBBE~&e0%b@KEyv56W{Pw5H(oYd& zS++N4^Bwq}@rr6Dt(gz@61d&aOHC9~7|*G%+px@QgZcGgpWk(mOUFO@|6~Dn=kJ7! z-dGY_mHE6{OYaYos+5;0cZA3xkpb&rr&(F{rMp_W`;|~$mfm2L&`AQS&R&j zeb&41=7alC<((B!`H!*Lz%LocgCJos+*r<{BZcpb_2$*v1;16j-}xBMEi&5Is67m8 zy6PQ^j=FMqudVISe{lFi`J16CR=IEeH{Fv!?#Gr6W2VLDZGFO{A6n`iQp6YvgAY;! z@rsU1+unsN5lC`4_fwNN4`Vn%FKa=MAMF%xX$&I;_soN03YHbez$poIaJOB01v2)Z zIYSacvEpyI6gtr-EO%DpqC9(PYS)f0F5#LH5~v7$R2m!xxTDmj=t%m z3tS9SFvr@Px?8}=9{l*2_y#=VE07BXg)TwbV|-s@#w7;~msN!VM?DvP*mQy4j_eU>>E5p`qE?y(Ng zgUGPv$oOa__Kqq9fyvfq1sy<@rjXC0d*PtJji<~HQrtc_n;e4JtiGPmEe0|Yb@eq{T8g(Z~3j%FfT`XpVZ znUe*72L>I(I?Y(n5{EzCpDyKSsHCtd2HbSZk4Ib5kqHDbFPc??(W9^^0&WV_X#_8%hX^sri;^5< z99bh>W3vVcO;MoF9PV}~F+s*=d{ojLsvDXvDytZ*Ra^jDiy|*rmXfi?6*_q}rN~F- zcR)DIsL4I@)W#x? zOZK*daP7>3B|%qGg*7eHEoU~ZCKCZ;K8la`0OZ-Yt4h7>hLA_1bw9hn&l3?80pRv( zF2Vb~4k~pu)bvOCZqAW~oT5?>lbU^Vvmg-y>X!NW(!P-HC zLWDjYj~551$xSgQc!L12(A$I4z@^T_gPuQVDB@}vNcO^rsb`e6o^bw!OA z?&qx{T9dFg2!h3*+NQ06GehWTP-rW4VF}Gr;`bHt8oZU>g1Qa5t(o~KfQKS!bVjQ z)Q;#_du<=Pkxn+1Z)<+xkTj5Cl6TvvFYqhC?{ zoi(T#B}QWE3?)JlTB8UAP06lA8N07jSM+Afd0>?&iv+F#RM0kqV5D`*pC4sB$4h!vUh!07WNoP6lL_iDbutU>nH0OW+9r!5Hvg9UyHOo16r&1jJtb2KHEW zPq!k!75MK^^PHN2DBxZN_mi@E{S|X)BK|~vr&o|C5gA|}T<6;!`Z#?SRuXcS*&rc+ z*#(Nt9t@uLnom7lOAcw?1MW#YO~?2!8R(tLgRQC6JGKw8>i#J2Bsw!YfA`Vk$ttlS zkeLVo?@2$^+H=G$Vffw_PSrRLXR8Ou;Sfjejf-fRW;5J<$(SKcqz?rER()^!k&t{Z zx^C#mKs@p(#kZo%G2>S@EX!FS9uBnP%13e*^Oe)y0HEi*Z~NH5=bCM~ZwdkrFv@_) z4Mmp_Z=T_2Wh8T^m>M(Oz_$o$=V=R$-pRSfkhqk|a$s^H2Zd%t5oQW|Y~JiFFe!j1FF^`xikFEJ0uOQdRJA&~&W?Ux_#EQD@;DrSX9b}@mN~wtoc9^f+$>2s4wQ0r z5{P}(0UA6U@|hB0yO7*Sm;_@YUY5MzR@=UpyfK|%a!b|5P}$Sof}T%5OYWbwJ(DLl zIA~10;P%XV?b9ags0Lg+i20nkE}&dB`LwOrI7`wL&PaFR*8Y&9CAzl(kj=X4AM1Mm zp&$hY%(3G&$ASz%ZEA%+TNli(#Eybw`sN$qfZlHX^#*X%$pS&>(4m5L#Gx(BFZvB3 zpw-7loSV?{k@f8h`|SHh8~-j))9wN3??qy4>emm}sWgybzUj2rsk0hg;#eYi2=3EM z_gOoTKM$X(6>ip}I(J9?=1nNrI{}Kz<&+u~TZyxsJGL8Q+0=jREe6uNY#)Q%&{7U? zVpn@7uTe%_^{$5$_$&$7X?W!H$0##)TSwf*;1g}Q-Sc+&9Ww@f)7v|XxGjyCWqSr1 zoCCx4irul01-B8ThXVukOaL4`WA<-%o3L|iHhAk3b(jN#i*;0g=U(URUV^~>5N2P~ zY5y^PU$A=rDQO?v+Fb5L=-~Y=(|4-!&92(fI{LjGd|F67BHbJA$OG!dm z=>M&}$*Q_btcEIY>NAAV{4E4Q(F!OFeZS$qEc8GIzW_mCgn$;3=o%dx9UPySoJt_g z4D&w}6o0n3R3ONt$a#3k;Km@|O<|C0~F1G;sdi+`C8QX2S5R_ooM+|D9zu zD8Ebccev=$tX1*uc_$Ys1?7Yqy%xyxByL2T=sA9$V>IV=MB#e{*$wp|q_)!jQH z1ZK3j^{=qG$fZD?4d*Y53nj?j%j1l+qNzAW7UuXGPTWu55`Im;dUj6#x!3ILfr5&O z@o5STD|(La7LgSpF`D7LzU}7AR%i0<+v7Pjf(YvPob=JospRjW17;x=j8q%`b25r^ z2IDH?w6x-xGWvAkt{@=XPwqCTieSzOYd6w+r-zMMMO@w zka!UqeHJji44q*eM_Hs-mDF$3C*>W++}7T9C`2n!5Fwdx(6IGJheBY;HL~-sfk!O$ zT*{lC*0>T_{fFwb=1>)r)>mf^Qy-H*h0tBhtc+Ogi~bm}=eIP46vOy((~jL{^~NEG z3vH+x9qjm`E_VFzc`O8$w>DpviwK%Lw`KUGe>>LV*38YV-p90u7Cdif>TNc-eaed3 z@=^?ndD5uGR}9%k)YcN)UtWmXnYQM1oqha#%bQoac-Erln~ufJ{+-p~Y`lxpuPW3_ zxvI%nIc1B7gvXQ`cCr1zk+qVxMLB|!=V!iF51CF%d`sA+7RE3Rx?25+>7>%>{n$ra z>o*oaI*m6Bc+zm=LOYJ{yne17F5_Vijd%%BBreyswP3-(Uej!y8yfVKIJ|wh>KK*t zL2AwZidxj|&Me#$YNv39sWTyQBEEUNGVLJZHQ}j5{vqdVy5npYyh363uWDm&R>1P> zPs)N~anx8Dx-X%$5#p!{q&B>W29_?OMAfRD#o? z|KKyhe8+5So7*_)-v#;(KOa%H$a?R=#%UF2L4GTJO`fN`6?CRo&q`gx>_>0bmF%kO zvPoyscD<|cRnq^oI(?RU&$~=5emw5=2mi1wn;HwmJB5z97XkKi)}IEH@6E(~DNOsY zm_!bps{7u_Z7y@;!d%fK=^X~6z*VQ<;n8sN0mGk~4sYEmM4YlRbsQvs8HUpu)^*sKo6`W>hIaM(3-jx=DvTPUbdN7-%e_!olecl;I$*mT zF|1f4pE)kL_k=^dacFJ4J>r&0URC5dx6#6^U|P?=c?0uPmygBllGfEvSKG?Az6IGA zN?pT0BeQOL2?eBJ-Ub@ZXzMd0o(4m%|RjDu^-7F{1y zw7#e)U+NXIZOS}l9p~QHQxxLvy68=tkX+bm)6Ny~*4p^?m{E=Eg~f1oYuoR?fA&~q z6~(j;*>>@bv02Ghoh7VCZQO&ghn+5%1=}06xOg#*#Duh&1n+M!YyBKzq+8qZ&Ly5+ zHhS>&(5`LuVMYa^nP3}R}NRTc96|w`@nSZmgV4#S2An#-st|- zod}Cf)uWNVX`k!t*3Y398si6bsp9`UuN_9Q=&E+`x4XCDWY}|Zwm&rc`V_mqJA5(S zCd7+)KOyG-=3Q~kzEqCw&38W=il3jSwEn)OH*v^1bI--zGr;z@#jCFc?7HH9y9@Oi zD>^EdYx5nH?YT`Bo|xBtu+@3=V8dzSaG>jeUg5MyGM$E8k|DGpRM*_lWZlK=9xrlV zv(U@s$;@%YGZy)mMrX+7cji z?Svn2T)Ag>-_Oh7qWGTB(&?H;vbo%sFKPb`jO0stANxg{2PSjOpt5#am1b6b5~!o9 zllgFIoO8PT>u)(nL(Wq|<9Hl;>`|CX+xZhakI%2RHx#_7c^7@TADyIqe0|>+X1lNE zVNj4EGXzL=mY@B$Ypj0bt}0!v{>h$V`JIvo)`F$guOjsKkwK31i$G56DYtq?5QW(n zCaH2bwoUyEcCPfE{CUQte%uq$r>d`vyk%G! z_$<;*;Vqf#UmBsDbowCL?{%IiJI*Ggr$#|iQl|$4z-3fnZ(2sJWGy{HQN$$VW6>xC78+*-9BZ4cDn>*1Iux3M84og53k!L;%@>Cs771}4$E>8F z1)IX4EI9Tin;D6K+}yhZ;^7$VHEYlT#&+X23!DQFxLyl`0)o(88;VVDgvZ$=TAw!9 zvM9I;m?e6Bw=vuip!j93R;!+Z3%TMMLWkEJ*$Zc-iZq2o**gH^8G?WSJ}k%!n2NYZ z|DuYXV8yrobQ%qbiSE<6rW0;ms83sR!$T~>(-Uylb|JgkD(whgfuK87lov7)N>Fm) zZlj-jOBZ?ks*64DcTs<8;@J?5vWon84aGGOr|SW*1Gpdet0Poe!IF!dsP?hCR^Cpjeh(5OD3`o(VMqX*0_9GbaY=onsWJa$ty7*L&(cV#$w)|6 zs%xt4c55NR5@F>#(&v=kls>c+IW?xasDqNhAw89|b+1KHJvX?jW5SIAD)-Yu2ZHq3 zV?nQ|FChu3J2xi~A>Y4e2KQxr7n6`vKF6ty{KpZcy9dZ%aIbaG^C~i`6M=s#X|RAS zf>;zBATW5vT~G8Vw{VXrlwj7)D^PU3wxR?6%xBs2OCsN?v;t=2?l38N-G@3+Fu+P` zGFl~D+6z!8ML)Y{d1u^`YtX0gm#={Sfw6^xXGT~3ve@z;t$^clsKr&0HE9Uox9@(98| z_DmCT;2aswoSOeZG{Kc4q+=Lq;^LkP%L3}wB zG*rV~$xd<7YW8AJOMtXDN!D_DO*Y$K!ryOK#1|KJc!5_3%;~}s;kxjU)GVokJ6O&b zp99cot5}5dA~!2c76rc=p6NAKKxwMrznaa2G=nwJBpfAdvS*rcLXQCBTS^U#cPC&$ z&dCx}>+E%Lz~9Ar0Z}C0$1RP4a|D3U?1K%eJdr9hmGX9r#Jruvu^3Nhdk+)6sGoE;6>_+A$*U<1_;LNiC4G#L60MtZ)?!VA3 z*p_cnzAV;YaeJRV;8R*CTUh>BwFX`QS*(K4SIuPa^f^-qg>KXDe&v>MMu`jok}bKl zD*QaqI0w^^DIVoU1wu*WSF6_MKeCy*GgTR4T z&8kvL6uI4e%PpPGw29B$iN^WK>?pW79_UL4fAC90GT0j_rDPNe*h{J z5H;H`ynu9$NXhLSzloNixPXcoJ^}e~;8U7>CQ{!s>+{D>;969vh{ zN$TS*&$?hZLgDYUp)xj&SvU&`Sk~{53)=!{4Qb5FjZ6IWcG${w2w&lZBh_==Ty6u)^nc0X_111ciZX6(uI=W$W>*z*A8q|T( zAtfM!4pc(LFBW3*-|s$-|9u?y<2~7ft3K!XdcR-g4i5|HFFh*1YI;8bieypAuC7hH zw^aOaBy-?T%$SXT3qLXU&)2flAD|$va<3IwnaF%brb48TYD@tp+}K-QfJZJHM(Dlt z=f?P;>W(7e-UlY4-zc(c_}fr5!*K$}BVNJ*q#;*t9%eA%`}TkEE$l*=@kDC=`}q$+ zs-cMiPagDdORE}DZ@LPL5~apo`N`0*icCc~{kFj1SH|j*!ITX{Ap!h!*5E{VOfFl6 zn`$@gpCz>jKx4oKp-ZiWtn4YV0B`~z2X;h01Gqk9r*^=EAw#*y03!*Y$Nw*1&yS4_ z_M7~C|16=&5}}6#UuXiBXrrdBbpIXjuUz*oBZ+-cgKo(8XctsLJlb&p*hy1WMl9N- zt~+L>kL5rC3aCec=wd+r_#1H=aj)ULpIQM)#$>DpRrcgHX&QwjR5NseociVD0l>WU zX2VDFYwcd~xG}v0zO_ti}m zDG&uL&0*P{-Zvlz@~(d6AR3*qxC3Fqm*)pPP2^P`uAGoLcdv&R{P|0^P4eu*zqBG6 zLojWwX4}GnruMST4wM}OJhR;BJpjJ91g4akYQ7}X?m#sVw@S=`EsKY5aG)xonknw) z@|A=`5XO&OD%;Aa-_Nm>RuL$pG6ZY_L_lh!q^W9{7>Q6JkJ$0wqCE!wW9)R9aisYb zUs6p3i2w&hNAfR-SzN7I2MWvbwagI0cuDH+y`U{}17$x36kY+ad1z(U85{3~>9DUg18@lP;f5yi z*|L|A(go_%1xzo&G8#a&bv7Qvt%{ixxP+CPJ(SZymXfDB&Oa3U_)cCCfC}N(f?s-F zPq$6|N#tx;e;;>`S0evb0*QZx47F$fE%4}LTxUggDxKx^m0-mAj9$DJh<%Yk<>C!j z3+q!QRr^RxX-j`)n*)}{sI9-O#Fq3=b6lneqL>LO{(F6~U5!pX9HGt9!^jk^G0Pz+ zzj9b!zt>Z58%Wt3j8A&(l?zMqMnS2&BafhZXXs%kDx zKGr^Wt$ykfX**_!cbnS2y8&)yOJ_n8M8V<<-%~5I6nAsyqJ4 z87emX6XEBL9~#irNB(H%Yyf4bG^Ii|^I}(Jrn(6vnT=Sa@CH)a(G2_oRBR=zee*6^ zgrL)ILSI_quKE&M`e)Nk){+a1|5gc@t?vcgIMnj`lQJ23idSCX+JANTnETaxjc2fd zh{CH9&Hjh|#-9^El1PbQ$Mz#}o$X8vp32{!GgoblGkE z@g#zz;_?$?zIVp}S{lETFuOILI}60IVtA)bSs^-I>pdTzBpu8j{Tr-&Y*GJf=;H!m zvFZKuAI(eX`w`{SX>(un8hyWLuw0oPoi;@bGcI;&0_~gi6MP+Utd4EHZJG_iMgi(X z*yFvIm!~5YF<`2Dij-2~o%Fo4 zPAJH(m{DDlq`)@Z*1*8in_X32d6t!#Q#?>KTC}*ZlDJIFn$0hNR<-^7#huK@6>lj8 zxtZDwjcuK^!}UX|is^-`%cAQG7JG{6JNH)V`~>+|p%e@KwD97f?cKf%F-?O-pPMdH zp&}}g1zH|VFAhjj*9!w$>g~_jG@0-q<~XRu>nKlH_ruAh~6i zxA;3saRS@S5ZP0;Hf5Xw{SwKH$4VA1-#RNx8Bra4-+uSkvYp#+ySlv${S*{)i;epDUK$}FMA8hE0ym_WBy&$XtxGl&Cq z44>CC(9jw*($g{Vsxv^ifl#gxx(fSUjo)r+qIpM-68uhcr|B%FbVIApEV;aQM`3E4 zhR>{ND92O*eFN89Q4R^DMOHl%LjTgHC^e01JT7HHh3iN=H~3h}ZB*#{?1&~26}&}p z?>ByKh4s60mz>LKKhv~zg(4B7v|(z~%hiR(-A3RyCgasW76h*sT#+n^k!>TFKU3Mc zvcDgECj;u|$lm!qz(UtX>TbtodPI(k!OYN9gG+$O8FGS=g@(gJa)9se$Czo97ahN6>Zh4IdX2@$sQiLq8W=_$q?FR4+{{k zgV(3SeEYTE)_ecW7)#Al4nm_*xflafNQ3X1dg>pvevkTgJwR)RPm?O8+dX`*!QmUls#V^(NtexXeXe@OWF)(&3fwnJ$7JrvCi zrureF2tZ%%Te}Szrpwz>GiY&(D>8X=B&uzAXV;%^%JS+3Y2zcQh_I=RI|AmnI|fik zJ?ea2;C={oSFLDY;<0Dw^Z3t;+*F&2*zj`Dxxn*U(`M%e>T#QrGB0lMI$46cxlU$1qTV~rMn?9O! z-e*`bpEo8$1xA|Vf8`^0NeM7^Y|#LmavRA&runwgyY)9)NDx;o=g7fDAzci-;Q0c# zrq4fqM3*EiaLpx5TF{$xFWl_y$|Uzr0;39m4+|Y<{>MYya72o9vzrH3xhq;(--~-) zN4?Nf9*!qi%45G&1jpCPFOag#vg_{h9-bnZRHwsnAI!K=MBt6tIk+p+6siQ6n)%EC z6Yc^atKl3Fc`_tLZezwodHnP!GcmVKv;+1|k-ag%TsqkSmB4F^jle+8Q9sas^AN-& z!Z=~kz>&R_F=+sRGVqo#vY``B7RNH?zHlfM?JDndc-^dRpWnbIprpRogq?A`;E%6O z7He`NfZN0DGQ0-KToPYGz-Th-AGl6m{1+&%BM_^kMxcEvLrqJpP3=Wl{Jbd}quz5( zq}qQ{E%NvlB{Z2%3*C?3tmjpCOwhb8lSyaP9&f$1m8f=1_)0Pm9$Y2!|J77r?XJU! zshG*cT^Y;s>Wmln^gdc{cv>VpMh!<2Vs>{Ikx2JiPGf%NM3h2Qus2cr`vD3-Q+w}7 zbPAYqE4BcA|JZR^*QE(n85NUOSq{OJ=5)5R1G&FkVO*o^DICejB_oywnqef__(7=N z$x$axmyF5TyIcq&2%w-Gitgv(zy&Ro@<%UMONWLH1{2%D6q++m1szfX9QD2CD>~6A z!D0zK#WqIGT}^T&CD3T8cs63mFr;0Lc@DAR?~Ow>Cc2dhi{3)D>gU1s&s$-;gxe0a zUe`m8Z5O1vIbn{8`lWl$-F#xSf@K(+Jo{3J3IU>nG&8@~It+K3@|`_=kC`{6zyHZ1 z*X3^oh85iAa<{mlvz@}M7P#fYfP@5n4WOG(czDemc`d6}8Y0n^(3)>@H%1htXYgU- zK;tB;f^ipoc{u%z>zEEMhbi6@>lNtg?FdnI25|0r*EP~d@EkBYpJMUaIOaPV$uzeL;u{n^tdwof?v6|N@6vrCGwU#Vs8OiqN}nMlV0)yww6 zBz>6cM+W(d-55GNK>H`$Nc1+l5bCx!5?2qS4v{s_;p(}P%xwK>f&`^-^`@4!AJK2|(=9UI6vsA6! zE4j}9q(ImSX^g|!_71D0f%cH^SU84IO^DE>SyGv8oEB%nVMMX{{1*g!lgu6}mK!$8 zy-!7XIUKE5M>Cy>#*?wM2funEsNb*T>9gka<^D&PgfSd9ykm`e zfX9MDah#gHX4;91Cau!0#y@A*MKa{<9APLfoZ*89Nmr*>AHmWYTz3xF{9u?;PxN&$ z!u*&Ty7(c6pC-YRE3V%?SSqu4UZ_Z^#B{yFN1Q-O5>z6@{Vn8&q7aG(U%oxL)%g?4 zg4b%J_q~{I9bS2X^q3CUzIzb5N)t_x_sTT6>NF~wveO}-!|zg5^berk2nlV_iwEC$ z$pPly66n4~aH^vq^W(Z5aaR}8x7v%QwEaK9k>uHNydRZ?*^|AoSO0zr=}mn4QQP8j zkaSO*`033AIGRM{z86_1pV_W|_6IrLM2_r}(c`51COERw8fNfvCqeegn$B5G1B#*R zyU;NbXQN70t#e8af?`{N+T#KfzrCVa45#x-|}19-j|eHtTN0y_{5uRdlH+ z)&EHn;Gmu$PoqKZ*oP+oFB#N4RnU4G1}=Ji@lCWqgAYx0^W6;(8*nY`EDy*aHyHrS z0uCn}s3;6`7mS-koqsKYx?Lu((yVp9y18Dqjw)qg?1lC=0a@IZ%|zer2aMEkZcjc^ z0dQ@=UbOQ|vEVS+`OMxb77<%&`W791#}qJV3dy0CBA`KDs)L0RBJO^b+b2W8Oets* z6r#>Tj)B`KRbL|>C=Osif|64aX;3i!`Z> zKI4E>G6c|>BPmwYIzTmj*H7@gGuxa3TI2h*gr0D{!2(Tfz%_N1|IJg>t?xN}gD@&V z!h;93F;Eo(rwBFzjgV2mMzA>1P`d!BSzQ+DL=X$jX3yEL@x2_HWb2-dTqSa%&A+0< z#mx(rINT>E%p0HjKQM8KTcZDu7#Gx%&}5>rS_d#uir`%U3jk`o0ay@V{7(Sd59q7& z@Jyqqo*6b0Xy}v{Tc99>yz~_Zl{n4CO`~rb=wc^R#v04`*`Ui29O3zKV+{#Dr`Zco zfq^1>Ia9Z68!D$oI2()JjzAeCG9s|7sx?kI8s&!ihJH!ecYQp1#?Gz{5AY3%ar!LG8X^XaqOuF8aaSGv^=O@@)!@{@ zk&i@SEe>jmg^^L0&2TUSs$T>N?aYr$(!BKiO@QHQJ*WCDwz>ds0f6 z6!)ger6ij04b9DDO_O)GG5CF(Sie~U~p6vaSYBJiq%+<;8E zro}asqUIGzB!3M%f1Z=1@a%UPkBA#S3GP~wsx|xWq80V*TrhQX(&AxNqfB*#DDdzk zBk?m-Z?P`RxFjb69?_Tg837w;snh1q3y8{PXfE%9oT2Qnapv3?S)E}8P4yO;uzR96 z`A~#UGV%@RSZ1{6bq!=$c>EVXz8Z*YEjiuGxv|2AU2`2-(Vul7$-HO>8n-sp;-Q%q zO%?$#U|rApJ9S?YYduJPZU1j5Or1B;;ml(X0S*jxE=ckykE#Hx5bl|JD;p(a~a0Kvf>~r+b&v?Z}-D3ks-C7dBPm1qu&<$J@ z3SPV2zgF(+1w}X~vdvPLAy;-!ctuQ6tWMEe6IG2dP%Si!_4oai0N5+dbXJl|U=*!}_X0U_$rom8g##GW&;U80?{6kdpNwK8 zc6;@PFGM&za>`htfM`neSCyWuq5iX#D;#)Gg$$*w(7}+z2TTSK)J6kLz5!3HiemWA z;lOeL%$gycmC}<2Jq!Iy<1U(ZIfo2t-~_*n-`kZL5?jk)L4urJg%4(+3%(#123*=p z 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�O0XWD>j#X5lc-QmiCI=D# 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 literal 0 HcmV?d00001 diff --git "a/image/\347\216\260\344\273\243C++\345\271\266\345\217\221\347\274\226\347\250\213\346\225\231\347\250\213.png" "b/image/\347\216\260\344\273\243C++\345\271\266\345\217\221\347\274\226\347\250\213\346\225\231\347\250\213.png" new file mode 100644 index 0000000000000000000000000000000000000000..174295c803a225f0b6d2e0fabeceb36c28df7f69 GIT binary patch literal 42822 zcmeEubx@US`>r4$As`_rT~g8|%>wBTN$F5PLb^*qx*O>Z0qG9uknTphQ@YNxjQyS8 zK67Ty-)Fv=HG40WdEY1QysqoUUtU%W6&Vlt-o1OM65_&&_wL;fyLS&J1rY)K4UG@q zB={eUjiQ*)y`p}C&3pGq?nwv>zH-#wNpd<@8M(Y$K*htRSqUS3=@ashuv`9+Hgy(B(x+-1FrffPPmIXPP?m*^vg!8n9q-N05yziHVtj&|+#)iN z>~;emL~K;3#EFTLphSmG~QiZ^eLtDS1H`j4YhGa;V%S^N9JP@5RDm zR;+f*_jp#m!%Qo-a@!jP%&_=2gW87SGk+|qr3fj8!@#hMf5JW;qC7;S*+2mkF|aw! zmneWdgcEkPCmN-oM{T0a{l@wG=NF7eZjXN0++M6_NI!MLejtVa!lDh|vffL*?2Qvo zq=p!G1{uk!doDp%;j27F6^ONi?cq{;_4!iZrZ@E@n?B8-Y;_>x2|N6P_6>zs3r6)` z?KYF+fo>FUqiXfIaMPPZLyac)8}S$A7IU?6JPr(7V+A?mvKWys=4`Pn>JLTVeO7oB z=H6z|9daaIaPoEJZ=PFu27!sk#b9lVZl=je{Gd@`+Fp8*?d?Fa<4#HE7jx78nu>Q5>94CSl9%zDx?k~T@Aia`^X%7SscP9p zFXYFC{&nVN&wKEhFm!K%alP)Y*9DBnzo^&a-87BI;6M@rFVtX}&1?zaRuZ{v2J@Al zw=WZ`FHQ}xg%VFyA={9>NcB^DJ;HHL10VLg++9;~JM8W7N(avdx*oRUHY9Z!^~U6tq?7(JQEEyM2HM%C zMaET;yU6elFz15vJ#8_r6okV$SHhEI`mkd>rK>JlP#AxPdj@QS-u*<5jrPUVyq(cO+E?cz~1B zdM^pAFz=TD$Nt#Uc^AuBm;DCgp>+73=;yJFbz=)6lL4Ni$Zq;$PgYw%ILGVfzcM3m z*(u4@s^hSqwGvy!yEk<+|5fk4N|C02Cy~oToAv$^p&X|0U#?8?8JKEmXH~9?7>s&- zE3pX7W{Xq5Wz)@?PfnPc?{uC#EXy1^hCQFl>8nH7&w;@^U%D|C-ES`Q0^jd4cfT!G zE!Ljbn*4-{uOF*rZ`Bz1x|VM#cLOAbvk-*db1Mgy1;4|6XfS>x2X=i(@S<}10jP9| z!!Q$`1;AQQmzx+bG&XFdYxA5MbZ^QV!_b(A%afJzs5Lm-<*+K-4^uo0a5N77yb+#} zhj}X;La^U>wU>X~i%{!`;Jz0BwmxI5>`h-Ob9?FUh>t-Ifq7a2qi6FI1lX;TpwC&k zNL?Ml_%3ytSG!dyv^`G8Yd?Zm`{gUthbKQqk5x)qWdIL~)F_%blU1=Wv5P(SbV$ z33w<~@cufF8RpvZm$LqV9ofvU)wh@1L**t)>w0pqs46i+)~_79Bc4@XZWTNg62YP~ zhh8592J8{%9(Tb*UvP_@i5Y5AQE-`ogM=-b_7B?Mbq{Fz*!i*brov zG}poLy#yzg=-&mRvLNrOYyumNF>6wEq+>h?B#?&xOO$Nk+cQJ>$w_M4>#2>))4>eFDiQ}g6v^j-1(ne4EGeoXgcBw!l1w@4X z{me$PgKK?NkmN{z$Y)E(FJYRH%p~zRoVKJAyl;l-Z?j4L1W!l7GrYv-xY+D9UqpfR z+e7NX#yZ~BPiowUO$gNaXsTQaV*Z4dLsC_Bw4=H71(L7`Bw#UKz=JFQ1HZan13 zSz6x(k!Bg{j4*N9>>_;JLW%fZ6jVxR{qr~78Db4`GhA-wq&Ro(;LvLrqDmLY%zBj*Auk|s z+wb@dWr!7YGP!~uXwb@IQXGZPWC}|v_|fWX0Gymz2vhlx`i#(M!WlRL%a+_Mt5kL9 zRM}e>y;qvtp8|NODt{SDIs}|4az-> z?{$=mm0qURaz`47B(!dhAVm*-)q6?Rw>MK&yq;Dr8jRPtBc{xoaN4T+)*wnkcm-^1 zsPJ{wlZphHXV5(@0gqRAHRvZ=2Q9aHHBAII42>1sGYh@G1a@V;#^ZjT`MFNz0+qb! zzBkg_RV1fcfzDQJkj$=O{fOcp=ULQa$7M2Y;@H4OG9PHky<9 zu$Y4yY&H*uT^~h~kr2C|>y^KokTqIokU3mW@i@g9fBESl^8@^^-s6^}4`FERR(Nio zfDsC=WFap zg!$NYYDB1@3C7bgp3o&el|-|fRYs5QiLCUiI`0CEfd=!L$}FX%bbL4aI5=^VE%3+; zejziR4e;fM4@cMmDm1LI-+@T8@EYz?!U{L6$ey_Adi07HU5x>*o)7RSU(7FV@lP&L!@kOu|K|KqIx(kB3sQSfPs_v1`sRDH(|Xcd zKAda>S*}%V>15ug6{ce>^tD>ILf&CqC!~xX--*UM7y%2 zG+rM`4PcA_kNOm=?TmEfr9WTqG&31nQVjBF2-n&Z0;iR5&W+TM_3|_c+CDe7;vqy; zCL$Z?_7_HK--Rf7&zagVCUO0Fr5;#&6N zWP2jRr6m%=BW3fn*Fqjc+9{L+tMA$|bNN^~N%y zzbfXu3XeqU`}{(6D*AK;5owpS-*$!HLNj9gcw}YjDK1C$E`^km{&zXpAD}#Y=*#-f z9|NWk7YE+Zba0g@l8*BxlXD-!e|x^n30j^T+Y#!}ore;<-9lL}7F@A>iJWuoP6Td# zMmi8E*w3X$tq|!4;?REu={8;PBSJFOsKCvp+0Udmv3A$kE_-ibF$Ac*;Kar}R29@90kMOTa{N=ZmZkU{?$?e#H%B_BRV40<5xcRW@t^C;t#lXZ zC2`yFk~UrK)w!IZnEM2;J@NiwrySzS4_e{mWfG($OwrmOpYWM!PE7#GkP-sZ9WMx*g=pOH6*%-uNUiNBOdt5n@e=)bR4gi4 z;elkn;AAdqI!91x9tvr76{QidN8c5w6mAhR+wG2u96PwSKUQ@Vb2M5X5y33ZYN>v7 z2G0ocpXJ+%H+=~VwVzTvZl`7xq8DC|Mvn7PAUE9!l~MKzh2Gny0>w)|4Ca9dWZNgJ z=3vwmEA;DS0&FAeSmA5jQ2tA5G@c!%1tVz|Q9T%^yPGqYA1~MpMm9HneIFmg$L(hu8%zf-GY)>4^pta@1W*5FvMeji9i%z`PQqTCgNMr?6 z(C?T0sYLl1GRKd(k()ep?(Z{UsdIZvjZo+cdh&$f9H_Cy!B3 zS-8!{WMmyFra?yOLc*eSOn$*0;T`%YEyJ$z#6U>zoY<68)LhN;;(8Vx z*2KF8%Z0{y+00WnU6XT=0ek})8=o90koQPz6Jq)-c%*Sf8l{POoXX79jo9a^vaPek94kbH-esGU zB^miz<^~%3Vbs^R6;pB3l`?5p}FQ%a0irL7B<<}>1i+qRo@8%YlHg1}xtNkc0Wm0wvt zPwI1hQvh4SBpL%wI|_~fxP&cYZ1%DQumcg8cug1@hlbn3P>)=c55rAQVo|!J`%PAE z(+K#Y>U^i`#138Yno&rtKy*;!$_{6u+nuRWy_-DvlcOHV)hI|63C)+;_DlnaKf@XDb6-rmHh)UjD9fUojZUzEGpn2QWLOt}pt#HB;I&mT^?{Bi0`GPiZ zpJ=>ThZrCTr~1T_br~y(l>6w+LQkdF-fzBD#{n~AYhXkDRBVY0h zL3K1c^KD$ZblVx!_jz-@V`i_XW1xX4!iq%eyWBJd3^aV>VVjUEfS2AvUmBt$jk93I z+2Xt${K7f#6!|eNXUf?WPS`UCbfXFR`q;h78H-syTQ)MvkW|SRdV{HgPdLotYQ?4| zbUX;x6K!NOL#=D4eOy6B(@>qFAfvJW2w5DtE4SaOG7uU9AN&r10`L?hXPp*xyBwN! zW6F(d>HvUv5@I9yp{Lw4s?HWy+mRH&VcUT;tW#KO^^VMjJ0CN-Y}OndPT7*{^(fJyxjls+x*-xgv}rk=EeKk`|5Iun%!Ls-_p`X$`1y>u%9J1p>2F})FP$Z|9aT)-be3xhYp#V~3 zqGF~eU9W1iH7MU2({_}JXMrc=wne;|*UNUVKHADV$C6CUgBA!NMgb4`q_7~&2~w_= zsL_!TS}lIU0K;987-X9;{f1y+@rGGqPO6nY@RTa|N`%!5z$DJ5b76X9;5db@E*6Se~ zjJhA35D93cVGUI<7-2OSJpfj`J6*9cUWg9`Sl?j^n?ER(7gHViT1rn+!FhofMfRQI z?3lxHJ_r?`W3iyPu?3Wvfq6X%Bvtbtcy%Q>^XbmfDBuB0jly|t_bToMr zUTKiHpa1Zk??gl5B0YS}E+jnrz7@6l`lwfV*~cA}BO4RN#GszSK_3*EmMmPa7`LJ8 zZ-vBI5%E>>bwe+Sw{{1=+*@9aI+Bt^;BtdJ(Pgiu5qAZ^wm!VI338Cy_x+gT1n3#b z%>s*v0;g^#`!f`e0ju<>mv?V;CASRRD$tbK7mHv3_L^3r-nN@5wgzq5CXF z640elZmdB1d3~&qJyyzowmYJV$wnxU80hf9_0;oYhlj zdPcc~0`Tt<9-HxET|*J;8g~GGRgG4}7y#Rbauvw;{eZWxSyK1C9m$q?!eWTn=7p(L zjwJtcBN$zMt0eOo<{$+GCQl-=l1z-mB5;SAKrfmwB<-bdx_*0r%JKy$5p+j$6{>ei zdtGN}GCfB%a?kg^ga*~XW#SY__l1=JEKw8DYpTx;A?Gdr`5;e z4Ox+EMF}ZRPvQj;2OkwK$am*Y6zhaGx?Sma1U-e(Xd}bsb58dKmvs~?0c!=I%%>CK z26b+LY+=ISW^PO~XZr9d_}?c&|z6=Y~HKup5&X1?mZK z$lyFn-|wi~Ac6z#gU^idLn&Px%jfCBP$6B_U+;R8@L<!^fp=gWqtKlBuX82 z7(?##ROZGI79Vh>VGETqHY99ddWJtH%hnzt8Z$V)G-gO&6ke~G&~DZ9C44hCN3xUy zY&<=Xp#^YCL7?|nJJV@}Jo6CUkrEIXBBZ0 zR}cn%u)Yl@1->(jW8diF&$C;OrS13wp1}3s+jz!LfXn|lUk-gyn(<8jLqMdG9N%Mf z-h+Fmvo>-W_H{i3<-|qPpmbKB#x?YvR&FZaRfL#gRaA)$Wl%YHDTZdX6(Kc1dp7+%?cEkK{0h9`|fv8f^|2CZb@wAU0fPAH&Rk)7@VC=8WBh*3cJq)@=!5c9=ZE z=Sm?c4*TUr1&TKlgD%Myd@u_#mp^vcbQ&)XqxKH{PGk%~G+w0tU8CrJYzt1frvSLZ zTTW(GX{1E=%gtPcj86*Np?s%mKR1T%Kc;=fM61eu3;?H)&la`aC@Xs}B&3_DQd}{~ znkBQhi|WuY&ju=GF1+VJXKFR?w0>c3G4A?qqDZ95V(zQ%H(2u5U~z&X!=T^)_`IkZ z)}S*)1p87CZl0uUjd18}-Ua;#U#r42S`Z~YWz5G@v&w?d`E&SRECJ}&0xE)M z5B)N8f07gLlX!T5mTwRc$Rr|F&m&(ctO!BYu6FYuihl?OA@!H*#V@81)Wy69$AUzx zYd??(ki@{xo^-Z|q0~r>SYq7P`&K_%e2ix*cZol6b;DZER$Fb172x(ng-`fuUHsJ%c|tu^7>xhIndm*0OagYvd`AY?-;3y2o@iBxXg&p( z%Jm#n=wAAd!xESu{et`~7v>!;L_{3pXW?&FBIS6+m`Ytf%PMU89^N~re&5GFp}R4d zmaA5h9y(i7b`21>YS91QPS#X#Ji)lHF%T9phqM((OD2vy|M2foqTIIX-WMk!0p)_{ zq8eQdTse-1)r?ovaxAzc*8Ep_`s~%EgAKctGw;WgRiDoI2OJ#rrmr+~MkEDG3Isi9 z7V`=r)+_JWlsUDUGip8RwjYX{*wOCQ=gbIpEK!B@g8RL-8=qrj z%)^r`R25s3jjaZZeAC6`euiZc^)jvTZ-1vEFB#xHq#?FDl`< ziVPFEId33Asj%f6NSu)unWkwjo=#4viegstZUzvVxGxhNKNodS&@58QCT=)goJ4j- zzzz@a>LnY3XfAzvUg`jYh+P1D7QVRYmK$W}N1m?b^|5Q1UI3nA036asaL3OL1R@zo zD)>1N>nXU0hit`_tv__T762wXbpZ#(2U<0^93phF)I0Sih&OwK6F{P0qelkSE#2p& z>fzLi=_q>a=J>bCNJxD0Wp8A*nUet_t^u5&OE$_|mBTV)YL5?R1Z`zwD8uT94{kc( zg}gdy3`wW@2nF1EFMnL6a+EE%j&-Ym)8;Gsjt3^4Qff5x&AO?RS) zL4B~rR4F{USV&v6s&;&thr*Uvs#lj%S8*h1lN}?V8m;LVBsPKQLJTo85jlel@zWss9 zRHq*@sga6@L*xyIc7z~ zsqv^Yj*pEZ_2eit(le@kMnR0wNW6!^CA(b#+=7W^#sL2noh;8Tn@->i^+~HmRB3Gg zs$o|-l(fXTxjZ?x&xnZ7bkYx=u`r*jwIl7E-X1Ghe`jnIdj|jy{}Tn(LI*^63i!-o zVpP`fe<-vd4rsro375HcBNiDRT(<3-H~+0CRu?fP_lLE$E3e+^$a5D$U~awNyK59rpJK-z|X9A6($K{m+{Z zLqEZblTd)5M(Xv3{g4#8*FewFt>R6@PC-b3xG5l+ivVpMM94GlfEy?XG36e{_{z~A z>xwSj^;C;<*#Gl{1`@i}Z)u3S1)Q7}_g4Oibe3nP=fm4TJqgVBQlR0b*U<Z2?L<9TA#j6#Bh?% z?o_?8HwLG=F;m6(=6l?aD)HQlUu`0GSemS+iYP1s@Oo5T=66<5*c7ZDaO_W(7WJEM zPEp+6FO!gb6rw?ZQNIi^mRH%dR=|Z9ynJip%Bt#S#nnN}bGFo1t(YY#cwj_Ner5?0 z-DH=$+2C)3$iIDW90Z3A2pHOy%sj(CkFV8Oyog5v^%;$b8%*A&tAxF?QKu@Lm|{c$ zVKo%c3@qS$zt}9E5y3=wlqSf-2OzR}zQJ6|LI?3tk2}2ss$M4QGBivksM4Z8=ozLg zz_uPgfXS;+!ZDPThpgq`oWN(QoX4{HQ_O$F9w;TVH`~7#lT5#qR}MI&a8$S9KQQ&A zQLNUHob5*fD?gvS6Ey$J{RQ1g*tgGmn>WJuH{c}aKW=oE{3@*DCvkfr4GuRe012`GGRB|;jzv<&hHq%7k~Tq z-9e(^(?mk42u~?sJPez|_H;-99|j_k{hD==S#UfhV&HfPVb?$x-rA0< z^KfcPT5{SXC+Vy0rXrNd*wVTL8I0tNu6^cR)UYSa{r3RnN|%hL&F{mM`(pj}wZ54s z7l5VHZ?Dh|9(J)j?D_H$?mM`Q1XcroZ>&LQJ)j{0RC1m6;3;4%nshVbO{^%yp2%@; zQfzZ%@i}YYBO62BojpTC>9YOu-7~k62IRvgL4Gqo-wBFms>JVv<>@u69|3+TIOt{k zOLV@`Ko2P2c|r z{R5)7RRF1&VM{B^-3C6QF!XBUaNeKwNW%z9YA0}3yK9CATFRGLe!%A z2ZAOD{mIqprH1~v3pU_dw@wUMHhSViMxPOX5*7xc6yB&t!ve!LKa6UC0FJfVi@RB` z+pKhjgSJ#$@MGPO1L|xBvI*4selV{5>0S!KaSp*GebclP^yX0^(?(^9Nz~x zrbn1ngK^lE5kTIoN?+=-)E8Zu4CCz9w^NW*>Zl73S6p%@_bq8HP;R3XNxWv6%Ap?M9xzjGbV-_x8x)Dn0R0OF5*ut+VXf1$!KCMuFf?D-mjweF zfW8I~fa}V{9aPDVEmw2V($=B!A)-BdD__*hMz`rqV5KwO<-`bcbg-P|DgYEdn0H)81tmkzMUldz`F2W@3IoDg&JJfF%yO9*1kFH_jkpo6 zWq%@9^-{p|M8vOv>wg*I67yV@p=@&ls2#+qr`83%V71;NEx?zIehu`DtZN}#VpEj2 zEYWd0i9Wl+SZC7^69Pb=kfp=mSkkxQ`jwZxK+?Dz9DdFJ;U~G9!)sn)-zf`>8>>K+ z{1Y^!%b?No2H|!Dbx|XVNi@t!pctfh3x^a%23!*vS>=OK?@g9OBqcoip%_=q87HWj z*xrqQpEy+CMn-)Ir$x{$n}0x~(|B!P;U5OIG17iXHr#83xua5?49|zOgQX>7_K9R- zVj|TNh@m7BaD|9W{-k+Ucc)$th#)z#Nr^;v-$&)9qOY%y2M&9l7dzISL5qM}dhpE9 zoueTM{dOqL0-W%OpMMtw`ZR%;^KNHapq>=%jXp6#9|Z(9#{Iq zIeJHfNrg&s=pF)8LK-F2V7T&4K5Nn`R+&wG04>zFOHQ-Fc7;v(hf`0?=j)$J#WI|D zXSQ9Vus+W4jN-9^BD?^*&H1FkYWr~$O?+V^R5&wyY0 z0X$_f>?In~v`De$V0(C5Nfb}IyVB+PJOEB#^2}=l!76qvgDS2QXk+#qjE~l^-f}z4 z+2JCf5yZW)Y!bYyha+eW3Kioef27YYgfl$jvH+}2NXqXeN!a-RU64G4 z(u8da_wlbrqr-1q*eaNqP0MAsVm_TmDX}}1BTLg+HB~N!Kg_^_gJxr?OEgj9s~rua zYsE|9C_}xGjtKh?ETvCzKbJ1myt40?ArxE9S6Y5z5J@RhUl)ZZB;z98MqV)MI|~XD zvq7r-FMc;@gxqa=8>Y^WKv0>sp%01lrd#GTHM3!c!qcA=-Vg^vBU}(IeYE=Cfy72A ziAl33%oBds>PYxaATlMDWt#^~!3U%+kw6@$GzGJWo%g(V*T?<(`ZxuiwpKyP2Dpm# zkEFU{0m3mYjbFS20+T=JIyGi!Oq$0`V8%p08SVga-Jwvf-!TE@FO{bk6w(b^tNyAC zPeM|MrB!Dy(iuY7upBR#WNysHM?WfUUV|O_Y~TGcK%GYEH31H4#AY@*h+R^A-A+pa zA2P1h8j&h+eeiPMp~h^AMdw=TZO^J>cU!8f<0HAI()-0pEAwU7?(7bh6*C*t$+N{o zT-Fp&@!Ev)5dSY(nJ2W>LUE+S^MJK(Q(B7e7C7XtUJl_AO;-YaWv$gDs%obSyx%N2 zwl6QA^Us5GW4~&W&N8-T)Y?f2Nx5WwoG@sEkq9x_In8pC3 zAVyL+nCl8ahj2{5S|i?0N4C0GHLJ8YRuGF)UM}%VCXx!~6BIEhW!il`ci#As#~6fg zQI^NOp|ou)Y^)wQ!yl0Ukkq>;0<^s{`G-lWaLa(myXs8J6hi7!lI3cDZ8)B<-0LvI zYGhjzNpbSH%o96Yz+q2wv_N&hG)NK`ZR_UMaYk#c-FAIlH?*EGU691Hxp{3r{vM_E z$jfwVG*7g@gf1Tl&wq(|p><@;J#}7wxVGiA9bG@fDS(2#3^jQp)Ki=zHYFI{ylAb% zqNFJt$z8VEw<6ml4_gYnwi;A^g-Q2KK1p`B6~@759zcB zIGa~SDE~AH5krX1N{B%`3(IOoO55vP0(k6!@Tmw#!N-S_KpOe>re_VhAjRiu4Tz8Y zSE)M5v@-Q^!;VVUK)`Axa@k1>P~Ge5W|rd;-Fh+ihaOT$6M}CNDP6O1+NrV40y2?L zvva&a*YjnDQ29Pf@)E`cz+MAPv8EV)n=MpE#YK-P2Js#PO7Kvdey#^sJ7wsA5x}kE z?zfdmopaU0CEYG}sr*Ctp<1BrOdlY_ceeA^}LI!|niX=c(91HCPIvEIDU+199} zF{XCeC&d0A`mJWH@j1*q2`239QbsG?=;VGGNLUgy6^Jb%b`>QNYzFmO7-YkQk;hcc z+2a@0ZsqUZ5{w^KYVQ3+c}4e+#2ULWXCJ$?#?EK1VV0bYlzZa=Q*OZmjuFbP-^yFNrx z=ffw7L!LCSpgE=J!^>Ws+a=u3`>yV-d|eIP7kxXRC~Gu-+j|aLXQzOsmYx#6T-<}m8Pmg7yBH9&0%H2S@)SzsEroiQ;e!jL^a{-Z8(AaJ(#($Li| zbdA;l9M*&dMhKt|raJrx)T0R{YS34m-zra&!4`lPLmk%%5B8|xY`ztQ^$@W63)t+6 z&nwgS3v55Zvan}jKDteKS7e1bGbq>WRHH-1mb%bM*c2=B)Qp*I%-x+87`>0=+#)Cy0BIcKi?OORY$>L>tD zHC@C#)gInFjhVyp<=(RUUYrSH7buUMI~7(r(^E26Wsbp{+Jaxq`vDlYU#`OI$hc2n zLd^WWU4Lqr-z`uWVfzx=#|hHhsjt2abaY7)@VK@2VQclrUb;2lM+SO|QvyMeDXus~ zvG`VNIMp`ZKLSP;fO=CJ5KILs!nL`i&8k{Io^C;?rpt%Q-56sM{a&i;8cFKyac6Iz zl@*XXvBPDW$lDhJrK{Z6KMZsq(;A%=OwHp^L^})~JZ*VaL0k-)&hd72*=`DAB#;+# z759OPW}Q!N1$$qyYP^7cH1cNy@rha-K>PShk-B2=U%D-4Dp%HL-_QIZd# zlG42dG{1sTQRa3cKpj_vA(|0>-5`%U9$KPvtvnj=59_eZF}z!)@bO+!tFg{nr`rT$ zL+Qpry>NOwP>p1B1VA*OL2yDDU}PTPWj9C@E4cxJobQL)G>xo@3;pZLpL?tRi(}dw ztMBTFF;u5Nfn%*}kv#7TSG0OX_HDWyV;JD&dq@oc<{CQQ$O~_&?G**&t8w>vH(xt7 zXBu;oSSc%G=X*=g+>NA%cQfYTtvs~>kVd+8gEQbN5THcTzF!joeGzDuJ1TpaZ7^2I zz6;!4+w7-sHfU6uJzaSz-MFq{c<(FeZ?%3tIBaFBVYMhkY_ddOzmf@Ump&9ue)sG1 zdQL-!U0^(?-imRZ$|I=9%U0}4RBZ5u+TsCEIn1Zwrcm+uoXgY4c4ZVG76Zb2Tiu;e zTJ}@zG%n`L#2(irxT-3`SiijhI_Usf6!kDQSiMijOkCNt%|>Dnd$tv|#PPj^O-O*F zE0`qU^<~LEi(aB7G3v|&%!ngUKg(D>UCr_Q9t36L-K{6NcFW$r8n;KW}A9M7{@_ z27Knn>o`khLIf??v{M0MCRL7dd|(IxdCUiL^2zQ_0Z$Aj-p#MYIv2}0B8v9!EY1mk z<)3K};C-1OAXrmUBtU^~f1sJmb!3m8d@~?$#|vewz-Sr#nu<6^9w|}QGNw&22$fz> zvC~r>gQ8qYFwxrV(mlV+sMRO*lnhc68$~Y!I3mW3!2W00?lp*k)*KYc%~FgF-Weg> zwC@F;btKMy#ADVMPF+rpr;VBP1(-;&11`%KL!0#yTYRmZo!Ygp`t8UA8Sfh7BJp-X z&nr_BMyzlhVi`wFa9!#DcV>0+-z@QVs_jEAo|-VMw;rg%-A2v&MQldu-Q-Fu)6T`0f!@ z)9{2z7m_Kw0$Q1k_BUgbg=cafxc-bLk`RIOS!R|s%X;QzhT^PF(lgW_PA-PSCVvhP zx=`69?leHd#_-K)xB^@ps#UA{yhYZ{R|%y18Q@+R)Vb+^BE~QnRY<`7^rNt9ewZU=gb3b{Y1W#q7AQ2~ zuSiPX^x^GSVU24|=|-sq{Fy#P2KQ6?^;+G<4-Q1?(fc1}yk9&Lq$7H3w9fpUqD7Se z&0kffkGz`0?a|>m$Sh7FA6sxjhb@r17BgM|MtZ;B0*uLi#7C01?v0@jyNW9<=>M%0 z2P*yFMcxA>;UGxZlW=0!1DK+QQw>0iWa&19XM9VCj{XXe~nzxD-C1v z0v?3W%{eLlm9Uqv`yHRlA!|Xdt{9V#S2o(U;e6mA+QPHs@VbX zh(wLqwf0KPo-me9{R1E>YE#q1KG-VnITBg5VT}L413I%EE)?2Pj4@X?5TC`muJ?hw zJHnyu6>sMBo_J5uG7!!%&Vr%ik}K5sNCTulae5HwRPuTw$HgJh5R)A4QUfxckkaEW zY%N$&CV$*XoXQ4+48)*dtYDAKJv!18X(>gF1!1g*hgK^)sJ_RV>QMd~IyEEKxcUM+ zdTz^gcWvRX`Kq=Ci&C34;(I`lXr;rTb7(o=v?a z-j90+geW9+qW~5m9dJHO@Bh#8?k>s>+f9X@B97L4*ohPuXN}j4cp7UkcfYt z^81S?A!wj^-0A+e`S9P%5CQX3rN*BU2%!@>|Kr008ch3ZwS+%j^}Ch_{|x{#48x&^ z>^zcx?*5fp|KLKJ^E_v(5C-ok7K?phPEPOH zQ@@>1i}|y5_ZfXgOF#P~lh_Rp8^i1mk0 z-%q|TW4W*{K$Vs_o99L7ST^B2N%ci79^7gx{`YG1x?Oko`?)c5>pv>Ovl$34R12+mr19P>Bx;@UT*;H~M_#LA?2zUA$O||p{j1F9 zb2y7jzFrIN_nlwBhfFn9Ke@i;IcPs?Mj?h}RlO&r0z>SP^uhkxt2v4Yva8if^mtqh zwwsEiiO=b_i-*rRpofRT_(~ld^dDW@E9;wc6sBGH#Zob^lh2h2L3Mtb<(M11NNQKR zkDJJ0))_;fVh6J1j+ej2CIdny{S&=IEIe4e93 zO#UeuM|)21C!-D_iYn~ex%+;8F%>iJ?@&K`trEi=Yd=VK#By8@ z+=;TVe4sfTR2O!!hH)ngn+><}v*%gpz2#&U`Wp7TA1?RN&k(kDF=jlWOJQ_6I=WRH* z+B&zo?0UnIEVFgb?Q^#MxdWQX+sQX(tFr6cDX?-)4|s3!Nb0_DY<6%or^e(NOo9P| zFy^SFC1st=4#m9;d-KGd1p`jQ3?(UMl&)BQg#LP$naEdyVsCojAvp#gV%~6(Hm}S4 zT!(?rY-NtfaIE5o2~w{;;nZl{TB0DkVX&7vRmZ8HNQNP(uyplVsS>!yM|D56F>x!N zV3$`vW%N*JGxnNMhji7WMzz|&=V0$6!bL#BJ6XwvHFWVgKAZTJ#x)W2tUdU*Qb57d z7qgrw!HaXVZP|R#>9xInK}BB|(I9*8G8u74l{_KP$;y3XE!jMD_iA5nEpgVT{8?N> zy`Nw4i)?N~0AmI|tt-ZtcAgXEr+AGS9@zg;8aKnew;nizT;^ z)*CbW$6`+WmPnWeSwxLhG49VlM(D)#J{5=2XZuNaH6F$XGTg|K& z0#bd?nwp~BsbD6mBtM-kMM!__FDOU7;2hZ(Ud(j<;r8`_m8y-VbAbq!lJPil#v{2v zPR=c8i6PVD&1T|e@zuUt{PeE-JNmEs><4Sp*L4df_!q+UiNlV|tjCp)rI4&NW9;AH zMDyboct(Xfs1CrdT>6?{dYpJYV7zBvVET@RYxSa@=31@RaUQ5~LJN33I~m|D&SU3r z&$ML}&-&A!EWLy))nwb}YbQ!3@WK?MvGyQgD7vUf9Ibw2tf8YYLcZ-BD+p(K=lgxH zSz<JP4)cV%sJIeD>V#0*^WZ#jH2pbu+$-eK=DN7W#qAdB(}+mQwPyO6ttmZw zhRmUF#b<+z?+)huk5|V@v$n4zY#9~zJnZA)=-kD8%U$DY3SQdoi3N-#24>$s6UZ59 zDv#Em^@)0fvXrJ8Ct0sLwfVXNO|5~*ao=N!DHiv2A4b=SD-;HqZvW74Zx*NwDY_=$ zJewb#)1HYczY2AopX~QDj&k_5i6^fwF3ApiiV~6*6hchwtTp$?D`|Y;6~v1|G9(s+ z#d|33X1Zx6rWB+TbZE0Y$e&RN+9V~LR>^3v=MWEWy-zyLD)d9dO|$)Gc$M@hp0(63 zn#a>8M9bu*$x>OKO9h@p-1pi?#`a%7vGd{2`h5Sch_kzNEje7fugJ`_Y7n-A=YF@W zqDOr}@##Hxec*f-TvgPzH!QrNMG*sz?Kd$N%RllI3DWiM6*zWB z8R%9@%m@bW@OSlpB|sSyw-#6rpRer{HbT3(l38pqIbA9-Bwi)}=Z|$3_r<~bTYI38 z0e{W3Pta#El?znAGKve_Gl~$Q>@zqDZS75AFoN{d_oC1#eTOiN|Ca7wWrKC}K0m+Z#go>g{JI#d(=FSg$LA?hz^ z1BInqLb_AByH&bDK{};j>0Vfrlv+YMWdV`y4uekV2I=n3`_b?F-uuIS|AKR7&N&m$ zGc#v98}kOg?)*4P=I%tSY|KluX2mJDOWJdeSyx?}V*^`;^1+tTHy%T}>Ffpdr@C={ z1(0{G``)oa%aDbJI(Md|Zcp{S*E-gu0Rfhd9AP> z)$F0HHc%!>?B{%2YnNb`M#R|Dc50n#y)~8yvSDWGQK0hJ({UzmO z%|-KWO6Y#S(t_;C7`b4P*qk?ZUC^laJzC?N?-(k6rB)>GC`IjlH4&X$kGka^y=hQ5 zW?bmaI?(y^2563s3mH%-{8NT`7JdA4ev)hbz>TO?|2&&)HkIQJ!IroG0Q`N#$9BEX z3oilae$%!LY^pckduX=0Gcvjv-ImS~CMQ~Rdgb57D$s~j%)|04KWqQnpuh3=chrQT z&*JGbtx`NkpPCL#Cyr_&YcO3s=oNSb6VTt^XgM&(w6GVrvjzFZXBecCxxH z%B&=t4ng+e-Y4T776X>65UsNrqdZZY7Br>5jd7B~T?}6XdKWEOvf@6b7kx4cZ>=`( z+ls+yvq~y}Mqi7BG1dN%*u1&%E;eSEZYj}nB}#Jm6ywk4iLAqr^@b#M4r#`L1jm83 zN7QBsr}RO$C)?{zxt?v1>dxE-^wB_`eaaxc3yTKPse3y*ZNF1(Ctea87X?0iM4$4U z5V2{)#%v|uIjf@S=wynVZ}B4>s4bny{&@OFOC2#Q$Y@t=+IGpjCpvjJ|e{D*Pw zPDz#E*$U(ahCGgPNroBMQ)4!y)rS_N*@Hdq2j08wx#DN)MU<5H0?EmGo(F_--*;@d z0exeAJE;PU#K$Uv-xr-{olJ3!-mn#e*XpLY=h>_EG^?^F?arNa{__4Vg4}Z|8fsqb zr}6PAk1&0x$nW3E<^gJ-pNUjs1K1K9ycjc=%cHyB9Ycp9$TeDKjZ07#q4FoC{?A4Oqh@+ zIa6?#P4Pf%vSk|e)xKPN1d{D?Q6!PO7r7R`LHPwYf8O4`j_;sO-B2DoiXWkykZ~&P`sd z-1@QqOHji%v9bxVutaCInWc5Bc4JXA(mKs>1upi6Y#gIGqov@~{( zi2;y~5~NCZCQL=cwlc$OLP1_{yhu^G9Sh^%3f+QYF#4zSS(qUVK z1+V&!xDYpzjg(KD04ByvF*_MaGe9QpL4PwMno}FN1uPy)&H0+O+in;QC>E1SFd$^ z%5L%$CXH((JwlUW)MUlt@5h~Mmvvv?h?JHS?}R%p2fuXhs(+~8P@(Y$fKRnIfR^7N zrtNLp3pKm(?S1P2wPmcEFmU=%*q&(2>*Muijr`|y8#cy3Il^2!^2_!AHVZ$QIv-?9 z>Fy%y?YrJikUF~M#kO`ialmh#&;@PspXXW@VmIN z>iMI02n_HNV;-@eP1Zk6Pr7%boc*NDF8-T@xGWz`tDNQq{JJ0XW>cFtioh!`bV|Ap zSVGQA&g3J4@lvXAj+7E?TFj7LI+wW935c>0c)a*RsY|DmBVa0EVS4BDH7e!9&P$PP zquw{_tr)RJxqDfBY^z$o+R?3WMlx1C?EN&JOxsv#1#RrC4GTLc4n%Ux{a?J)DpwU) zqWOBok}J!(0$mK=6}P_pP|QU8zC36C*;k|Qo_G(lL2Ei@{Xq{KL!VUuW&fh;jcZ30 z(?GVOMp5Ilxyx#V^y2w~FH^Ax4e%#Ur`)C+P|GET78M|O#DyHkzH4!eIl_-3N?c39 z=Ob(`>J&v{ZlXpK(RGr1jV1QdINlH&ow;Y>@8Syd?Zm(S#uX}sJZa5;kIQM&6N|ey z`ITQvd6sm{D#WTx!y({JBS)kXpwcm1^McmNI=-X25Tq@o-sft4LsGzaM5+Ips*d}3 zs}1_#tr8lOz;N(>;2K<<40Y6(e$MYb9TD>9_bn$tmP)6LsjhPqY}%e%Je_eGs^8e& zX^uEawmEdG5t|alTsDAi7U zi%wjWmk)MXmukAkn}ztO2+9_LIzy5-ujQ2_><^{-f0wdKLg!j;b0+7`egzG6C62$5 z!A$%5%i6(_MJqs%BGjPElv)nlJu$&KuW*+I z9o9P~m78C9Il?yz5;Q;Wi9OtH+gb#3gmOFmRNN5H7`vT=vnzYh!f)sKD`)_0|4CEiB>ceN z%$jcbNQCVuIN(5F&y!6!NBEB<5C?x8)J%?ij%bKj?5pvz)9&cdj;7+Xko^&CPMs7# z9!~<#=rrP~;N-&;&H%UNoG ze?2naxv#fx>ngjIlQRWYa#x^b^``BTT>*C>tqzU|y%%d{6RN9#%+%}D1hg;n0@||M zvP@n6;2irx3fPfnPwEuCVyCW5`!W8gwd&vUJ&yRIUX) z^&~3Av){c&^cg>;T#0>td#pTe)!KhbrkY+2AIUiG5&twof!TY!h3J5t2CTjgnT4To ztWKif!wg#D3eClp^J^g(C_DbY!re1A?V<@$*6SIDsd^VW5HJ;mH6ko8(SEtAXJHSc z{f}oFCQ3{Nh!2HH!B^wNbL}n00hM2%0#tIFaRBMkJA=Mgu=QOgp=B&_#VQXhF8Iz9Zl}@IOu_E@b?B ztC!Pk?hM_U7*-naW>4+Vk;kvfMFw}gq>oRg>&wu}!8q7AL1{-=EDzUgD2y&Y$}Zh| z>(GUr%#(72vDeJS(g$fMK!x1ZV^nKBVKdmCFK`6$wWJ?GMxqprkYLETK&<>+dx+|- z^YYp;=ig?q+bqxe4kparGPv|D`L+b_^AF#J`pWZtzAjmA4JIe-Lj)Hsr&kr$kUp~K z4G`ir1<9r>Y>o?R$;?UBy_2f`3qgwuR5_+bMvR@V%-8X{=!L)84pZIPGSxw>=J(y^ zNL%*$?J#yFg3I+!JYR=9LtqjKK8)(SEPpVs%6-B}Hn_uB=j`elsb-56waAAEcIn>t z_hjU6d|x5j{U;I;tcvX0JAsLch_PGc46xSu-BD+V4YY+AsVxIx>k;K^la6&#JvUtk zB(6)w+V($HHvL-*nX$bhbC{HGocm(oW<4UPNWM7EE-k@J)h0`K&(M`Kuy)CbYpxHt zFK3bBFw72NYLz!oQbIz&8pu2b=qKU| zn4d>NdDv%3fLpB~)IUN2Oiz)fd1t8zsPh%bm~rwNU&}NQ?>r52(7+r`F4h7_888`h zSo`SrV?#STIb4kFU(jQ+XeE*6Um^;3aZ9&LDlg}wBYU;GfY?Aj;g zFo*}lgVtKWttWz6TlOvR(gW@6`QJau>YQQpdQT%7Gb27djF$7ar6YLPB7J)^=%{dr z_g`{kEXh#@6dbr2W*dOCy_3FJmdzl;3&$zRx&p4K#~CEuQCu!(wxe4Hk~L+T;S}Kc ze_85DHlZT~7a&P8sne0&FcdkpynC}d&$DGdw$(J;cg5*=a|o^$+MTj`8U8&0<_<&> zEV0B}{*B2Q^ZxUt=O-^{T5F~JZh)5GheQ|UkB@kb?(v*yK1oG?hao@z^7-E?p`=Pv zWSD>v(&QmgV`@TP|MIz5Jj~6gpZVd;$gGofwhhCcou*IN0z>XbQ(#VwGSK5i*z&^sR-ywg2_@dXzSDfi z+Y)RKDb%m&8|TW$#t{7zj?3-mX2Qe9Mfy2`i|r1YlcDO2cojdL2C>2hc^-Tn4cR`8*Y z+0H!-2=UfT`1D4%)XLL8IirnHw&+I!>8H^f>Ad67gmh!ai;N4~yM;L{Boe~;`Z(=u zkoHFlH%BW1n2H|a;$g#`1$T&*xptBDZoYz89~ZRsI&D=JxXkl2`Ey5+K7*jAGVI$W zm2}c$4G#Zd)egypUe7IySS-scDg^Xr&Eh9=zWH#?e>h=~5tTtCzJ}_SR^5uuA@>QH#AEs>K?Fmsd`y|_`XvOG^H8y+?ozta9-x!) zC=MO3{ztZj=#V%>3IPQfn2L#H^`@5h<&sFS zp!do~zP*#UF=A?WJABfByoKBJ@C5LR$oa5 zKX^x3=d4Y9gSVxw{gSeG`rBYEkd`RB>>se{sL`|zKFY5M9wtN-Wi5y=yaEm1MTHe4 z#k{9M;FOq6z#bnx=`wbi>@# zMxcN{&4aEIbpIb#PV!J+9qRm_Q5mevJ!*qTA`)89o+jTPs09#ji|YTh@9$Qe4R$QI z0e_#Di3*yV<@cRZR8z{}2P8UU*#`3Ru}sgEzw&Jx{gbaEN9askj#4vgTcUkZMyUXJpk|d8HRmtqly|^;(E6EbX zxC=B!V)*iZ%Jp7v*u=U8NDToSszzksbj5&|+WP!Adme;H!SCzAGg`liAK-ZFPWywY z1~E#~Wt4Zv#G`2-ZHgnI%YP4t`Q866W(2Ap!gnqw{Lf&p=~g(+o$~V>YncrutR%k{ zQ9r__Cr{r?~7m$yHZBl_2CT(EUzoX<`=1 zmS6sfQ4vPf;RqRvprT}~HT?I4Zz`Do4~>`n%GA?Q!0lN6GF^VygP1>$^p2q z!6ffM1e@KG=}3fj9l>A2qpZk<7z`-{4hJ&2p-J^bAE6$+hqY-L2x~HIBfv;O_go^_ zJfHg?^xPY|&h;}yd}7sGN-_Efqb?UwK8aO-8;0{lfapPSGlU#BftHrEn^eul?~caNm9V+QD<>@>g>u{cQlFn z9Z)j26PI{oLDt)@Q&VlKf$D`8T@+xzEoGy)W;u4{lXEd?Ok5jg<`Y!%Y7Gy$@EpND z#Z6QL_zyyN{0DbO0j1T$r9V#zfCFG>;+HxWY7gO}uG<=2uzh!Ib{TzE%EVEiCbRiX zq=<}9XQVphmk$uAekrioB9TTNCPV9`@|fhpE-47zLnCSsXMF5WU2@WvEff=qWlE&E&eJTzLMFP+`i z;OdJ=khX6vEA3D)aSe3BBiBN`T|{L@N+c^r<83=mk4HlDtG3LVyIYoyU23V$%ex2EuNjNVyRW?uw z25r;J4YD_Fth8sh46w z(*za;hHL$4C;*q&=%9ac=lBJR>{XUjsGfWpbHn&3PXWE z!#jicEd+PgQg;Tn+)_BiEdNsS3@(<0ww)TiJ)Zt@-*nyDH}V2Q6gbUK^1yuWlDrx$ z;oAT8eo93+g5Th)cn6y5J=tNOkLnQyq(&=~s_F17nhaO?uD$xE4h@kSFZKr!r=NoS zml1{Dx&{Wlc^yAf*}bH)FW4PsTt)vy+llstmm2!-84H21ndd~vSRZI}Ul7w@5?CHp z#gqDf$GuE`dJ;K2GL-VV8XnAQ0_ORrZQW2)FQzpeWv1ONiSmOngum@dhB6Z9_ZrsP zz~81z`Gj10*I{JpaM|#KMIf644QemwbsqzEqoneG!2OGb%BS4U($0ntvbE`dSG}1vKjDj9;hK%&%$9=YJ*aC1$bH%(8?y?ne0#YdiPnYWC1qvpcI2SG zUkiq~&ZSC8wX^ikEE8?SKft71>POzR>EkPw2tbbECcC11sF(r=N+s7sUuoji5;J4Pm# zs;+EO1N!yhmz6lSg#AS4)!7J2R>X3*%vechC)kD%22fhuO#+dq3~e{_h}XMwNIo|q zxcKevM;U{H9X8M27#yT6)qTAEb9Q0Ybl;ylVQ-q}@;p@rHE%ZJ> zhPif}IbJ({LWkohPwvg^7Fq}9IJ8+_wOORhSw6)C?@?dnup1_h^^G9-<6H#c8ftH8 zh?37(YDP z?M%xG_MMwi`EGbL4(1JFbHzt5Gd#>e^=Of3uMpUfa_3%|$Otyf$#~AttZ6hycs-=t zHxmhTX}&25D|03Y&YVQ64k?alUv!sT`K8`@LI@3iT$46cvM$XV)B`fcCq)AT<>e5W zD%ab}Nnv_e41ZCA03Rq%*tdQ))_)KVjn8J7c--y` za<0YCrz0pI&<91|EWq4{V@8fmWE#{Kv`B(IdIlTh6c-8j;~Peovm?nv3!_8 zJ0BfYDCTjp(5*Z{N&+QR3sjY4F0S5Y!M?#~M*-_941%7XLmZcIkX)r89g5q~$unl9q%3)P8RRgZHpB^8Pr3AwBh10lsTlm$i%U%dii$C@gOg@fxSvdtNnw{2UG1qE+zkH--~`g&c`)bd zat#L=R@m#JBV~9tzsT}L|Cn|$YjOFUq(6nHUU_`= zQ!R_jsq!25@j>6o3fJ(}5x;r3xWe*`4&><4C3WWGhC8RzYQ zX&bSf)8BKKRQ@**v!_3t*0W^~JvYu5q-n!=r@2GHD$PTWoH(8t)1I#gUH!j%xmKmL zM@E57{Qqs(H%qqfvnZ&ZCimHgllqO7k^`{9O9}pBye0Zkj>0?U8@~5-F}W!M?aCcT zE%-d8dO}UouVR08dt97>5wdADau8dk39r|&RzB~@^t=ro(gjJS+6gIpw{L&U^aqY} zu7N=*V)H^Mw{Ahf$pIwxd3pVl4D*ol!LpOE$N7=}W7aMNa@Tf(7`?&w+ZU2=n1Bgz zyx2t}s^9FMS`MySB(9v9_6RKmY!i6jUvRe4wYnly?qG6C9ye_*qh!KNdgun*lz?B;QUsL?evm<*351SG#aeUps2%f%s@(0vFZI*infrb$TM{^- zB9M)c^TgDF#Wh0D`z6ju60_{p zr2+S1Vle~iGH#}qdvoBoxwI*J+H_LHDvH7BqV!6gV)jP*PaSr7=MKeA9*6NGC z8ZeoTD|Pox^3->amoV-A1i9PT(W6-IFs=hQ*l6^Vp&l|HSNpDHIJ%WA?W=U&?hqI= z-$$=Vjq-0XbV56G{zzu;G_KUb**B%{ZH3epS~v2J&;53Jy9YV;Ue&>I8cQUG){)5g z4pfr&T#8H)Q#{agjU@(((rrSQkXg!>_Z4ifez7bg#8TTVU6FQ$Nk}~~AKy`^5>05n zzhHt&d!sfxYD(T#9M!x;A+-!~TyhD#eLiYK#IwU{8fh^1kVoj!oy{qnvE!fFhPFfD z{iXnHz(W}9VJdC^dj;>FDd5=0F5tQ}0&v zeGgge5caFIT11lI(&%{>Q_zC~5@B|)bNNfDNMB{U-<4C^bpC3GC9}dF%TMUhL6jmV z-9EA@3C@sh1>sfMm88DT9#h7VG$$NtgzWL>?~0YbVb2HJPpV`Le}n)SCeN;!sqU;yX3t5>S;MWCsMGsDo zuXn1NMrp#^iMRbU{f?|e#2d(b4zsUmA5`DfWEW{Vl(o{NpW*D_I@Sh6FR@?E4pN9E z)Fra?T!=3^QSleutG{8Z2t>d4vPd;-(0-Dbft%6|=~`~>LsmV_;^+_{B;!dc{^_}L zdXhTHDm6qkcYrS$GOysMnf2m_PAfSL%ag&p6HJJ3MSrzro;OO zFP0U&mWkNobm#ZF&Qw351(S@b@+*{=;Tgr&?TiTukxPmE{@71yL##;WkZNowh&!`pp>cMO5;gq<=vun0&^vH z^bf^P<#NblF*1cpt7J^bCv`7u=#!b~p?<45r+E~Zr|LN5RoI#bp!GVFXu)toZwY3pT z!_z>S9>Hi<5DMi{Jhmb7ShkFI3bi0H=|$!IeUg1neK@Z|%ROSpWr6O*_tvt&%`%UN zq=rp8J9kJ-p}JDER|pC*Sa%bL83;B9IHj6hJ$(D)Y**b! zkHoSmkD;g*prb36f=qH#++*ubPGl#F({?n2g#n1H5 zr^;fDHWw#TvjxjT;lZ+;UZjtSVu&3rOR2p@ocgHac0!;&Pxs%8omFe&!(;mgSBvP4 zjfNKsoi+>h^krc$sOFGVfB!ruIjhC^ZP_ekTdrZ+>z6DTgrT}k!je#Ru9lkSBm~jH z62$N2ao8;~S-P3Xyj;FhZd6Ycviy^6wVa3!|IQYbD;l6)XB1NfmeSZqKIX=WTt7fp zdtq6`-1{Sle+TD}pNKoA%c+`@;M$W3J&e0`jl>*wAZ#?8s@#&yn6>du`cpbug0SME z!u9g)?}?ZUi1V(oS`s^cFE0cNxNF>2wygI^eGK4^>ERby3jEI7QmGi{G=xH@J9&nP zHb=(uPdr4ygJPPoF}Qa};hPX_SE$8VtFmY8((pTlF4_qo4z1yHXtACUo`ewwW7iZ0 z?lRRm?f*Vz_gZVLv+q%YI=s2Wb;>iLuyw0zowWtcJT#@ z=F&G?e(!u~{LY!M#PVq3S9IuuIOFhDElPh6R?B;3z#TWwi{HCWp-BBmDNMImCh>rU zx3|5uW)LIem5SH6^?n7W70AfvaN6rCuouQz{_OGuWfenO-Q4i>ke zdBLKD#n%|E(OCr#bP9?ilTf(r_99N$6D(;j4v9v$I`yk6=e;587&53s<4KunZ0}@? zGK_*L$>A%m1-Tthx@xeqrV>vSr=b z`Urnwe%~tKTAVwv-mT<4lr)+myzY{qhn4rvB5z}w2bzc(8F@xlBD=+3J|;hJeM|03 z+X;P<6ND5Uh@5Mvu>YfzFDOXL2%(0d0VP>qq<*3>Xu#FT>wjwjmc~wDqeVPl1R3)9 zn6%ShN*fS}WduaoVOaSF&I$1K*!xebbS|Y#Z6WaJ9#igQRF)Lz|IPYlJOvEF?Ke~3 zBH!1LMM}UwEeeYV2L#EtzWBNU%~?bdF;~bP%B-^yEdzfXBCn1a?pGT+MjPx7E9SHy z&Ynrw=0X2SNrqykOs>(UQKfPkFEe&ObM^Y65YhTEz?n8tXax)b@sNf)nTz4yTI#Z! zLa?HPen@>qe~7-EN4K4>_shBJSS6XAkhcjx{w!_lzLMbFndu(J0(;#x*^q(n&%NXP zA+IXnJk<1R%vY=aq;oz!(eW)^vJHGb5&wHFO%peb=tk19`%|dDMQAg z#=E02;ltGDb#exfadMJH8B_yS(?BdrcPgIM?=nYR#%rP{Hqxodn@Gn1HBmI*& zqb`YhJ%Sd9Jf^Vpr532`pmdl^;>P|qc{crLP?){XsYHiu2L)fT<$0FZt1bVQUkF0y zIS2KT8IK%d!Rw`y45_$k9X*#Qx<(Vui;YtW?XGgAsTbpavpB`Q)r&YNHA8UtBjF)p z&^B^r6^mwE5^|mV?^5J3uUDVFP)0ct5jkxMHnpp18z#T7TW=h_`|PB6Ub8!Po9<(Wm7KWy|Yvjzh|FZEjzsNMr83>@4WD}ADp0K@`Zx~tP6dd zfLM`$j~*60rD#AHtZXrgXE$;I!XT~8ux5ajKg!tU;>Hi~cxh6_##zToETl^Pl*VYr zQ@8u_<5ps%VJKC>KCyy8blr)D(6*u-9=Xuuh(`D$3(;{bd5;>c+4yitrOzX9Ob4(T z+p`3UmwRVJEB?Y8+r)bz9O#Vioyv3)PEi0@qbyUCLM+3xQ`EA3qkyD3u}r(H7C9mK z&*l8gGg*R{g$%yCYC*mR4cO1&Tc$?{ceo8#CF=a3+iyATMQt?Sj%omD;@Q<(G;igR z`Bu`+DluqG^9|@Ve=h|fcPf_pvJbtcRifr@!4u*An9Gwlre*axhi}hw_QiU9W6}ph z9!;z>*3-D6)mA|xAE{iY^)sZJxBrRoL?Sa=dbJe(;*%7tf2 z4PW!#bG-~wdR-b2EoJ?_j6u*^j+Rw8M-HM$!=L_knvEXjRU*0`78{<$=wqX1=PR@o zdGnIYrPzq%b4K*=HKxylB^181aRp6VPCZ&22a}V8jy8mN^lKI4w1?;om_+!Cms zw7}D%=PR>1Ce?Jjgzt~pZ(MPJX;@RvV+Qt#YMjv_I`!t)JJyGy^TETto$?Rz8uy7WQz?cd_f{b>0Y6DFF zMk+a<4U!lbBj|=Fbz3;)BL^&vO4H(&p|B|k#eL5W0Cv7s$N0Ck*7$D)l9nyY1V6vM z#n13`G7N7Q3tD)-a$rfkDOv9(s4STS#h^57!bo+dU9_3^M7le)=|t26dAGm2(-&~< z_=khkOaW#wCtsrOcy@HBtyJpcppxGZUH6EDQ=~79lHQ`5|_Qp<+`^tBPiRu(wj z^EP3mFc0DHLbY0+IShIrrH-0J7Npj<-`?WRQ8vOUM%&+dED5+9KT7B|CBot{90*=+ zdgtI6Zy!};!DF%A`W%LAsrh|4wUnmBpM zaU1ijOv?P>Q3=8ZAW_zEwpOBQvJ|xEloOiHW0esuRdj zaK^%3Vi{B_9w6`IkF-L+q?3dW=@IzWrspqEk4R?`6>XyC`|ujZ_@fof(D|aB8Kw& zB(o(W8_~}c|FN6x4ZYEbxxOGfd9W4fxojc=Ds`lBHF|oY0P2#_;vJvMJ@QIZL!y1p zQ&z}(M^m#mxz$NUix|dP5`9zCgC3Rk~Zc2Xr_I}kYP3oS38=InLz}8=-$Vf^I6c!t!eu! zA(pB?@QNj!zQOah5om)HN_NmZOfK7Fyn{JPv7>&?vCKaJOiM$F?pWn^QPjK}2Up8; z=p@cC{K4;xqMqg$WuzjR(awHhz}fnUa)+n@)_Z{TvIl!840p)Az*Z(;EHe#K`dRme zEw29^^Uf!Geoc+jcL}U21gwy?CoZA<_TsQ)ba;AO4QjFOwVSb!jI| z?T6^0V0_Gv^7OFwBWs`Yv&nqCU@JD@ljZ&&Tf7*YhlF952!4*3gQ5!BPEX4P;QJ~E zdBEuHbeLG%^_e{vFmBu0kfBQUe8pdo5r-gTAQiAo=g&bO3^!egUxSuVV@AGFG1U*> zFHGygIs*MX6h{28eKl$u%2I7Cgn+w5`R*)bR{mSf_fJZNEx7!f?s6~Ia0LTJ3RYW` z)SAD$PSPl4{GeZu(Va`m9QgU`z+t&Nd~Ps8roQwJevuLGy?8;@|8Y>i7Y1kVf1ew7 z0~v?@ln=jR(csrj=;aqjdZ_=Df~0@j9TfI*XCVPOCKoV857Prrb?_fe+s-R9Cx~Jt zqjJ+Yh+;h4GhFIVd44z#C;dNh7^~=Jzi_|Z{*f7W{wKXiZ9CiMC{9+-w$N|(;f7yF zjsJEs1>tfLeFnUC59_0sdsXV;1K?!s7UR#V+#W35?-X}lI$4kP9>i+T5a;pO!f~h= zIFE!SXr%VdZED=WOdS(%iP4hx%(OGhT1iLS%TBVu{3)}-vrBU)(2HA^;AP_+(~?Zt z7KHOB=DcVv;MQw8{Zo8{uC-kkMYuCV^pke19L~RphWG3d^L~ z%RVzs?A)4}d(M&PfQkPo@Vaz?J2G4y$s096TQqcT5FS5IRZz+K(tK1AnQyQ6kGaj@ zdG~fcHo4+z!ymU!?oGrg6Y|uC7~Xkj={PzKCr}apnx80uFdiS=Gz^+!=A2zQVK@@I zQ3Jw^I{uF^j}_0sUa{m@(S9QD72c+gzXrdQHY+PwJ*TOj20SUAwD4wM(32i%twqt^ zi(RLDtlI@Mo^P9gTSHGB;Ghirsil%_|9ju48y4Pt-Xi4>&UKpQY(j_M4Z`Ux&NZw9 zrPIevr}0+G{IxOa(v%py6QZkv@Iqx7@OwwvLAS9WW+^g?#ma|@8i7uunmulv92vW# zAq4ei{Ki!p^PcB54exH^fopGFMh2wE@MVLW;^%65zAfWmk5B3Z>3n0px1l(HkiRuBT9U-G~8|&HqW5E3{bB8K**@rQFp4tPQc8Z z9{2ovLc@zhTw!6>7|l=0w2_bq59&O3$+6d;eG!}TXl~+s_A2qGvP+`xk5AiHX|@0q z|EIhc=Lc@>x)oy}&nOv^#bj?JM^mIEs1cr zlLN=>s%fL9xY;ajSmkJI64L?yo-A$04RzzC)=C2*#Z%|!@PMF0Y>t-77UyphFK@f4 zdNjov;&Dp>*{Az7IG1wF-K0+IS#x^_a}<&aFMHVWgxPO~tRe-LPCfvibWE!RK79Qw4r0>o zGsE5E!YQpy6&+Rjw0m`M)tRe=0HLF(yZ^_O)Sx+5&F1QoyN}_-mOLtA4w;4sP`5j< zOjye!SHDM1n5sB33UyY{LtR2opiE%oL%>m@2UpD3IW-Al-z>;C1;ZzC&pe+_x&sQf z(M3tZ9nHre98EI4Ccpp1+F=!i%k>dZMirOQ$;u9IRCB&g(c#)BO_?2sQOh(8{tP9b*nc6XZobu^Si_1*IQ zuV+2)5b+*HqsBko#p-yWUC#1kf~`1}3czr1|8%%BEqg2H!bBWoa2+{13;OWk0ReTi zN>Kk(e%OK^Cy)&glm}~VzjFJ>#_YSS?`&t#AT>yWr)H7H_vearA^2Y}%ag-jRaAr= zYE;za0r7rM4H-Hkc+nbLNXZpl6{{n*=8_y z_oMG~?{lBW{Ri&+HZ$ja&g-1_>vPU|FXwy+F#~1moj@SFVCB4@&Dp5>PZ-EYo9O50 z&Y<5kf?>W}4!bgd`; zY>2rum)i-kwd`o&G;X1{0hY8ZT&FS=NJaGlFF&_pP&3Fzi3Wb(4 z1G~y;)5(y9f!K(Ue0Q*+*j=9T<>!rQLrxszob?xrp}}Ueu9j zSH#&;`YC4hf$jDF)LJEsHsr}F+&AOg?soX)8q^8XMefCJdq1F0CG^CynnT^}Uh`B--1LXr$E59F!#%JN-m zO&r5_%kTQ07F(+oOMB-3)}d-*Ld2`Ar5@Q#!^okKpx*qs>#g7gvrCYnsZTT(QQ6(b zbgnGsT?N}{Wqk$#!^QLx=N8O$$G+JVh5aWeI}g6NiBYuOGTvU*_?ZbWzuM4zx06@9 zJCheoa^AZ}#J@a*yX&1ll^QP;;(JSuXOYBW!ycy(?y}W5`=Kzl*3ln?B+CzOK%_(w{Y;+{l%XGH!b%8aL}HtzG1cz4wABQRu76H{2-M>30ikxEc|0)yyf?)!zG}Mo z>t|`nkUx>pB{E?Rwjko{cCz1s7W%+^`ZQjK<_CuE%$~FkR}g&%xxY8yq7Yg;%*4Qq zy-6T^tx5z0+hFjEW~(7M;aB9fq6zydi8^)dfnjanT;f07~rVRhI_$m55 zgt1v280s|C$P*7FcMbiJ60}vI&*U|IpwEt=aJ?T@0ZRy^5=K(mBMYUiq`a1WZw7k| zyYg5EsgL|J_|lAbS%W5@6~m;1^%2V)xh&cH5Gh8y|DdVvtLss2KLDmVswgC%mR!NY!faCm;_Y zQ(D|H47-vZnhR{if{F1X@Zr-Rdkd zrp&O@Q$OvQ##5NKH>}1AZ3ef?@^B3ox<}p)DD~D5vra2aPA*-b6`S*3F)2p|MQ*;z{hF9@jCN^SciTRY z`JD9Ckl;|McQ(LPb~xJyo&)~y&FevX*5hAxNK^d=3E~T}UlvVmZLmxHT~S@Rj!R86 z34|s!sH=TWHgBRI`O1eL?ZJ+UcKvrH^s5%F5-KQ;LWS~FPt;<4b{2dyK(Wgv>zbPA zh4@T@N%2>Q#M&a0OpM77fZ;r7VI9}xOLXRh2~zEDYJ_svZ%>x2vEv+9M&raL0&7}s ze*j^}xPH1}c83e&Z4y74`$JZSht@Udo0>BkY_nj5GN+kf;S?nB#7An6d|;(@Fi5`D z87X=>t2pEtz~F?WOn$W;zM}e6-21TlJC)UYd3Y_qZpqrNpJnnzCvaG{JaNRVs`_qw z7pgQoc@48y=~$8q_yd8UmZRrOPc#~3m2>X#%b%sZ(IqDIHWytMc=V#^&IEj7Jy%?_ zN?@9aJ=h4*USuj zPUMs?a=zoZ=zjuTQlD3STM;zB!r$$Fd3>BupT1ogJBa-bSpJ(o&=agSK9}*#G&+we zT_>;j#3WZU*xxL|j=mmkZ?`>h0W^0t?Q70Ax0=4f0%i+@6uI|sa_FLW*y^$tSkdDN ztEf0J~3b%uuPRkCPO5QYEiSOpa(Mdo*X;tb^TVNDYz>L?uQU3>c63!T5`28`&}z4 z_J;p6VSY>8(3?j!5038!?0@53n(~Rfay#6*7=!1x^CIyj$Ps-}-FIwF?O19JC6L(q z&1@3E$8J%9oXj-1G1cr`^4IuyqX2hW;W5~5)S!FAeY2n)#g$oST=@^}oA@}tQiovKCB1tKx9XeE zy_4aN;sg1u`8HI`{|uCu$pgqKAC7v%Fs zqh)0|)GJx9Ph#-!=Z%{Ebd@mXO4wdZm(}kW#XY{l9r(!kFT!|PvV&)cNi1KGA!|>u zU(Vs;{!v24sFG6ca+SBR)6{~4U{@?v2M3H7NIM&HTub-L*42%nv*U{f2qoqNcDwEb zh(zlC@JiN`q_nHboec6I`-ikd$3)C7?DeFT_=L3zXEcz)er;t}euG|EJY;*ew|c-J0*2pDyT2A%@#>Mb0VdV5RT&2(?q8G$VF;x!%15>?-8fq=U=>$^hIqu;yt4P4FEf!yv$6y4_A z(-n`EbJ9laf$MBBRAU8MEl>N^4C=apGTt3eMGN2!JeTM=C41v@!7zQtnhyK_jIb%(deQO~BwsIc7q6HsaVpVDu zVVIw(;$)JXzew!P3K95$9Bb>0dQqKGn2i7@?Eg4^&wIhE@M5cF23@$~)nhC}XYUlM zZtr)kyTb zW^YD5zF1vJAP)MOP)hAeZtL-+_Pzch|G7PKi{g`uy!=k{U{xa&z8zHdQEA|LZM^6u zO=WPGmtwUHjjZjLYh3xc42ij$PPgsB<#@;{w8LFWIYT43!&j)XRb~AE(Zh9C5zYo$ z!?+C5-uc{XC#FYX?q_y~XnhM9Y&-U`MoNrgZg+;MRI==XaP=+6erO-tV2AXuL=uh* z+95Z24Zn=WimS!+DPW9dhmfxt#Cxg`V?6=1r1e1dra(eemLnhdeGK*h27yEhKC)0f z1&X*HN~bSbOY6Ikkh2o`gpOGvQ8(=EAdvx`pd_H=4E%Fcbf3~1Uj(Z`nWSHxjrpHKP;mGk2`Dd! zFK+eot@i)O{`b#7MQ9Zm6lC&#uIJu=O8%+)um4xs*w8Ui1^%3WHTk#LNk(e+CKa7r zTK>Np_*?98R4BcTf=h4l5fE?m=pQR{I>||&f&E<*&=cT`vI5vs7mDR!Y*jQ?pz1j) zt4uGzzcRwAJVcFOH+O2K9uE;^PMC-L2mxG1mabJDX-t{EL2Z1?C)E2U>rVJMnDoga z6fGZh%AkhfPlJDt;~^AoP?$Sia7dV0TGrq=csj6-s8wo5&NChX z(gnq({h;n|gvBNuMvHz)*(+Lc-|P1d?M-2Osa?$0bNf*7{{W=NK%LN-GDhbXz;edZ z-M6@xWUp~PF4gj%rT&OqWC1wv{iPO0?MN+brvP=nU&;46BBuNR;DB(Oxs$+A=DY{g zsS#oPis@gNpx~!r00$lr4fxqX{}xkIR|ZQ6RnMCr0ikyepl`Hf%GoDJh7l?RK-ZtR z_3PiY(W57!0DaRddJzBA(xJ-q*#Y`8ev&(V1jI=?pudx?*&2M{e~ST!8R>0|e0wX7 zfOsQ&NMCzVX^x|#WCTEeSNEaqe?6an#+(fVyz?CVMb;}X{@2m$Z5k@zgH*q%R;Y6C(SHG2{Rxr) literal 0 HcmV?d00001 diff --git "a/image/\350\265\236\345\212\251.jpg" "b/image/\350\265\236\345\212\251.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..22adddd49d7e5e2cfb8b8bc4437cec2b11feab6a GIT binary patch literal 171632 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�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� z7?f<_rm(xN0*tf#PW21GB*oYA<(OpPS0T&dzzlvdjA17c>-@??V46h2rFUJ@!6G+9 z6i4q0)`3T|Ln8i0uxdq-iuvB1zY$ZNU6n6+#1BrcY2o zvJ@(xf}U9_(k$As3dnAc3e0BE%Q2K|eH0|23;AZ*Y~Fdn6m$NRPppbAZ8&)Hr65o8e7(wrNa|JvqztTfEIp3UcEUPB=9tPh;2**ShR)?wh-4Z+aGG54eU=m7 z24e6i73rnvbzN#6a%px&o=a7%Oe{(>;;N!Exq{tclhaD+Fo6HAP21+2KS^vXe@Q(CKU@zT4? zJbliunDcOmj${kYb+2k8gIB->u9y{Y#Xyd6H6r058Ai5L+prKH_`&8v4dp`ED&Fg> zCm%YN5k4<#a$+6fI-cM1{LckFmT&bR&05W20P{-AEd`O&UKOC9mfL!h%NT=AATxp2 zB$+RzFqVRMZAL^@LdJdCBwiB7%VU0p^2FU~8Sd+5obWxKHe!P><XX;FZj*!5n5a0bs?QvrA6Axd;LV4y019mnTsTE z*)AU=&43`oRZsX~9SZHE!nfI5;lviW?dJ^dd5+y~L$6`_*o@#Mq@0XsO8cB#?3CQ| zNPPWFdFpzVJKHX_JF^uoLfu;I+^$@4|Be%N8U4UBsh*_Ig*W;a4AokUT*<&u%OYSLwI-nY z!9k|1$jd?AxHn}Nj8qi}q8kj1mLF&Y+`xf9z)|4W*W%C7$h?TXA5JMBt7s(8QJh3M z7^-(9Oi%v_&cITGc^D^X4c3-yf~OdZtD_Gg{yTR-Xj;QJ zej(B0jbq#w*pY=!%~p5MsDODfa2BJ?PkhIdZFIsMzm3K%Ol<5V0bd(z?12(1PQfgZ zHSc9u0|B{)Djq}WA;B4(Lp;Yf^K#Z6;}|sEAl0eMY2z2|kjb6y&u{(KbL)o7A1>f@ zs>V9^6NbboBmj6CI0!>pZ@Qz?eIsX6QLC=jI?DXq_fwvQZHY?W=#A+x4|ACoKIRlT z5b`WTjEo)vOF`yIOd3lc;7LrB6jKJxp|~sXjjLhYlC{vK-Gc9RE|J?}Hm=cz{Q0Oz z5Z%bL&&l8cP)_OBdIP+vZqHbMJ3&= z%1mHFuh#r%@S=I_c(AVGme*LNIX{#X)X0IgT>l{s|TFp1o&5JM?)cyFvOw{3Kf91dw0zl z@fgUc6)`c}6kglQCKH~@<;0eC+Vi^#wj`&7t$Bf&z0bbkioap6_!sjU8}T1j^`Vbt zy8JU30nZrHbSVK3*VA>|KUrU+T5Ose5h>glq zVa`S>)ry5Ys$?aEJnXU|-l}~n~CRm8O+~H-|sku3_9crz6pAUA9AK59rAXg z*)LYs-XB@;7hUEOj;#i;UdElEV;FjW)>F#L0ChHHom%oGC)#RWZoQDYD~Yvbo#XKt z*3IX(*V)-KUq7)cqzy1TV<^cD0|8sl9B(+$mmKJ7g+=k~_7-eWSYwL<*p2xo*pMH<6lRVj zlf&r!wJ89$?Ky!R6rl@12xJUHqPGXazcxfFXF5(0wB=*^`g)s6hoI#=<1XT*%GQaR zK7VFTo97H#OUkm73n>b$(TCkAU7w2CwB15YfiTNJkur%fsd0Z!3){AhbbQhCF4uD8 z0iNMj8-KP++%HD2hwRA-!fo`o%6z>dcz!1PnFYN<#oCnDDvB;~)mxuOe4oxO>zu&= zN9yJPsU`J694*$&28hR4??MZS%EE?O1gv$bs;nl6@jwSwJya{+4PnScQQrO;|p6pu~CT6EtWNkJZ_1gI0DxmpnNOtMn+``sb&|s(8ngAV+8q> zl@ub_3lFnD^fsw!9Jkj}l?L`}C^`;&#c(vSb1R#u{A(|W7Y%%Ngeb}=w4V?=tdtH@ z&9Mn&m?iWt7=hRZ1;92?ci!k}poNu3F%ELK0tzX(yS3a*Vscyl#X75&VH0d%6Mlo4 z`+*X>&T}#gGZBXgK1l_==iA+D>AN+0QePbmY3j#+DnH?!NW^HW27wI9Y4)P zq6Pb3vi3@E0sL%T74%nIl9sxbN1~tS*-MkQ|32*B&Fe>>_b+q%aoY{=v6mb7W6%(( zMjB@0j<0PnS+z}JGmyTO;Hv-Q4)S#6Uy(XC+;0Q1IOqlSoX7Ne0gOcGtPP7|?o^yb z%ms=nEIEv#$^eRLhPkH!sBhEd;@ix?I50R2k{o0RfiqC<)??*4>sjxIyTevAZNAxH zlHmqH13Iyz>9CkdvMt#DM<=t$?-Hct(s%^O!!3nk=yh~`gE?hc$0$ZFek-+cgIV4I za6NvAB^?nw@OUa{A=p3xD;uM!g~D7G5LJ12q=utj0Hel`vcsq`x09#RvW`^KBj3EZ zw%}g;U{dyfYp(h;P9xqUW?W#8brU5Pnj5Ncqt?T{`}hj>xa{VY{PY?eCFBy)qXMK*TMOYy zwJpirLI}VOCSeP*N}y}>0h9Ebgu6I)8-CJsn_`7Q`m)$`@t46yeT{<+uIZdi!XU?M zI;^f>E=0;07rE+i$9=Xg3#dTmd_SqLQz3ql$F0<=vB{Os?la;SRu$r0nHETgBTaBX zQpxVPZPk|BX(lCm$^?@k(AwX-Jtzbz?lM>oydJ&1U?e$>-Jxjx`VkE>s(vu%e=>G6 z%v(vd=ZV25c}hftM`_RXcH?I0K;6^4+G$m-aD9s!wS4ZGoS-_V@+1!CI@p!lLmsdt zJy)6uKw6nzNX%jgQ~(53gTyOtkat=poKbX0SYx4CHY|OmTyhxv9TD<{{2ir|$mzqp zaos@2Jk0#R@8h6`{@h+mzG^VnrL=W(>BEkYv%8L{ebSNZ#nPJl3(j~ z;ISbSGgR5YQMhU}PH66}1T6SO2g%_sgxIqpm7yllQq`bhwE2GyNWPd;< zPZ2o4W&que#{-E2;3;e95p+zH`#L&uA3!S}o+fey8!p-`b7Jc%7}v1v`>M&IkyiRo ztan)(IZQNJd*bE;%;XYpNHn?aIRP%PhW#>MrN*v{($)Ds0^fBe1PPmNsXUZlo-)@C z(*iAoVTnvo?Mzo0D8`KZ#n5$GyrN65i%GA+d>j7BH?|XVtc+L}YS*0I{KUbk+>9Mo zH2>D+)4RUfDqX?Z!T)xS0&#)@QJ@Oqn;wQ$Xq<84lme*YlOYTbP{rpL0S$==IT5)} z%TCbHpIf?gUzaEdD6cDtEKaAj`0$Lp0_}IEyYKCiY$_R{xH0G6b@54?tc}<_2(nC* zekIH=ZZG{M;PEUq!SR|=o$eEaJHu)m4<#LZetY>ApEsWs4p`g`Z*8)PFv6+!lL8c> zL+pjpc#MvMx><-T-2tR+v|2uL@dh{->(|_I%Y5lO*rk7^r%!0LcDOg*H((XWXoh*O z?#w^U<>j(Qf;L_BRXT4D*w*bOBOl^4rYnb_LZ8un)X}o$<%&j>j$&m zv*o8Wf36baU${w_b`P40_Iz^ap0a(>$CumEk3YqIx-#?N$@9doRv;CI()8yr6{-Zk z?Sl#>xERc{$%7jfq7vxSUBqU#XQ8i#WdtRhY&Hzb2hJi&GC$D2_cXO=!st&4Jdp^{ zMnWNdi1CF;|Lc;6IC<1LS09e z%nKmzyuF?Hbi|Cj@%&nd ze;_i0)`9jF3E{#f&Z1LSwEjx9jyk&{(zsGJ2(KS( ze@q=VZt2Pws;PUTvjI242x*v}D6R(t!XsWo2pGfTNIeoC^j(~;{Nj2bc!*c<4C0R` z2z1t#FwK{x7B3SluG@8PBy-;3R}1FdJ$UzEa5>=FW>958VEHsT5391)10N<3dJyz} zb_nu(fmBnT@>zntU8b6529NCBOj{e3Ta;qc|^o6~&mZB^Z^ko%i zMhpWP^8XcY{fG`U@TsuH2)f4#CNU@`hCv`99q`)>=hLAy4lY zy$iPu1WC*!j~mA+lO<)80Ueld6-;yKDYRhXAaWwjCDnE@NJLDgzqJ4dCs2sE4pF^$ z(l$uVybGFRYCX!BmjTb6Lzn14h>V69M}!zRlJNuQ!zsJ94L_0R_%fw(lzz{&d$B|b~|FeLr|)%!Yj z#`Eym2CGY``nw}3_Js{;qJr3R_2Qz3F_W5YjgCEjG*&fp_5_`~6HDWelzqA6JPQS( ztB~L3yIUZ|L%R!Xnc^XUH9Z$z7!V(e?{?gw&8^*)pxrs+^YyryY3m-|92vTE_NW`L z&m6tvhw~Z#{sew4AWIfi=YHURW5T48K0)M`9)}%(QSt-OWrP_By2F!KwgjS|l1mWi z2!|sbVThA35OmH)9j?TlBsx=hRhzsE4LS~ce4w*s8SEyjK zwzj}eG6gi)TGL6f4ZX#j+h_GM61Ok2b0hjpzG=2`Rvf3PO1liKJQ!Ccx7ncL1r2&Q zC^6k$k_eA|-aa0?mh9y*w}~@-qnB;m+LOvp_v(O1@BPf&Xr+S(?mlawFf1YawLpy^ zOL-#*vfm-eO=k(GZ=|)4Yx@8?y5KB~dR3~jUR6w7iPu^i3!ye0bAiW_Ho3k2yy1%1 zh7A-W7z@azfg`#Ai$2@o_NYb0uBU~pkEMmTzyqdUAg&Tf76#3dJEE*Ul={RuJ8Z76q=+mL*D=3ltv- zC{@Z9HOn)ON7@HXKDH<82AsbRwU1l7IVque! z!(2$lhu3O6(oHo22L%9uVn76Rv;ac-Fb!C}%U~Z3zV+@gM!0=08Ya&Q)2DF}EL{w{w{JB7Zn~o(X z9*&%!5`ZRR9!p(xnAe>Z>M?8X-lrw^Q-ePr4UC`T`*EM$9$TqKv74_d*jv+)zZq$VUuw3N2l>>C5$qjHJ`VGoMNySt z8i)O01`!(D(DNSvX8d%Nvgk0SxxWA^0dN<9X7`6eXuX|>x*hZr1L5>+3{~yf4TEqo zA1Fi*$k0K@8)FGAQ^-XN9SGh8Ay&&V^AAI9^wV+JC%w1b2xiTpVp9K@Md<2;p5+su zi68^T&`AJ?%!iNKUDXQc4r(JN#G;=}nRDKf zjYPPlJ}4CR|CIlL3}r*b8A()>2+7b^`w$Q{6e(vsKAMo@4L9px#W-W&hDD+TZ-qjKV<%T*0uHvnRYa4*TG*l zuAO@!xSfi`@CK+&f?xasBxi!O5n)-u{R}{=j;vn=Ui%y)1w!DnFn+n5TVRozeEzrW ze@bZ7_zz{W86Va&WWJ@)6-+}evyB_bH_J~idM_G9bhH$^)wr`f+o!T*?km?MdYC_`xr3 zM|2iof?Z;W7-@*kqR{gLXXF8X9)tBU3BZj3N)p8Gw?d|5r6GaQ@y~r0S~sNrbyEdr z(GVTY6yU|Ayr>*iVq2WPBtm?-YuA?NZ@Xe5-`NIU$x5ANY4$tca8~?abh#-m){PbF z6xTowKKj>`P+QkAWUwrWqfT2*0?Nl5ea@=Zn27&b)54 zyu9HLA0$us?G|(*^{~E=3S{Y+D3J&lgH$Xk69zUSv0bet&#zldYV;j>&tIx7FWFyA z+Y;%X+_u0dZPVgIej}&-Id-l>NyuHhV4SG-9!mtNA03hI*5%Qw++p+0Ou*N&Ujl0e zWLcj-{Jv^hVsZRMgB`E`c3u8=*s`P3-UuHWZ-q_?;_gUQduf(PJZONmav#_p4f%(( z4+@sWlgJ<-sWz@Kom$%@)_c`Oa(a60cmL|S?U8;HM(y8r!bfG}QJw3K4UqPOP%Nci z;|{j2J(CTDQ4g8sCEBMjZK-}ZC~FLemCcIH{A5x&qMlwiwtRu~+=A z0+LObeOD7^-?bzAIAsKl=w8LR+-v65xmznL<7s<(PVyo9_dTJn$Kc$4Ybkwhg)^~& zO2M0p`6_*;mnWzB=5+Z5&k@c9>*0($6{#Fy?ftVH25RJ^&Q)KN1m~_`Vmfu0(@>3PKTj7D^Up|QejFK)1VLZp_LM4*`{%w zey9L^#dSHIj%!TUnL4eLfKTpihYPW9=l(W!_y#-t<7Eo%x~i?UU6%Y*LR+6rnB#fD zV;<95a4?PB)ma*H%$cBnbjaJ$Va& zsE-ivp1~7PBNee`eqUb3N>ys^`nXpsHvV3mLEH7r>N^{M^U84blXqiDLOvdPw&5xs z_tNpGb4BPF!zYLZ(w-qSfKAbuD?S*6cM? z!IF(K;Kwzj4Usse-~c}^i#=mVb1aWCEV70=@T$@Jlz?tVs`Ib zSZ8RBmenl$+TtX~#M`EhV|E{{+vT~~TzApB^M>yg8jW!FA8Zt{F6kf_wV?)TILNsX zebrem)L3WP5q(uM*^xdysflsLU~<|=Czw{G-W(A%H|k~2rrA!7R~naoSTgm%i&-j) z8ZtM-z80aqV&(&ES_kt!M5;-Bumpnm0G2>VDL{N+nl;+H8;~R_JidO@ECjW`2Apl+ z2gY@TNPAM~Oov2agE}o9@~wE7DDH2J={C6O<+P4*nP`&8yUyGfza_^0m-~Uv>JOJJ zGg~xz&gpeU3pIC-8t!?#cr>neevoPv*n%01gu0Flps1RPWR0=(>8gV04%Vy%&Mg$= zhy#kbupkcT2>=HM|Ii-tYcoG^(`9El9mwk4dp$|Hg&RQnFD1%+4blkc@uwh$IMUNH;YsMh;|jAqJO?LSJ_~ zpx-606Bu3VQFjE+L>Vio5G=oJ27Xz}Z!}xJrJpZr-eJk?qI=K0-?zX06f}DB+9#6$ zP6WTkLi|MJXn=KTFc>wd1xymXve&3o2MfG}r#aghLgQu$`BSZNPSCgd)Af{Ap93(l z@V5yOblbOszmJl@Pj*cue^s}ZnZBIf#lG*b-0f(3kY4w8D`|+DxnR+T$l7^!xI%mi z77Jqd))EsxXmrSi(2nmlM!jN#-{igGx@Y^!zMh zK7Q?+lGlFn`AH@+rIY%=jY1Fn3Oq)5;;Rj38Mi?0GEeUn+mtHS^kxlXGDX|@rW*vD z@CrEblMR83%YxJ*yAP+Vz2p08P8}d)xUfpsRjqJ&kr(prw7imta z*+L;z^CbFyaC$TUly_VzV7s*;&JL8RkZ~jNn1~1STx7mloz2m0nQHBHc0(s8lCP6ya5>TB_r5OAodGR4hOJ=e~4w0H{&6JvK zE&tiBN~hWwde&$TAL2cl!{^kuW|44$mjyMXOGlad3v0%lwb!-YY5Q8m)gcT4~qhH=vOiKJFfBsSoHp z(qX{b>q71RR7j``kSAw$5l3AIrKDU#azA)?M-c>p}g z?4h1`$J;q8w>;F_c_L@c!#7Wi7Ex0V?gWvxW1x;_9KRcripEs&;}L$0dN}VeRr~~2 ztvDfZFWE+L@_yNOH`}hL6TuHpBMb z&XE!%AWav!G9^g1i9L?#N$=~5Q=u!)k_>&tQ$Ha?h;{Y)1e{%zVNwYiI)l`M%zrWn zEjgWVpk{AkH+>v!x0A!zlqnM%^o|>i-L&`X=}VrL+rd2VH)v>^dpG_gg-VzjVB1!a zs*MDgncRJ=&cp4b&pBopMIOp7ZaJ1u(jI4cf&9>v-$1(L=)Ad_nd5J)?HzA($52T% zFhStAp>QmrJZ+F)q@CP3&lW^*0InKm0Q>YsBxt|koOh6kNGk_&z&>X~B$YGdU6ws@ z&`QLzTJ})Y~d4sv#vUspGWO-q7rp=G3;9mU|8dX=Cqdo|l^Z?YNi57Le6ez%tYWb^;N~ zj;kQ(m;-ExK0QY$!|zMYDG3s5W0~EmwIG+44gm~P zXWb1I*F?~A7pfxm1^^+5y}>GG`uxBh+Oi5zU; zZ{oG7og$3CrC6g z`^A%xU=G?A_6c!Al`ZXI`wV^G*M<}Bj&az&8uS6V9GYIdfc{2O387G@prXz_xum*% zdF|h3WM^$mb;2x@A&=M$egKjTL7lA+9 z`CdTfMy7FEHW7S{Oq<`*1b#Jfag>!Y*p8&lOw119c$ z#C%<^uCWoAr_U~ab67N3+f=HgPhPuc>MjnR`-~pdBwlN!5W5U zdSUr~;rNx6L%2AZt&9W|syU z2&eWBgy#+d{D@VAGB41!zRGSX2d?CPCOdA(E8!|crib_%)Mt%y6<-@g8?lr^h6N!E z^F+Mq7wS%9xQ zO9i5(E=II$Qbyx0u*>^k>LOj3P=g{+T{?J72j@2!JO=C^GCThUVEwpZTQiqfg6Zck z4x1)JjbMoB9w6ZWZo_Ja=~8BoIt-s(hW5K$7KPGg0tKhcP;Zbd%Cu{6fo2rd>q%W$ zK%bXl+LvWKbPiWi?Y&2Adq!@&60S6BLHH>^qK3>XF$3BCa3n}I9d49Ngml`RM-^W_ z0(r0-dEs6P(4IAIAQ5_$&ye_;fb=q4FB;fWgayp#<3fP4Q|zF`Ezn*Ortv`A3Au5? zT|jP}ois(EHv9r-o>U3RmdSpA1LZRyi0?>00L{ZV)I99Pl+OlE$b44}U?yRsLBR~U zWK6bmSG3eV$pWqoo3qCCg1)k*_yPUvCFzJ%tY)W05fop4!9$o*LzNa^pvZ)F3CVI` zbN2r~5OX|zjEmO}UUG_4+;=j`w%DoL)x4Qpo@&AfJcqB7yP8o1_9`Hgu+&d9r3~8S zvCt+rm=7gTE{R8R1i!ktTo|;lg!0)_5F(xPe&NpiftwC|F-4G47#ji7m0fJn;q+J# zZ2cecVF@~~J;2z?G1lmTAh^S((r9GLX8k{FUXD1VI5OP%P)lWM*#ZSKt8Uo%{}nU! zr?7&;%ea#@OB{2jpg=pCC!f2*>P7P$e_iv=Bqd2B6?f@;y&| zXzmU2)jB8O^DbmoP7+weH?10RscVY~_f6Y<;lVbi3VnMnaV7rp+?$oGK;1e5k_=%2 zTm*)~f$I$k3IKj6^lq01cL>9F$QLs$_bV1ww0L%aC_z|RN8W8n_{{^(s7bVaRSd!| z2iCMwgKXQycV^|~blD%wyJHKo9cCMBbgmO~3cze|b;?!9aMp1UhD65Z3@!R1FGNJN z4$lihVIAs8Ho-ZBp*k!LdSO27`^jw4QTZy=9$?hRWH+@Xur0yTgaqm#fRwpJSf`fi zwy3mN`GN%7){O>o^j9K zQ@_8nz@*Opp64nRuVD9t_}W(GhBO}==fH1KPE>tYVuqUK&S}HP-!Pl~ja2~`L=yne zBL_GISY}M>&y1msfe!@w01aA$efFBP&oyixwN*TZx31qf0ez2f{>_NWEzzIXc5Ry1 z7Jlj7@%!J_nHHOw+alNEJbl-ogk93W#*60TB=p0TDtGf}+v{ zLTc7uN z?t0zVeGficTptFs4v6CY1VjaqpZ!D~s-u1Xm5$+UOR71Ljb@mlG?v6kkF{d+`u*kn z>{~MXsBiD9V)wZ`>sAP5mL1l#PA)#6FvH&RY#HuUqGNeW^rxT2-TpMrT>y#-HIY#D zlX&}<1q1<}A6r`L0rcay83cIpaaeC~b=pU==;k)m+}=_={xR@RXhG2O6EPqX1k^zm z+O-mq15oC#(N_KiFmjvA3sr2n($aS?I&i?`G$np8xO{h6N6lPfu%%GSlOpnUed^n7vH>-XbDBK-G%a*`zVodO9{o(PA5kmuc=|FR5uPvh03H%B3x7m0 z+yLnCEldeMyb`tRqnA z<%NKF_jr1`V5DIS-|VXda`0AtzpWra;IVN66oYvN`ZP4OdI*Is)Y+cz^bC6+hTU5C zT-)!XqnGdMnM&Mt3Kffte=f9G{l$`K<%n|vQsCQM{AEA73=_l$(1^9{Qkqrj!YI$W zqwuWOBYvEH?d^LOEq8A4j{AOO%h7u4L(=t=iMem5{k?*lLt#LH>7$EE9W$-JDX`*w z1vY5>qXN6d6}mOH55CX_v+o6JoE&H+&YTnf)29!#JN!BIyAfikSK3>sRjE!?5m}ke zaZ-47b}jr%J{JViEZ`${#Tu}(7F2)Z`}k|Cqxd_kgEY@mZ-O9EFUQ>wmObQ^p>KhlrzKQjB>udgl8~6QHasPdtM%V)s zx}XgR@!z7!%-HXf`}~)U`hZpfi!J*mJN8EWK9?R4S3?;KqSQ8& zwM4eg0>?AM-!(xz;`(zF#Opr-F@>IC6DJs^a!41=xn!!Zu~s1f(d+E;z)8&=w^Ppf z+!`i}^B|j+0iHM_}39btUJ2hyimz(CK>y)v9!W+ub(< z)c?Y&3U~k=_hPGmeALDCA0Pe~TYhv6D}Y!<)aGMkYPQQ{wiCJ!u%_Lg^NMdDDdg8K zcRQs-bdDPl>JS9evwGsY9$jE|^6mFqO9Et%fb|l9_`ll#Iv^$K*L|NZEF*uX1=c9GhZk=fUvof@5@(82}a?pE1htoAW&`}~lx zU{--79GD-Yt!}^=yak9=8?A=Q+t?eHt;iM-7eKP)B+w>*uhC=9cdZ{mjm}?oMHu|U zqrZcO|JXVa4m2oGX$b5kymJ~djK~=F-YdTaq!Nhj8?Lt>^WjEq=j0_iTyhfj2OP+Q z>c8~u)W@=-qlwJd`Wm;#wsW?l!@ojK#c4#(?8dJYInR1n@@y?`fp5n#-XA2mSzwG++!QY+FycZ3h7{FRhcw}+n^!JH&cjDXz@Ui6) zl0(JLR^PgIR#N;D@BFi4`VXAa|I~i)ZvoY~<%-`=>U`fn`oHoY(ntS&pFGSjD_b)5 zsnDy*HkAyM-X-Pq)Bl2u05B>h5Wh_5Wu>T96e=d^$um$$#BKh0W{C{(?{kcef zbCC#%)^pUEP(F0wHgqZ#;k9x73PJjQz+a-AQs#IDr$#3>hD}wyLc?w>qD|(#UBI zEBZs)^_!QK*=mRADv*4<6>@g4{@5|Sl&8Gc<$Plx-EZ@zF%;n}p)r{;&tq)b#EV75 z9}Ufq9CA*>=zr94nhx>qN2S3Jeua41H!dl27cw7uK2o`r=_c)5@8rlk9C2>q`NLGc zEDNN6qc=Mmze16bIjDN4+MTz4#5+A99NR&urRMBTAF3debMc2RmnT|}n&%!P1K`4|MWs`~rnQbfM3I;^s3FHCY2Bc%KY!NWe=C75Ip`yL=Sczm;fNUN3>z0g zcCo~X4_kwGoYsO|;)6C1w!(4J{YJUby2H)e1~0W%uSRjYPg~3_D04nI zUE&MALXsYe?TW48%AMoXmC)H`Rrd+NyX(hV5{BXlNy^+Pyl6Znsz-~62k4j*XmB-) zWHl4k_+ALvips6$CNs&wf?p~ExZ)>4WYwoX*#=5oal|QUpjA46Q!<#|w_t%OBDIG>X^uH}xsqmFWfPyR@GfEvTjTjr2v;3~Zr2hDG z{pFtWAmoSwDLe`gTAoizpbIJyeNrW>a{%d*6cE0pmDy;+d6#5$+WnM9&r|t+4}|cN zFeps05B=n<^!z{riT{T{;b_3`Lr0HO?edX#^dVBlfw=gCvAVmO(rIp`E1orXnSCh? zw}h!bEcnMw@r-MWQ*{YOoO#A?O`7iO1DO}9RWQT6GDNqBN^u^nWYT)4CKx2L*wOL@ zA|b>TcwjnI&N2ovhONc$T|r;UNj9-5GK@ax!tN?T!SDHH>Hs{Wzd4=-@AMAY4M%Tn z$DR5?%ffI{wws&+?ZHUZ;12hij31FbjJmb}i@_oF$$<#*2U?sm4oJRryfs-*)nRPaPD30=ync`U%F489 zN`N8l%1LIr`vR|XvuCSrVNEd_8fXol!InwRCzWd1@1Ch19!xl#;9%LEVqw>zbQpiJ z8q-jkHZ*F}IXI-o*z9nf_JhU5^Vevd&+jbg0)6ClSdml8=-{HxrT!3yewtP`BlC;C z!GsPkHRmyOSp`_8D)(V%Mn~fD;tJ#OShD)akH@R8JH(7!s5{rC5j+KR33R6cIMx8M zal{^JF_A(CKp;9uQ8kNbQ35&es6T+-d@&ekaFuYEg634KkbY-2&urV^Ab&VMS@n68 zIv*{`yqX6Je^PApk|!=)PyCYJbzo{zx-4W-Us*EHa8e z6!4JVhH_LK8Z!WK8WNC1owPwsxPX=7*M%AvuEuN26Pen5QS&roSXK}TVb#E&i2v#I zr@-lb_;az<<3qS54|(lNnx{_j8zmz0FNl9uCOhV(?dsn53e?RNb9mven`%7}YkF8B z)oAR=hc*kDsT|3E+U#`TiLm2#T4n-myUHbHsKf$%FYF`g5q;8Vvs7cCBiotw z9qJEHQAL$(bO~NU3+IoAA}<@6nV(=1&wK4h@4lfk$Xfd(3rl0y)Tuoi<=yqLI=V|` zv#}LC4YS7f9gL724@0D8X{1YE)JImuiy{%#;j~IVx|BH}fAm)|gWtRDSLMN@ztUy@ zEqyt^qfq!6?fXxCB4H~a>cksQ59IZI)FyKdGKY$g0h>ND0ZOsoSgiyQM??_>BP!{9l!Vb?K@~a)svZ*r7Gpy*mHLvf#KsdArD3>C z?^W;E4>{L5svrwFH}bGySE^p=K6Qv*&P?|W(~B|`*_u*%KF7nL>d0+sPmrqh6vj$c@piuL#jCnFJK8(7R3np~L)ciggbbch=YH{GrDLfANRClyF{2pYWs*@gK83;Grx1y~)5bh7&` zu@ikMr8M+<%QxkqyYfs2RulDzk z)9gaWL0?)<`n@$5kV{QUpwAYX%NeXDpaNkd0PZztuqooXg##}<2i=G(hT$&wD2}Oo zg*+8`NVpRQ-Zispm31!0t-dKUYpS?2d+z+W?3?u@|vU-T_;h)FB*zr{NWT){OuqFrSnYt#o`T zPNp|2^GJiMgvn6DYR5|vTG`vQ8==UYR3Z%-;JShBF+^h45{vkH@f=Z_&iPFA^@V(g7JJ$G7+P)C+QP7X%# zD$O=xU~;KeE;R6m;;!YaEgUb4+xo`{gB4!O$Yo^(=*6JTc5unJ}nQYPrwUk(@)-Pd~^@DUDUmPBe09X&p5x*RN?j}SO2RVReF zr|qjt7}k(Xyx4@E_kRM?wlIA+H|ZWEa*!C3%TBGn5oZh^+B!36;{Z-<9+K z(*N313JbR%Z*|k{nJbssVdReLlDn3u`iW)hIJ`ngI{^fb@^NTQsF{xo|In?&0Fe?iOt1_IV7Hh05`4|~HzwQBZf!;`!4$&>+ z>oyT>EH4^T$bGoUkpSQ>c?lS0$_LwV#Oew28A(k^d#=12vVcW;N2!Juf@Hg zACETpb~L;#zJU9AQgK}t9jBeqQQxeiqFhb^hR1Cvd0i%bR1*!9rIXE>&-x9WXSNIvK<5ym-fcS( zHYg^j&htlhske%53WPLo0Fe~3+uv)j4)^&AamFe0nv12I3GR8Lbt(J4uSWg3P~!J~ z{-Y{ZGuUJHUM%z{uJ97iKdgd(OJ&1<&9*c9EAH^=x%gEBB}9z;-L;(;@ydE?%)7bU z`(-cR$Mt{rcXI}uA*xBB7PO4Rh!Xt@SGOjhg;sb!PsOhgGms1DF!Yf}_#oCb??G{n z!1rN&!miIv$3i$Vf6-l+G$Um>P9M=`#tmt;8|J{D32ewO+GDs+0$#`EW6* z8q8hX!wTZ(5jr3>X-0J;_)UGQrKdY>pffsdKm?n38?t1C=5s{*v8OEbGA`&ud*j zM3PTNOi*+Aonr*`dV5vw-}{A#v;FOeLew6}1ER{EK{LNpvXM>LE~yc!zXG*Kl~I#A zk6J$fu9*Ym!6pMd0JyVi5G4GY!D3HFtOEJU4mJ1q+V)*gzzDz}_Bq5LllAt&9HR0d zC1Jl3A|YrC_Aq{3XCI1V@d-g-Dj)$$IIRL}H!0YtXWfMwV{;@#Ritd|mXcIxfpW|8 zu-ea*yFojZXZz%bgq|4p-_uv`EQ^~6JmlGoRtJVJ#$idVhtnp$HBWY&Rlihcs=$}H z1@Y4Qe$uH6f*P7YZ0*#uQ7A?!@!cU30UUoaOmdWYBozC_$p~OTI-OA+rSwFKc;eBj z2h!+bBg?OlDm8%t-mj22G1M5Tj}jo84}9{97*K*jO9GG*^KA8D1s8!}Pd%&5!XOi= zOijl6+2})s0~@dD*DTRFdBkQ)Jmv`z%e-N=!a!?-(Kvf9@N|d`-3;VfHA+BFnFE3D z)CU7r3?-6-tA=5%(|{5-1^SA#{VRk4p-hON-<_Z*papUK(2W`>Zd{kLee4&%{E0*tt@}D|07vRM&n;V(1Ke7Ay}q?g~GEMq|4kjSw;XMO>uRN@7G&kJfqk^&U!XJBol4FR}@7)?88K60M z{_(u=`&O(ED{(J@KG7QFdjDuh^v|&7_hHQpb0ZV;>{D3@@!SU!zi8?R$_ias@Q)1Q9vCfmsMb(Og2SuG)5-+C4DjsU+ z^;lv9ARaFF5e;h(2U9|CbhbTLd}r)RaQeMhA$3`{F6wO^lTdF(KI+e?Dm>)?bu^}U>f3mo>J)Vqxb z)f`sXj~R!PMu?L%@;uK95>qAzrtmqW;hc8wGT!bTX%1&X=?ylqrgyhdjS#Q1d;J}S zrh0kBJ-4m$D<2;(dP#d%ed>p2!H2EMj!eu2+2gNG*lAxLvu&xpS!Xf#>6zCIG4V^# zf?cC0Ga6@t)~JI?s8ui`4HvjmG^vD3D6fYP`>C_Jws{ePev#^<-PeBbb}00o*JbeR z=8v5$lShY#8ttg=U-ON<^7!@B^IUh-yy(@wNk1k%VJdM>XzMD^4!@_I zYve|@_X9Kp{UB>yqL%#yyc34c-omA&C{T)8MMC2CF^JORv z5lMfd$@%-1o9$#@Xr_n^`!e#uwRofccR0kOZ1K;_Zd7h}zbFpRMd2y$dR@8qZ^_I4 zneO=;a;*Lj8Z6)Io`2yxLZz&D!jU~#(Tu1m8p{_j5AOl8x#kKy!ebU(huL3Xqy_o&v))T9%~Rb@w)G3 zbsdaq`1BPF%L{7aR!suINtxS#sp)vo@Ao7rSBH2hDDI^ zBO18~yB8H${|O=4i~86n7a7U?GVWyguLXBd>Zx6yC!Xk(iW*3=Et0v5x_hFhc&4w& zn&g|#P0h~cD-1}A?K;zQGxp2Lu(a%3bCaSEM5e9B>P)UV5e91MKi|-$gsa`02NVQS z36~<%21ZwKHPp{r2+Fd|X@BV_@UP5?Umf#bUB3>pOy84({!wd2XlgCgoKcAdQ_$-0 z>fVZ~%V#z&Qk}MVUsyQv_Mtm4c29l<Of&q1(z@?v!GN8{vjOJBAaUqvMj&n2kyI>1(6 zLldO7?IAai)mQy%<2ZYy>~gkTJ6XtZt(|ZTKMgj!W$ZEr6*TpjJ~nmH?bs97;YQ)c zFL%BDDxmyKOO59;t=Fh3XaQqMh?%tvU-3-+PvWN(GqEf;Ni!z<-wIt5o1^HX(K zWlGOXrO75xSNwqPud9+!uPO}TD{zG^L}!1v;M~l`;+QSAW~P*grmWjWvldizpBkp! zwOtPOevl0l7g{JcHM+fWy|^gEGVmDHqeO_{{7H8RHovw?03%Ra>3ZH$!c_CXD~Ef# zAJ>OHax6oGVG8j6D#rd5Po0S+5%XFlwHAj#_e8Ql{Z*=?70~UJu8AkQ9b4z03U_Bd zy;zI&V-^Bdk<5ZA;4vs%j=;K^A6M>${A zyQUxN9fZax1V2z6$nDu~=i1y68hVyr5HoA}X!7i`mrtvwxZhm;s95j?P-EquG=Ev= zR(SQ(R>(b`L!em)f@`g!keWL~OyoXtnwnE#%FhTl#lB|7laFSt+m_aLy6J4`-6Ao= zmnXaDz(!E>l1=(zx)5Vu81Pz)Ijh2s$tiVQkS*gG2`0ry!6O@a&=98(=e&Svx;&@z z`l$v?y2E=4SafDyUWto_WmVC3sYVx$6_y5Tang+k?RIa+bsWvb(7no34vHUSC~&rC z`y4(+>(%leiso2B-O@H&Q#j(Ba$&$;Y5D=rqp3U4xJAhJ1wl})Mw-4Dy}frU-pRw` zXrsL&rzT%yO)9&TZNP(flmBO8q^j3}tvy6LJY>J1B!Z)vy7X$R$JTqc)RW z12scN4LYsu{|w zsh-r>#QUkEjT38(I&(U_Fv~LM4J8WCV#PK&o=On)yw{Uyza>w-ymsB#K1G%5Q7tey z84&b~hljCR4KljtW*j6xb@4eOhgTdMAsv(>QsI+hhfR={%H_RzD)KsSwNHJDnhv1 zaApkaBv1UfL`ulzu2odgV;Zm5CmLEy+s+fw3G}f)oxM2){wk^d*v~<-uJF&t9p1$;*$KXQ@Ec@tnk5dIKFO%z|IBj$c!e z3{4+17>Bm_$fE{X8(6&gG2BUk(I;DNl7-Tq(-}-(m$BG^oDANZt+d*9MfVJ{`o*lS zNME(ROufy}(m-(pW^OuPQ=vM(h~!@qg9YDsdWnmT)WD?X)URY9ZkUKy3;;f2gu zE(DiI&H>TT!{ngNUZ3ppxk~5 z0wu%tba!4Ht+IWf>8HTE6NH~T9>&IT)0W8UVjR#AN>sHQDJoG!^z}A;^=$R_I!u+e7@w7FYP0IxWx7B2mMi= z4gl{YHQO2HKN}~?tG(^ZJQn_Xc_>cZU8c)N>R0$8&%`NC>w-0QyQrwo7n zPZc8;nBpMLZM_3G;lHb`_)NU~F}qsy z@`&t9Q{4>}ayI&Cr*?i_$|^nMD*np&OCTffVZ|0TJ346mHpI6!?+q`P`(%Yo4U}8T z%d&3JJk~44rf+)(PEB^ce7!uB(y;NeAldwd9Iu=9sN35+eH~Xne1*8nCeo!W9x~pq zox!f5iS0GTMT5z~Sv;}GS!o}}bEhcolrF1ZlDF8dcV}H5n0)Dipc}E?$!EXWO|whe z7#WuAVF6m2}cr#dBKd3R|2tldn!-$N*qB>moU?S?w@HbwrevZyfB^{JT>-w7D{ z7~fuhoi}r}BR#VFVtGl6RP3bWr(trZ5^v)K`m)qyAqt59Q+1V;4$3Fqy>yg*o9|X# zASl5xyxl9pvyNDJow%#fHGM2FdIEHC28*2qWjs$a558@7IXc%*6W_c9-!|+H_J;Nq z9xY*&IYASz#}SF2mLyq~1i1<3jrJ9z_yuzg)Rhuwco^Pp-WH=X7^ZE57fM>BlGrv) ziBddak>Z#9$p8O&)Hqg-B)0(`}ZPqxf?$rvMpkgl;&LFa|aU07NIeaU9wK(dLz&NUU#g+3@>dHXjy zCVyAu_Rr!t|4%W){LwhV{_&tc)+5w94Ec&!6Ajyw%2>Uy?qxUb7`SD28K+xX)!XM$ zI$iQqgI`5ep5@Hv8@`bMs=DS^J$)=C?*PvhrnnwKHi{LfyL>xHz3bM~!larxw#CD7pR2Pa5I1}6)oZ%1 z6h!n9M}=P5Q1Hm=iWm2AK+uk)cn?1jrGqe5)2mW-76L;eK8~m9R^J6fFH6L$m;u$_ z7)EV66kTMBOY=~Fy8LlRSp8&CIr?C&TYg2^&ED-8Q=)MqwIx(}Oopgv>{^{)6_W=# zk{91qBYYXZ0(&X2t4kS%1(oj{@pbfv)%a>$b5?IJPabP(o|n%*68zegc{BbailTXZ zjQUXyvw8}$#_lPdt5d+moeu=fEKw>?dGy?aq0e2JDrI~Wv(8njn~Id<r2JtjNd)4ltbY}Ynw&YNot$;;gaw;tww$+MEzCCu z)lsF0y}Q_I3NNmBU&bY#>1}(2*vv(=fTJeID6Qj!3l7^wX(^3u-Ssaz-;NWOg zBmigDTf zC$CApsQA5Qv)h6o*vOi_)m${LK6!>0nVoQ)^OcRS?oymyr5q`JD)7*|i3-Tei=E~e z(dD_dBWl(0xAfbmf|e@m#-a4sIxBb{)W%@2ST{Bzb+g@RS%rD-2(hiq=0#yq<$W&H z2-2W^mWp_Vq{-6+`@vH$MLIk|MJhS|1dnI;xTYXizy|@_xwulL;W^c9C$w7K-V2Nx zUW7Z7BWS(O0+9JoK+A>aV6pj1xphooCJ0i`K4xC`J z<2s-ENIE_B16h~PvA+)3|C|&1{h$A}7#A8rCirX<&f?c0i$D6i{-2B$Q2hQNg5E!! z1NcYrefU0qzBlE(XO@R9@( z5WeT_g!?e!L+<;sbGYX^(X*k$<%C&*j$bz*|95ER|CDq5m*OS>n_Et6_#cFWF~?_p z3DLh4)0!N?z}v71q791)hiJ0W%vG;h@5o%fe7!FjjOTY08yDsK4C>;JVjNydIvsmoVBDfaS94**KLRyF~m^KL0c+gjsp$=I_(l7R+;Rl58E2507!YTjTJ zw{kHJ&kyx{Vq$qRE2by|eL;_Ru_mj0n~Rzd1RbT1QO?@gf<)ve1=u@tyNyK=LWYy$ zjHZw5?K#*A{RM!+eZaFp3_O^F8wU`hdnChs_x9>vb5zLP2>s-Ca!ncTC%cB__|WYs z;B4td{<&;;Ls+{cF^%M5b?cQa&9}g3d6`t=a*}tZn3j&mN517GbBS-6Hh^OJ2E~BO zzQRyG5xFP7Rag>e!*5;Ze@o2o{Hj-mSk=*maa3b$r&7EqC}2{fD7R6{J^qqs!v#9J zdr8hJXUe2B=LdAkqpX5YxTPWNt(e7`{35IAps`ht4n3^0-Nu!ff=yC-Dz!Jy$=$>4UK4`lm|Bhi<6*T*4S6#R|hZl$d ztD13*2*786Pc;oxPH`K37Cye=89|26ED=yjaOda%_u%-5Qw?V)5?riwU-iM6p^y=z zQep1^c2w(C6ECr`R7YBcXYwn=O@MttnLC#GgY91HY~iGq7fiJTIZ=GOS;32XRVS5O zY&bs2Z4+W36nnXAaGg_ghT2JHui)cu2I)F+L5X)^TT|koF|ROYTflB(kG>@h(9vmB z(}P6V18cI9x24?hT8^yQL`k&W&SB-1l5^$ntH#_*+gWV(iUMqC8_g^YaPJ$8q$5E+0d$*`(55m}8^XuqG{>Y4q<;D)g4Mn7o5l928mm*ki{ z(CmC~==wz~uE@wxauYWy88H%#%Q_b}6mQK=HMmbM^pQt2(9T}G;ZX`rU?Q3CV||Yp zY;?A*pLlxH$WOvhsBJUEe4{4%Ns?VcVfZBbhbFS29uF6utzP6ST@M|)t7Aq@NxjTd zP8*~L>AbL#B)P&*m~OAtq&7>LUh1)T5i~J95oPUfFI>9hgG$Y;?tvTUx?_*K~ z#VuY-MLW?6EBq4xx9zV*%?p81HYn>65gwH)F9{?&e)fJStE-}fVMdz^fKfgOYb@#$ zyhXh+GRjV4uo#|DNPH4@|RoD%JnQI83 z*$F}s;9YOV(rX_6Y$Z`1eK&X7o#gc%eNP8vir&>|yucug0Kn^G)x=8Et_ri{#pupK zliksKFB_&mj2~HAQRZg;C-vuVsn7pj)dzH`_wBzlj`=Mx@88=Fmz~Vg*XxSld?jQM z*GY|2p%kWcOxVc|4SyyDxiw#wlw4>VZFqz0jtW$qXS_cSd%elbWVjm7&$!@o_4N9= za*}c9klF<-{H9~_0uNil)+=1zE-LQ8zf4b9V;25GjM2v7vCj2EYT*r zH0r~{r$x`Qa91<4Dv{$cckJ}oj8BSUt7w48ih_2g9egmDRM%Lc@UFLkywAKB6HW9* z9=f;&_LNYnR8Un7)&BPVmS3B`c_Nax|Ac&*v zh)JLgajWf%p~!mc6{rH znYxe@MihrQXc@wTE8Qr%zJQb}6>81*Dl|CfdUu6eidlO}Ba@(!U~|K477S~|0mH8Y zqMa&MP_>yrm$D2N_cuhU-nJI%8%9+KYzgoM35|B4cH9IYfQC(2Sc9EfHi%dR@uZJL z(mBKv7GI{5yEn#Z>9@4a{mrdXY;|p`8SO#hSl73+@l%->)n77|HB}?9R#)lt`%a~qaZsGt2Eqx-=0e^bVX=mnc}`A z$!GkTp5=QRsf4oGGcwCVmAS7S+BcXT>xrV8&y42t$!0zChUrNC8%SVjnXLIm7;8F&%CM%n3Wbz=>d$`FdcDP3* zZYJ<%w446CVn$~7)PhIjMq${yAH6E7otE4!@LnZYQ(Ea)Gky3wh7&1NCCNb+K-UF<;@1FL zd(cPLk0?xQV9tI^E!>lCG^od^INZh0~qQw_Y5ciri^9zsWONiq~)CxET^M8n!KDlyKi_ zx9F5O2?CQH-w0hlu?STI_gW8uqZ{#$ia;sBGHB2vrH=)*S4TIix6osIG`;P#ARiRs z2;N6K$g&&20#NIsS|H_h2msf!AokcCLv5%=)cAPI7{Bt4W%v3L77j%h_UzzN|ThMuFF65(wrL1K=L#Q^DN9AJxga}tAyD4PkmZ~RM+0e`Y3jlkxK)A;%bti&QE~H} z@U%tgmQ+1*l0DngE=9#&%+KZrHDeOqwBgZbBqOLBHe;Lg;Qdxp6Pd7*OK12QRjllf zga(J7jQ>nCT|L3n?+o0gV~qrSYc|9kr3 zpZVMW$90?<&Zmq0G_QI-N($?si2yz;kNH6ut=a2|8J-IS)0~AENDZ1ImLlct)z;LS z$j1&^E8h3Xa%NkNNWG5eV3bltZ(rO_crg_!Nz3FX@sY2q{E+l4^bqp+plL8Qt!d4U z)wOcRC4&muM4j#%RlQb0?1j{{2~8hm1n2MXMPh>>S?|n{rUsRvZA0qT)1KqaG^yi9 z1}amr4;i|nwX1Wl9q2f6yL$EcnZ^#X-LArwcV8igy}Kgn>{smR7RYXDTzwt3lWUOR zi+9Y_bh^VMa(tNS(Y?{ey-fi$6G<1AqsbU)+hle8#>SVu)oJe+&;Z8^u7?OwB?zj; zyYn&6Vkk0eLCUprS|BW?V~b~(J0l6>GMS6kc06QT9EKM! zhhk~S2)1K2^B29LQJ1=g#h}U%;{8ndSApH0)HW$KDJ$;b0^BV}`Z1guQ)bLjSxH#S zOa7NCO9q^2RbpABc_W)Yl5uM$(8SXPE>*fB)`sajim~1INVeA=nN&`0a8b|ruhoPR z$TI|L2h+MdMbpP*j$9pP@MhGhZbB*X%RSo$2dA!-E@~`Qw}ojsm=Ha!>S2aa}i5c zr44qlT}I_C!{%E0i3CwBoOyES(TWnUjoXnXzQ;!|*L{UlY<0ym&x2I=(+7x1Q~<;p zb@L0V{do>y4*@FIPSp}UvrubYK&e`xYT$2C?Rdn_CsY6w{d_)t1C)#t*2gB4xjxl0 z!I-o9*b+lXxgO}kW+LGzCvnqS{yatoru@SaKC(FqL8}MX9v5{Fw&bbLe_&WS0#6KA z=Hf}5N-2q69wbj3zKDAKEWU|;X%{Yj*)-<}m8bFDMa$iH6e=HuN(39pQpe%xUu=qs z4(7Fu3c{=E8@y90?~fL8KZs`#&^D+sDH<8Lp04vuEJBV3GT_K=y?0f}K5?+1_Kbnr zmv?(N)^#Qf;t(uLt&j9^(qA^)SDT@T%H8W_W^(qV^^m-h?xQ=J`T~p2F_nbeEW#rVZWmbt7!hGv_dZ;&n5!#$YpW#EInnL#c<`gi`S`Gx zf$AFO!4bM;gZT-1B~*iJL7HQ-(xe_uk!GVS_Al4F$M z#;0Pedkk2JujJI6Gigb&hpW9Cs89Z)W<%jw5)Fw<8TApb;zczjdToUPgoB7d zVOez%+Avl+(jl6aRFXpaz_i=EnlaWFXs_oxeK5iy+mryj>boJNcMJQPWzhLVs+QdY z9FRs9Z{GebducPnE+H)sO|rNF_5)~5{@4V#&J?p<*g^BGyn@dyG?|u8jxX*tnuOx& z-Nj8>Fk|(65BN{c@ozJ$P6V4H0^fzNznQz${vLulZB4rKa1!asN_#hvFDu_K^R$L} zuj&K>{{&3dZ!V!p@!sn5ZO&j@mUk~+kQ=M;k8ftS2c*MmyXJ`AoWSNVfh^nkVC_MR zFGUYxSqkyN)>uCYdWd*72K^P1oc0a%;kGr$BV7@ugBgA4cG{Uqj8D2VGNj!+%-n18 znXwYz0@Y%6Ab-=fr`}cxhoD#^IT(JU{3rV~OPj2&$Yi;z@kXSO`kPmuboID|bIWNn|wT4s{MU-Dc4>GD)h;JMb7Z4zps?rI0QM7+vd{ zervb70ooKw?#8Zn{gNK`wyh!#CTeQ-pK{+L*@%T1p#12l4*kNqt!pt+@5qqg`42Eb zvJ{@)TN_&M%OhLM^8MTzhMRm#@U~k_B);j`Tc7mG^P<#*xN{pL5^nQliw(tJ=;*yy zu5Hq5QT6b1fT`~%P> zv;EeX^Z=#DDGJSHjkI+Ck7e`(GQe3N1VVWRoqEb#JNO^I+jJ!!9XJo$qz5Kv&VFMS zH8sff1tLe6uqac_ zivTsaDv_BOPQX>;u&^57O3(mk7m+YWz$1vq%Q?i9+1zCU3M!8~%Js2GxJIZCYjhQZ z4E<>r#37?ajtY)|4lC;h+KYFy78>UoQFCPwh=m1>i6Dts{dHuDinjM4+l|-+hAMpe zoB{*E?rspo(VX(a9Z+Em5x0&oijlpdaQk$Nx(ai<=J*QD#nt_~!&@5AzOoA!Aai_Z z^9L1AxZ=0pITP&Msg4%=S_Dd+e`awqm;}K1xNJRPosGthoQq2Yma-7(nnTiE@^Cta**{E&UhSiy_kEk>74Xh*B4guE21|Wo^d>j-1`~Hg~g# z>{oEv%vuzL{IhwJ--`R}Z~y-~_Vdr!_Wv9E{K}sgaR_|xX$RDw0}%Y?5~z8K0zlw- zvid+J{qqHz6Lwqq<7dAwulzTDS1}JkLx~zf@q6ni0-fAO%!<+xJ9ls2Nv$W9hEq)e zSte5Q?0NMaQ#AAzb}en!PK?j72~}eSmp@!OU8jE8RijHbQ3{|NYg*Cq1aciBY3o-= zogN^^lBofNFEH#u5G7_n#1k}*e1#~@>_{vTi&b~~M_ph32J^&NtqcBXUUtV^LO9zjO9c3ae{}+{pYH4QUN8L|;{M>R;C>Jn`o+y_{Q4Anz~pT&_4=$-_~(=S`A+_vT|X`I zKiA2367Nsh^`{j6Q=j~)>w|Y>$zdOfwyNhOZ>>Gly%nhiT&**uZPewX3yT_rG4J052vLQc z_Am0kasd$O`QwzXf1cydG5imm1Ais{einnj^|`-7zZZ-DXo39aUEsH#>|fpfTQcis z0r~6C-;!m&HIlz2M1Lz~^P9r;w;u5KKESUZ=+EE(yL?%Hj{l$I|F6se%C7?@7j|F} Y@Xzeky~B>zS=Gpd-rH(Fd2#dq0f@);u>b%7 literal 0 HcmV?d00001 diff --git "a/image/\350\277\233\345\272\246\346\235\241.png" "b/image/\350\277\233\345\272\246\346\235\241.png" new file mode 100644 index 0000000000000000000000000000000000000000..4afe70eee5c0c8140bad8bbec2cf2ab9fae7b408 GIT binary patch literal 22172 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%0A8BPLHKTD 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 + + + + + + + + + 现代C++并发编程教程 | 现代C++并发编程教程 + + + + + +

    跳至主要內容
    + + + diff --git "a/md/01\345\237\272\346\234\254\346\246\202\345\277\265.html" "b/md/01\345\237\272\346\234\254\346\246\202\345\277\265.html" new file mode 100644 index 00000000..bc94d4ef --- /dev/null +++ "b/md/01\345\237\272\346\234\254\346\246\202\345\277\265.html" @@ -0,0 +1,40 @@ + + + + + + + + + + 基本概念 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/02\344\275\277\347\224\250\347\272\277\347\250\213.html" "b/md/02\344\275\277\347\224\250\347\272\277\347\250\213.html" new file mode 100644 index 00000000..838a5a01 --- /dev/null +++ "b/md/02\344\275\277\347\224\250\347\272\277\347\250\213.html" @@ -0,0 +1,420 @@ + + + + + + + + + + 使用线程 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/03\345\205\261\344\272\253\346\225\260\346\215\256.html" "b/md/03\345\205\261\344\272\253\346\225\260\346\215\256.html" new file mode 100644 index 00000000..e13c2705 --- /dev/null +++ "b/md/03\345\205\261\344\272\253\346\225\260\346\215\256.html" @@ -0,0 +1,435 @@ + + + + + + + + + + 共享数据 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/04\345\220\214\346\255\245\346\223\215\344\275\234.html" "b/md/04\345\220\214\346\255\245\346\223\215\344\275\234.html" new file mode 100644 index 00000000..5f20dd0c --- /dev/null +++ "b/md/04\345\220\214\346\255\245\346\223\215\344\275\234.html" @@ -0,0 +1,907 @@ + + + + + + + + + + 同步操作 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html" "b/md/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html" new file mode 100644 index 00000000..4e77c7ba --- /dev/null +++ "b/md/05\345\206\205\345\255\230\346\250\241\345\236\213\344\270\216\345\216\237\345\255\220\346\223\215\344\275\234.html" @@ -0,0 +1,299 @@ + + + + + + + + + + 内存模型与原子操作 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/06\345\215\217\347\250\213.html" "b/md/06\345\215\217\347\250\213.html" new file mode 100644 index 00000000..f9e89fe0 --- /dev/null +++ "b/md/06\345\215\217\347\250\213.html" @@ -0,0 +1,40 @@ + + + + + + + + + + 协程 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git a/md/index.html b/md/index.html new file mode 100644 index 00000000..d5b91667 --- /dev/null +++ b/md/index.html @@ -0,0 +1,55 @@ + + + + + + + + + + 阅读须知 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/\350\257\246\347\273\206\345\210\206\346\236\220/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html" "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html" new file mode 100644 index 00000000..8b33b3b5 --- /dev/null +++ "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/01thread\347\232\204\346\236\204\351\200\240\344\270\216\346\272\220\347\240\201\350\247\243\346\236\220.html" @@ -0,0 +1,93 @@ + + + + + + + + + + std::thread 的构造-源码解析 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/\350\257\246\347\273\206\345\210\206\346\236\220/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html" "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html" new file mode 100644 index 00000000..22e1abdf --- /dev/null +++ "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/02scoped_lock\346\272\220\347\240\201\350\247\243\346\236\220.html" @@ -0,0 +1,116 @@ + + + + + + + + + + std::scoped_lock 的源码实现与解析 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/\350\257\246\347\273\206\345\210\206\346\236\220/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html" "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html" new file mode 100644 index 00000000..c9a8ab7c --- /dev/null +++ "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/03async\344\270\216future\346\272\220\347\240\201\350\247\243\346\236\220.html" @@ -0,0 +1,378 @@ + + + + + + + + + + st::async 与 std::future 源码解析 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/\350\257\246\347\273\206\345\210\206\346\236\220/04\347\272\277\347\250\213\346\261\240.html" "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/04\347\272\277\347\250\213\346\261\240.html" new file mode 100644 index 00000000..73f2d635 --- /dev/null +++ "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/04\347\272\277\347\250\213\346\261\240.html" @@ -0,0 +1,259 @@ + + + + + + + + + + 线程池 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git "a/md/\350\257\246\347\273\206\345\210\206\346\236\220/index.html" "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/index.html" new file mode 100644 index 00000000..2e14a00b --- /dev/null +++ "b/md/\350\257\246\347\273\206\345\210\206\346\236\220/index.html" @@ -0,0 +1,40 @@ + + + + + + + + + + 详细分析 | 现代C++并发编程教程 + + + + + +
    跳至主要內容
    + + + diff --git a/search-pro.worker.js b/search-pro.worker.js new file mode 100644 index 00000000..1dd146c7 --- /dev/null +++ b/search-pro.worker.js @@ -0,0 +1,2 @@ +const{entries:V}=Object,{fromEntries:et}=Object,st="ENTRIES",L="KEYS",T="VALUES",_="";class D{set;_type;_path;constructor(t,s){const n=t._tree,o=Array.from(n.keys());this.set=t,this._type=s,this._path=o.length>0?[{node:n,keys:o}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:s}=E(this._path);if(E(s)===_)return{done:!1,value:this.result()};const n=t.get(E(s));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=E(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>E(t)).filter(t=>t!==_).join("")}value(){return E(this._path).node.get(_)}result(){switch(this._type){case T:return this.value();case L:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const E=e=>e[e.length-1],nt=(e,t,s)=>{const n=new Map;if(t===void 0)return n;const o=t.length+1,u=o+s,i=new Uint8Array(u*o).fill(s+1);for(let r=0;r{const d=u*i;t:for(const c of e.keys())if(c===_){const a=o[d-1];a<=s&&n.set(r,[e.get(c),a])}else{let a=u;for(let h=0;hs)continue t}R(e.get(c),t,s,n,o,a,i,r+c)}};class C{_tree;_prefix;_size=void 0;constructor(t=new Map,s=""){this._tree=t,this._prefix=s}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[s,n]=x(this._tree,t.slice(this._prefix.length));if(s===void 0){const[o,u]=O(n);for(const i of o.keys())if(i!==_&&i.startsWith(u)){const r=new Map;return r.set(i.slice(u.length),o.get(i)),new C(r,t)}}return new C(s,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,ot(this._tree,t)}entries(){return new D(this,st)}forEach(t){for(const[s,n]of this)t(s,n,this)}fuzzyGet(t,s){return nt(this._tree,t,s)}get(t){const s=k(this._tree,t);return s!==void 0?s.get(_):void 0}has(t){const s=k(this._tree,t);return s!==void 0&&s.has(_)}keys(){return new D(this,L)}set(t,s){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,I(this._tree,t).set(_,s),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);return n.set(_,s(n.get(_))),this}fetch(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);let o=n.get(_);return o===void 0&&n.set(_,o=s()),o}values(){return new D(this,T)}[Symbol.iterator](){return this.entries()}static from(t){const s=new C;for(const[n,o]of t)s.set(n,o);return s}static fromObject(t){return C.from(Object.entries(t))}}const x=(e,t,s=[])=>{if(t.length===0||e==null)return[e,s];for(const n of e.keys())if(n!==_&&t.startsWith(n))return s.push([e,n]),x(e.get(n),t.slice(n.length),s);return s.push([e,t]),x(void 0,"",s)},k=(e,t)=>{if(t.length===0||e==null)return e;for(const s of e.keys())if(s!==_&&t.startsWith(s))return k(e.get(s),t.slice(s.length))},I=(e,t)=>{const s=t.length;t:for(let n=0;e&&n{const[s,n]=x(e,t);if(s!==void 0){if(s.delete(_),s.size===0)W(n);else if(s.size===1){const[o,u]=s.entries().next().value;q(n,o,u)}}},W=e=>{if(e.length===0)return;const[t,s]=O(e);if(t.delete(s),t.size===0)W(e.slice(0,-1));else if(t.size===1){const[n,o]=t.entries().next().value;n!==_&&q(e.slice(0,-1),n,o)}},q=(e,t,s)=>{if(e.length===0)return;const[n,o]=O(e);n.set(o+t,s),n.delete(o)},O=e=>e[e.length-1],ut=(e,t)=>{const s=e._idToShortId.get(t);if(s!=null)return e._storedFields.get(s)},it=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u,M="or",$="and",rt="and_not",ct=(e,t)=>{e.includes(t)||e.push(t)},N=(e,t)=>{for(const s of t)e.includes(s)||e.push(s)},P=({score:e},{score:t})=>t-e,lt=()=>new Map,b=e=>{const t=new Map;for(const s of Object.keys(e))t.set(parseInt(s,10),e[s]);return t},G=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ht={[M]:(e,t)=>{for(const s of t.keys()){const n=e.get(s);if(n==null)e.set(s,t.get(s));else{const{score:o,terms:u,match:i}=t.get(s);n.score=n.score+o,n.match=Object.assign(n.match,i),N(n.terms,u)}}return e},[$]:(e,t)=>{const s=new Map;for(const n of t.keys()){const o=e.get(n);if(o==null)continue;const{score:u,terms:i,match:r}=t.get(n);N(o.terms,i),s.set(n,{score:o.score+u,terms:o.terms,match:Object.assign(o.match,r)})}return s},[rt]:(e,t)=>{for(const s of t.keys())e.delete(s);return e}},dt=(e,t,s,n,o,u)=>{const{k:i,b:r,d}=u;return Math.log(1+(s-t+.5)/(t+.5))*(d+e*(i+1)/(e+i*(1-r+r*n/o)))},at=e=>(t,s,n)=>{const o=typeof e.fuzzy=="function"?e.fuzzy(t,s,n):e.fuzzy||!1,u=typeof e.prefix=="function"?e.prefix(t,s,n):e.prefix===!0;return{term:t,fuzzy:o,prefix:u}},H=(e,t,s,n)=>{for(const o of Object.keys(e._fieldIds))if(e._fieldIds[o]===s){e._options.logger("warn",`SlimSearch: document with ID ${e._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${o}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}},ft=(e,t,s,n)=>{if(!e._index.has(n)){H(e,s,t,n);return}const o=e._index.fetch(n,lt),u=o.get(t);u==null||u.get(s)==null?H(e,s,t,n):u.get(s)<=1?u.size<=1?o.delete(t):u.delete(s):u.set(s,u.get(s)-1),e._index.get(n).size===0&&e._index.delete(n)},gt={k:1.2,b:.7,d:.5},mt={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(it),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof console?.[e]=="function"&&console[e](t)},autoVacuum:!0},J={combineWith:M,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:gt},pt={combineWith:$,prefix:(e,t,s)=>t===s.length-1},Ft={batchSize:1e3,batchWait:10},U={minDirtFactor:.1,minDirtCount:20},_t={...Ft,...U},K=Symbol("*"),yt=(e,t)=>{const s=new Map,n={...e._options.searchOptions,...t};for(const[o,u]of e._documentIds){const i=n.boostDocument?n.boostDocument(u,"",e._storedFields.get(o)):1;s.set(o,{score:i,terms:[],match:{}})}return s},X=(e,t=M)=>{if(e.length===0)return new Map;const s=t.toLowerCase(),n=ht[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map},S=(e,t,s,n,o,u,i,r,d=new Map)=>{if(o==null)return d;for(const c of Object.keys(u)){const a=u[c],h=e._fieldIds[c],g=o.get(h);if(g==null)continue;let m=g.size;const p=e._avgFieldLength[h];for(const l of g.keys()){if(!e._documentIds.has(l)){ft(e,h,l,s),m-=1;continue}const f=i?i(e._documentIds.get(l),s,e._storedFields.get(l)):1;if(!f)continue;const y=g.get(l),F=e._fieldLength.get(l)[h],v=dt(y,m,e._documentCount,F,p,r),z=n*a*f*v,A=d.get(l);if(A){A.score+=z,ct(A.terms,t);const w=G(A.match,s);w?w.push(c):A.match[s]=[c]}else d.set(l,{score:z,terms:[t],match:{[s]:[c]}})}}return d},At=(e,t,s)=>{const n={...e._options.searchOptions,...s},o=(n.fields||e._options.fields).reduce((l,f)=>({...l,[f]:G(n.boost,f)||1}),{}),{boostDocument:u,weights:i,maxFuzzy:r,bm25:d}=n,{fuzzy:c,prefix:a}={...J.weights,...i},h=e._index.get(t.term),g=S(e,t.term,t.term,1,h,o,u,d);let m,p;if(t.prefix&&(m=e._index.atPrefix(t.term)),t.fuzzy){const l=t.fuzzy===!0?.2:t.fuzzy,f=l<1?Math.min(r,Math.round(t.term.length*l)):l;f&&(p=e._index.fuzzyGet(t.term,f))}if(m)for(const[l,f]of m){const y=l.length-t.term.length;if(!y)continue;p?.delete(l);const F=a*l.length/(l.length+.3*y);S(e,t.term,l,F,f,o,u,d,g)}if(p)for(const l of p.keys()){const[f,y]=p.get(l);if(!y)continue;const F=c*l.length/(l.length+y);S(e,t.term,l,F,f,o,u,d,g)}return g},Y=(e,t,s={})=>{if(t===K)return yt(e,s);if(typeof t!="string"){const a={...s,...t,queries:void 0},h=t.queries.map(g=>Y(e,g,a));return X(h,a.combineWith)}const{tokenize:n,processTerm:o,searchOptions:u}=e._options,i={tokenize:n,processTerm:o,...u,...s},{tokenize:r,processTerm:d}=i,c=r(t).flatMap(a=>d(a)).filter(a=>!!a).map(at(i)).map(a=>At(e,a,i));return X(c,i.combineWith)},Q=(e,t,s={})=>{const n=Y(e,t,s),o=[];for(const[u,{score:i,terms:r,match:d}]of n){const c=r.length||1,a={id:e._documentIds.get(u),score:i*c,terms:Object.keys(d),queryTerms:r,match:d};Object.assign(a,e._storedFields.get(u)),(s.filter==null||s.filter(a))&&o.push(a)}return t===K&&s.boostDocument==null&&e._options.searchOptions.boostDocument==null||o.sort(P),o},Ct=(e,t,s={})=>{s={...e._options.autoSuggestOptions,...s};const n=new Map;for(const{score:u,terms:i}of Q(e,t,s)){const r=i.join(" "),d=n.get(r);d!=null?(d.score+=u,d.count+=1):n.set(r,{score:u,terms:i,count:1})}const o=[];for(const[u,{score:i,terms:r,count:d}]of n)o.push({suggestion:u,terms:r,score:i/d});return o.sort(P),o};class Et{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(t){if(t?.fields==null)throw new Error('SlimSearch: option "fields" must be provided');const s=t.autoVacuum==null||t.autoVacuum===!0?_t:t.autoVacuum;this._options={...mt,...t,autoVacuum:s,searchOptions:{...J,...t.searchOptions||{}},autoSuggestOptions:{...pt,...t.autoSuggestOptions||{}}},this._index=new C,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=U,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const t=[];for(const[s,n]of this._index){const o={};for(const[u,i]of n)o[u]=Object.fromEntries(i);t.push([s,o])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}addFields(t){for(let s=0;s{if(c!==1&&c!==2)throw new Error("SlimSearch: cannot deserialize an index created with an incompatible version");const h=new Et(a);h._documentCount=t,h._nextId=s,h._documentIds=b(n),h._idToShortId=new Map,h._fieldIds=o,h._fieldLength=b(u),h._avgFieldLength=i,h._storedFields=b(r),h._dirtCount=d||0,h._index=new C;for(const[g,m]of h._documentIds)h._idToShortId.set(m,g);for(const[g,m]of e){const p=new Map;for(const l of Object.keys(m)){let f=m[l];c===1&&(f=f.ds),p.set(parseInt(l,10),b(f))}h._index.set(g,p)}return h},B=(e,t)=>{const s=e.toLowerCase(),n=t.toLowerCase(),o=[];let u=0,i=0;const r=(c,a=!1)=>{let h="";i===0?h=c.length>20?`… ${c.slice(-20)}`:c:a?h=c.length+i>100?`${c.slice(0,100-i)}… `:c:h=c.length>20?`${c.slice(0,20)} … ${c.slice(-20)}`:c,h&&o.push(h),i+=h.length,a||(o.push(["mark",t]),i+=t.length,i>=100&&o.push(" …"))};let d=s.indexOf(n,u);if(d===-1)return null;for(;d>=0;){const c=d+n.length;if(r(e.slice(u,d)),u=c,i>100)break;d=s.indexOf(n,u)}return i<100&&r(e.slice(u),!0),o},wt=(e,t)=>t.contents.reduce((s,[,n])=>s+n,0)-e.contents.reduce((s,[,n])=>s+n,0),xt=(e,t)=>Math.max(...t.contents.map(([,s])=>s))-Math.max(...e.contents.map(([,s])=>s)),Z=(e,t,s={})=>{const n={};return Q(t,e,{boost:{h:2,t:1,c:4},prefix:!0,...s}).forEach(o=>{const{id:u,terms:i,score:r}=o,d=u.includes("@"),c=u.includes("#"),[a,h]=u.split(/[#@]/),g=Number(a),m=i.sort((l,f)=>l.length-f.length).filter((l,f)=>i.slice(f+1).every(y=>!y.includes(l))),{contents:p}=n[g]??={title:"",contents:[]};if(d)p.push([{type:"customField",id:g,index:h,display:m.map(l=>o.c.map(f=>B(f,l))).flat().filter(l=>l!==null)},r]);else{const l=m.map(f=>B(o.h,f)).filter(f=>f!==null);if(l.length&&p.push([{type:c?"heading":"title",id:g,...c&&{anchor:h},display:l},r]),"t"in o)for(const f of o.t){const y=m.map(F=>B(f,F)).filter(F=>F!==null);y.length&&p.push([{type:"text",id:g,...c&&{anchor:h},display:y},r])}}}),V(n).sort(([,o],[,u])=>"max"==="total"?wt(o,u):xt(o,u)).map(([o,{title:u,contents:i}])=>{if(!u){const r=ut(t,o);r&&(u=r.h)}return{title:u,contents:i.map(([r])=>r)}})},tt=(e,t,s={})=>{const n=Ct(t,e,{fuzzy:.2,maxFuzzy:3,...s}).map(({suggestion:o})=>o);return e.includes(" ")?n:n.filter(o=>!o.includes(" "))},bt=et(V(JSON.parse("{\"/\":{\"documentCount\":122,\"nextId\":122,\"documentIds\":{\"0\":\"0\",\"1\":\"1\",\"2\":\"2\",\"3\":\"3\",\"4\":\"3#前言\",\"5\":\"3#并发\",\"6\":\"3#在计算机中的并发\",\"7\":\"3#并发与并行\",\"8\":\"3#总结\",\"9\":\"4\",\"10\":\"4#hello-world\",\"11\":\"4#当前环境支持并发线程数\",\"12\":\"4#线程管理\",\"13\":\"4#启动新线程\",\"14\":\"4#raii\",\"15\":\"4#传递参数\",\"16\":\"4#std-this-thread\",\"17\":\"4#std-thread-转移所有权\",\"18\":\"4#std-thread-的构造-源码解析\",\"19\":\"4#实现-joining-thread\",\"20\":\"4#c-20-std-jthread\",\"21\":\"4#零开销原则\",\"22\":\"4#线程停止\",\"23\":\"4#总结\",\"24\":\"4#总结-1\",\"25\":\"5\",\"26\":\"5#条件竞争\",\"27\":\"5#使用互斥量\",\"28\":\"5#std-lock-guard\",\"29\":\"5#try-lock\",\"30\":\"5#保护共享数据\",\"31\":\"5#死锁-问题与解决\",\"32\":\"5#std-unique-lock-灵活的锁\",\"33\":\"5#在不同作用域传递互斥量\",\"34\":\"5#保护共享数据的初始化过程\",\"35\":\"5#保护不常更新的数据结构\",\"36\":\"5#std-recursive-mutex\",\"37\":\"5#new、delete-是线程安全的吗\",\"38\":\"5#线程存储期\",\"39\":\"5#注意事项\",\"40\":\"5#cpu-变量\",\"41\":\"5#局部、全局、线程、cpu-变量的对比与使用\",\"42\":\"5#局部变量-不考虑静态局部\",\"43\":\"5#全局变量\",\"44\":\"5#线程变量\",\"45\":\"5#cpu变量\",\"46\":\"5#总结\",\"47\":\"6\",\"48\":\"6#等待事件或条件\",\"49\":\"6#线程安全的队列\",\"50\":\"6#使用条件变量实现后台提示音播放\",\"51\":\"6#注意\",\"52\":\"6#使用-future\",\"53\":\"6#创建异步任务获取返回值\",\"54\":\"6#future-与-std-packaged-task\",\"55\":\"6#使用-std-promise\",\"56\":\"6#future-的状态变化\",\"57\":\"6#多个线程的等待-std-shared-future\",\"58\":\"6#限时等待\",\"59\":\"6#时钟\",\"60\":\"6#时间段\",\"61\":\"6#时间点\",\"62\":\"6#异步任务执行\",\"63\":\"6#背景介绍\",\"64\":\"6#项目说明\",\"65\":\"6#完整代码实现\",\"66\":\"6#注意事项\",\"67\":\"6#跨平台兼容性\",\"68\":\"6#实践建议\",\"69\":\"6#c-20-信号量\",\"70\":\"6#c-20-闩与屏障\",\"71\":\"6#std-latch\",\"72\":\"6#std-barrier\",\"73\":\"6#总结\",\"74\":\"7\",\"75\":\"7#原子操作\",\"76\":\"7#原子类型-std-atomic\",\"77\":\"7#st-atomic-flag\",\"78\":\"7#std-atomic-bool\",\"79\":\"7#std-atomic-t\",\"80\":\"7#std-atomic-std-shared-ptr\",\"81\":\"7#内存次序\",\"82\":\"7#前言\",\"83\":\"7#可见\",\"84\":\"7#std-memory-order\",\"85\":\"7#其它概念\",\"86\":\"7#x86-和-arm-的内存模型-强一致性与弱一致性\",\"87\":\"7#宽松定序\",\"88\":\"7#释放-获取定序\",\"89\":\"7#释放-消费定序\",\"90\":\"7#序列一致定序\",\"91\":\"7#与-volatile-的关系\",\"92\":\"8\",\"93\":\"9\",\"94\":\"9#学习注意事项\",\"95\":\"9#代码风格\",\"96\":\"9#总结\",\"97\":\"10\",\"98\":\"11\",\"99\":\"11#std-thread-的数据成员\",\"100\":\"11#std-thread-的构造函数\",\"101\":\"11#总结\",\"102\":\"12\",\"103\":\"12#std-scoped-lock-的数据成员\",\"104\":\"12#std-scoped-lock的构造与析构\",\"105\":\"12#总结\",\"106\":\"13\",\"107\":\"13#前言\",\"108\":\"13#std-async\",\"109\":\"13#std-future\",\"110\":\"13#get-value-方法详细解释\",\"111\":\"13#总结\",\"112\":\"14\",\"113\":\"14#前言\",\"114\":\"14#市面上常见的线程池\",\"115\":\"14#boost-asio-thread-pool\",\"116\":\"14#qthreadpool\",\"117\":\"14#实现线程池\",\"118\":\"14#总结\",\"119\":\"15\",\"120\":\"16\",\"121\":\"17\"},\"fieldIds\":{\"h\":0,\"t\":1,\"c\":2},\"fieldLength\":{\"0\":[1,66],\"1\":[1,19],\"2\":[1,27],\"3\":[1],\"4\":[1,15],\"5\":[1,7],\"6\":[1,39],\"7\":[1,23],\"8\":[1,11],\"9\":[1,12],\"10\":[2,68],\"11\":[1,228],\"12\":[1,15],\"13\":[1,298],\"14\":[1,104],\"15\":[1,226],\"16\":[1,114],\"17\":[1,109],\"18\":[1,27],\"19\":[1,96],\"20\":[1,15],\"21\":[1,52],\"22\":[1,163],\"23\":[1,19],\"24\":[1,46],\"25\":[1,17],\"26\":[1,109],\"27\":[1,85],\"28\":[1,212],\"29\":[1,57],\"30\":[1,63],\"31\":[2,208],\"32\":[1,183],\"33\":[1,98],\"34\":[1,162],\"35\":[1,84],\"36\":[1,83],\"37\":[2,97],\"38\":[1,120],\"39\":[1,61],\"40\":[2,41],\"41\":[1,7],\"42\":[3,8],\"43\":[1,8],\"44\":[1,23],\"45\":[1,29],\"46\":[1,86],\"47\":[1,27],\"48\":[1,201],\"49\":[1,133],\"50\":[1,161],\"51\":[1,87],\"52\":[1,53],\"53\":[1,260],\"54\":[1,198],\"55\":[1,134],\"56\":[2,101],\"57\":[1,137],\"58\":[1,75],\"59\":[1,122],\"60\":[1,190],\"61\":[1,158],\"62\":[1,15],\"63\":[1,65],\"64\":[1,26],\"65\":[1,123],\"66\":[1,15],\"67\":[1,25],\"68\":[1,15],\"69\":[2,174],\"70\":[2,28],\"71\":[1,110],\"72\":[1,290],\"73\":[1,88],\"74\":[1,11],\"75\":[1,54],\"76\":[1,325],\"77\":[1,214],\"78\":[1,152],\"79\":[1,64],\"80\":[1,241],\"81\":[1],\"82\":[1,102],\"83\":[1,93],\"84\":[1,37],\"85\":[1],\"86\":[3,71],\"87\":[1],\"88\":[2],\"89\":[2],\"90\":[1],\"91\":[2,29],\"92\":[1,25],\"93\":[1,29],\"94\":[1,58],\"95\":[1,41],\"96\":[1,9],\"97\":[1,5],\"98\":[4,32],\"99\":[1,44],\"100\":[1,306],\"101\":[1,147],\"102\":[4,32],\"103\":[1,91],\"104\":[1,159],\"105\":[1,19],\"106\":[6],\"107\":[1,47],\"108\":[1,468],\"109\":[1,304],\"110\":[1,139],\"111\":[1,42],\"112\":[1],\"113\":[1,63],\"114\":[1,9],\"115\":[1,151],\"116\":[1,139],\"117\":[1,264],\"118\":[1,18],\"119\":[1,6],\"120\":[1,3],\"121\":[1]},\"averageFieldLength\":[1.2049180327868858,94.9414938785596],\"storedFields\":{\"0\":{\"h\":\"现代C++并发编程教程\",\"t\":[\"本仓库用来存放 B 站课程《现代 C++ 并发编程教程》的教案、代码。\",\"不管是否购买课程,任何组织和个人遵守 CC BY-NC-ND 4.0 协议均可随意使用学习。\",\"捐赠、issues、pr 均会在致谢列表中铭记您的贡献。\",\" 国内的 C++ 并发编程的教程并不稀少,不管是书籍、博客、视频。然而大多数是粗糙的、不够准确、复杂的。而我们想以更加现代、简单、准确的方式进行教学。\",\" 我们在教学中可能常常为您展示部分标准库源码,自己手动实现一些库,这是必须的,希望您是已经较为熟练使用模板(如果没有,可以先学习 现代C++模板教程)。阅读源码可以帮助我们更轻松的理解标准库设施的使用与原理。\",\" 本教程假设开发者的最低水平为:C++11 + STL + template。\",\" 虽强调现代,但不用担心,我们几乎是从头教学,即使你从来没使用过 C++ 进行多线程编程,也不成问题。\",\" 我们希望您的编译器版本和标准尽可能的高,我们的代码均会测试三大编译器 gcc、clang、msvc。需要更高的标准会进行强调。\",\"猫猫虫\",\"如果你觉得本仓库对你有所帮助,可以通过支付宝赞助白老师,激励白老师有更多的精力和信心维护本仓库。\",\"提示\",\"每一位开发者赞助 30,白老师一天的食品安全就有了着落。\"]},\"1\":{\"h\":\"Summary\",\"t\":[\"首页\",\"阅读须知\",\"基本概念\",\"使用线程\",\"共享数据\",\"同步操作\",\"内存模型与原子操作\",\"协程\",\"详细分析\",\"std::thread 的构造-源码解析\",\"std::scoped_lock 的源码实现与解析\",\"std::async 与 std::future 源码解析\"]},\"2\":{\"h\":\"此处存放作业\",\"t\":[\"文件名:id + 日期数字。\",\"id :随意。\",\"日期数字:8 位数字,例如现在是 2024 年 7 月 31 日,那么日期数字则为:20240731\",\"后缀名:根据作业情况,随意。如果是普通代码,自然是 .cpp 后缀。\",\"线程池作业存放在 thread_pool 文件夹中。\"]},\"3\":{\"h\":\"基本概念\"},\"4\":{\"h\":\"前言\",\"t\":[\" 在我们谈起“并发编程”,其实可以直接简单理解为“多线程编程”,我知道你或许有疑问:“那多进程呢?” C++ 语言层面没有进程的概念,并发支持库也不涉及多进程,所以在本教程中,不用在意。\",\" 我们主要使用标准 C++ 进行教学,也会稍微涉及一些其它库。\"]},\"5\":{\"h\":\"并发\",\"t\":[\"并发,指两个或两个以上的独立活动同时发生。\",\"并发在生活中随处可见,我们可以一边走路一边说话,也可以两只手同时做不同的动作,又或者一边看电视一边吃零食。\"]},\"6\":{\"h\":\"在计算机中的并发\",\"t\":[\"计算机中的并发有两种方式:\",\"多核机器的真正并行。\",\"单核机器的任务切换。\",\" 在早期,一些单核机器,它要想并发,执行多个任务,那就只能是任务切换,任务切换会给你一种“好像这些任务都在同时执行”的假象。只有硬件上是多核的,才能进行真正的并行,也就是真正的”同时执行任务“。\",\" 在现在,我们日常使用的机器,基本上是二者都有。我们现在的 CPU 基本都是多核,而操作系统调度基本也一样有任务切换,因为要执行的任务非常之多,CPU 是很快的,但是核心却没有那么多,不可能每一个任务都单独给一个核心。大家可以打开自己电脑的任务管理器看一眼,进程至少上百个,线程更是上千。这基本不可能每一个任务分配一个核心,都并行,而且也没必要。正是任务切换使得这些后台任务可以运行,这样系统使用者就可以同时运行文字处理器、编译器、编辑器和 Web 浏览器。\"]},\"7\":{\"h\":\"并发与并行\",\"t\":[\"事实上,对于这两个术语,并没有非常公认的说法。\",\"有些人认为二者毫无关系,指代的东西完全不同。\",\"有些人认为二者大多数时候是相同的,只是用于描述一些东西的时候关注点不同。\",\"我喜欢第二种,那我们就讲第二种。\",\"对多线程来说,这两个概念大部分是重叠的。对于很多人来说,它们没有什么区别。 这两个词是用来描述硬件同时执行多个任务的方式:\",\"“并行”更加注重性能。使用硬件提高数据处理速度时,会讨论程序的并行性。\",\"当关注重点在于任务分离或任务响应时,会讨论程序的并发性。\",\"这两个术语存在的目的,就是为了区别多线程中不同的关注点。\"]},\"8\":{\"h\":\"总结\",\"t\":[\" 概念从来不是我们的重点,尤其是某些说法准确性也一般,假设开发者对操作系统等知识有基本了解。\",\" 我们也不打算特别介绍什么 C++ 并发库的历史发展、什么时候你该使用多线程、什么时候不该使用多线程... 类似问题应该是看你自己的,而我们回到代码上即可。\"]},\"9\":{\"h\":\"使用线程\",\"t\":[\"在标准 C++ 中,std::thread 可以指代线程,本章中,使用线程也就是代表使用 std::thread (C++20 std::jthread)。\",\"本章围绕着它们来讲解。\"]},\"10\":{\"h\":\"Hello World\",\"t\":[\"在我们初学 C++ 的时候应该都写过这样一段代码:\",\"#include int main(){ std::cout << \\\"Hello World!\\\" << std::endl; }\",\"这段代码将\\\"Hello World!\\\"写入到标准输出流,换行并刷新。\",\"我们可以启动一个线程来做这件事情:\",\"#include #include // 引入线程支持头文件 void hello(){ // 定义一个函数用作打印任务 std::cout << \\\"Hello World\\\" << std::endl; } int main(){ std::thread t{ hello }; t.join(); }\",\"std::thread t{ hello }; 创建了一个线程对象 t,将 hello 作为它的可调用(Callable)对象,在新线程中执行。线程对象关联了一个线程资源,我们无需手动控制,在线程对象构造成功,就自动在新线程开始执行函数 hello。\",\"t.join(); 等待线程对象 t 关联的线程执行完毕,否则将一直阻塞。这里的调用是必须的,否则 std::thread 的析构函数将调用 std::terminate() 无法正确析构。\",\"这是因为我们创建线程对象 t 的时候就关联了一个活跃的线程,调用 join() 就是确保线程对象关联的线程已经执行完毕,然后会修改对象的状态,让 std::thread::joinable() 返回 false,表示线程对象目前没有关联活跃线程。std::thread 的析构函数,正是通过 joinable() 判断线程对象目前是否有关联活跃线程,如果为 true,那么就当做有关联活跃线程,会调用 std::terminate()。\",\"如你所见,std::thread 高度封装,其成员函数也很少,我们可以轻易的创建线程执行任务,不过,它的用法也还远不止如此,我们慢慢介绍。\"]},\"11\":{\"h\":\"当前环境支持并发线程数\",\"t\":[\"使用 hardware_concurrency 函数可以获得我们当前硬件支持的并发线程数量,它是 std::thread 的静态成员函数。\",\"#include #include int main(){ unsigned int n = std::thread::hardware_concurrency(); std::cout << \\\"支持 \\\" << n << \\\" 个并发线程。\\\\n\\\"; }\",\"本节其实是要普及一下计算机常识,一些古老的书籍比如 csapp 应该也会提到“超线程技术”。\",\"英特尔® 超线程技术是一项硬件创新,允许在每个内核上运行多个线程。更多的线程意味着可以并行完成更多的工作。\",\"AMD 超线程技术被称为 SMT(Simultaneous Multi-Threading),它与英特尔的技术实现有所不同,不过使用类似。\",\"举个例子:一款 4 核心 8 线程的 CPU,这里的 8 线程其实是指所谓的逻辑处理器,也意味着这颗 CPU 最多可并行执行 8 个任务。\",\"我们的 hardware_concurrency() 获取的值自然也会是 8。\",\"当然了,都 2024 年了,我们还得考虑一个问题:“ 英特尔从 12 代酷睿开始,为其处理器引入了全新的“大小核”混合设计架构”。\",\"比如我的 CPU i7 13700H 它是 14 核心,20 线程,有 8 个能效核,6 个性能核。不过我们说了,物理核心这个通常不看重,hardware_concurrency() 输出的值会为 20。\",\"在进行多线程编程时,我们可以参考此值来确定创建的线程数量,以更好地利用当前硬件,从而提升程序性能。\",\"我们可以举个简单的例子运用这个值:\",\"template auto sum(ForwardIt first, ForwardIt last){ using value_type = std::iter_value_t; std::size_t num_threads = std::thread::hardware_concurrency(); std::ptrdiff_t distance = std::distance(first, last); if(distance > 1024000){ // 计算每个线程处理的元素数量 std::size_t chunk_size = distance / num_threads; std::size_t remainder = distance % num_threads; // 存储每个线程的结果 std::vector results { num_threads }; // 存储关联线程的线程对象 std::vector threads; // 创建并启动线程 auto start = first; for (std::size_t i = 0; i < num_threads; ++i) { auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0)); threads.emplace_back([start, end, &results, i] { results[i] = std::accumulate(start, end, value_type{}); }); start = end; // 开始迭代器不断向前 } // 等待所有线程执行完毕 for (auto& thread : threads) thread.join(); // 汇总线程的计算结果 value_type total_sum = std::accumulate(results.begin(), results.end(), value_type{}); return total_sum; } value_type total_sum = std::accumulate(first, last, value_type{}); return total_sum; }\",\"运行测试。\",\"我们写了这样一个求和函数 sum,接受两个迭代器计算它们范围中对象的和。\",\"我们先获取了迭代器所指向的值的类型,定义了一个别名 value_type,我们这里使用到的 std::iter_value_t 是 C++20 引入的,返回类型推导是 C++14 引入。如果希望代码可以在 C++11 的环境运行也可以自行修改为:\",\"template typename std::iterator_traits::value_type sum(ForwardIt first, ForwardIt last);\",\"运行测试。\",\"num_threads 是当前硬件支持的并发线程的值。std::distance 用来计算 first 到 last 的距离,也就是我们要进行求和的元素个数了。\",\"我们这里的设计比较简单,毕竟是初学,所以只对元素个数大于 1024000 的进行多线程求和,而小于这个值的则直接使用标准库函数 std::accumulate 求和即可。\",\"多线程求和只需要介绍三个地方\",\"chunk_size 是每个线程分配的任务,但是这是可能有余数的,比如 10 个任务分配三个线程,必然余 1。但是我们也需要执行这个任务,所以还定义了一个对象 remainder ,它存储的就是余数。\",\"auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0)); 这行代码是获取当前线程的执行范围,其实也就是要 chunk_size 再加上我们的余数 remainder 。这里写了一个三目运算符是为了进行分配任务,比如:\",\"假设有 3 个线程执行,并且余数是 2。那么,每个线程的处理情况如下:\",\"当 i = 0 时,由于 0 < 2,所以这个线程会多分配一个元素。\",\"当 i = 1 时,同样因为 1 < 2,这个线程也会多分配一个元素。\",\"当 i = 2 时,由于 2 >= 2,所以这个线程只处理平均数量的元素。\",\"这确保了剩余的 2 个元素被分配给了前两个线程,而第三个线程只处理了平均数量的元素。这样就确保了所有的元素都被正确地分配给了各个线程进行处理。\",\"auto start = first; 在创建线程执行之前先定义了一个开始迭代器。在传递给线程执行的lambda表达式中,最后一行是:start = end; 这是为了让迭代器一直向前。\",\"由于求和不涉及数据竞争之类的问题,所以我们甚至可以在刚讲完 Hello World 就手搓了一个“并行求和”的简单的模板函数。主要的难度其实在于对 C++ 的熟悉程度,而非对线程类 std::thread 的使用了,这里反而是最简单的,无非是用容器存储线程对象管理,最后进行 join() 罢了。\",\"本节代码只是为了学习,而且只是百万数据通常没必要多线程,上亿的话差不多。如果你需要多线程求和,可以使用 C++17 引入的求和算法 std::reduce 并指明执行策略。它的效率接近我们实现的 sum 的两倍,当前环境核心越多数据越多,和单线程效率差距越明显。\"]},\"12\":{\"h\":\"线程管理\",\"t\":[\"在 C++ 标准库中,没有直接管理线程的机制,只能通过对象关联线程后,通过该对象来管理线程。类 std::thread 的对象就是指代线程的对象,而我们本节说的“线程管理”,其实也就是指管理 std::thread 对象。\"]},\"13\":{\"h\":\"启动新线程\",\"t\":[\"使用 C++ 线程库启动线程,就是构造 std::thread 对象。\",\"当然了,如果是默认构造之类的,那么 std::thread 线程对象没有关联线程的,自然也不会启动线程执行任务。\",\"std::thread t; // 构造不表示线程的新 std::thread 对象\",\"我们上一节的示例是传递了一个函数给 std::thread 对象,函数会在新线程中执行。std::thread 支持的形式还有很多,只要是可调用(Callable)对象即可,比如重载了 operator() 的类对象(也可以直接叫函数对象)。\",\"class Task{ public: void operator()()const { std::cout << \\\"operator()()const\\\\n\\\"; } };\",\"我们显然没办法直接像函数使用函数名一样,使用“类名”,函数名可以隐式转换到指向它的函数指针,而类名可不会直接变成对象,我们想使用 Task 自然就得构造对象了\",\"std::thread t{ Task{} }; t.join();\",\"直接创建临时对象即可,可以简化代码并避免引入不必要的局部对象。\",\"不过有件事情需要注意,当我们使用函数对象用于构造 std::thread 的时候,如果你传入的是一个临时对象,且使用的都是 “()”小括号初始化,那么编译器会将此语法解析为函数声明。\",\"std::thread t( Task() ); // 函数声明\",\"这被编译器解析为函数声明,是一个返回类型为 std::thread,函数名为 t,接受一个返回 Task 的空参的函数指针类型,也就是 Task(*)()。\",\"之所以我们看着抽象是因为这里的形参是无名的,且写了个函数类型。\",\"我们用一个简单的示例为你展示:\",\"void h(int(int)); //#1 声明 void h(int (*p)(int)){} //#2 定义\",\"即使我还没有为你讲述概念,我相信你也发现了,#1 和 #2 的区别无非是,#1 省略了形参的名称,还有它的形参是函数类型而不是函数指针类型,没有 *。\",\"在确定每个形参的类型后,类型是 “T 的数组”或某个函数类型 T 的形参会调整为具有类型“指向 T 的指针”。文档。\",\"显然,int(int) 是一个函数类型,它被调整为了一个指向这个函数类型的指针类型。\",\"那么回到我们最初的:\",\"std::thread t( Task() ); // #1 函数声明 std::thread t( Task (*p)() ){ return {}; } // #2 函数定义\",\"#2我们写出了函数形参名称 p,再将函数类型写成函数指针类型,事实上完全等价。我相信,这样,也就足够了。\",\"所以总而言之,建议使用 {} 进行初始化,这是好习惯,大多数时候它是合适的。\",\"C++11 引入的 Lambda 表达式,同样可以作为构造 std::thread 的参数,因为 Lambda 本身就是生成了一个函数对象,它自身就是类类型。\",\"#include #include int main(){ std::thread thread{ [] {std::cout << \\\"Hello World!\\\\n\\\"; } }; thread.join(); }\",\"启动线程后(也就是构造 std::thread 对象)我们必须在线程对象的生存期结束之前,即 std::thread::~thread 调用之前,决定它的执行策略,是 join()(合并)还是 detach()(分离)。\",\"我们先前使用的就是 join(),我们聊一下 detach(),当 std::thread 线程对象调用了 detach(),那么就是线程对象放弃了对线程资源的所有权,不再管理此线程,允许此线程独立的运行,在线程退出时释放所有分配的资源。\",\"放弃了对线程资源的所有权,也就是线程对象没有关联活跃线程了,此时 joinable 为 false。\",\"在单线程的代码中,对象销毁之后再去访问,会产生未定义行为,多线程增加了这个问题发生的几率。\",\"比如函数结束,那么函数局部对象的生存期都已经结束了,都被销毁了,此时线程函数还持有函数局部对象的指针或引用。\",\"#include #include struct func { int& m_i; func(int& i) :m_i{ i } {} void operator()(int n)const { for (int i = 0; i <= n; ++i) { m_i += i; // 可能悬空引用 } } }; int main(){ int n = 0; std::thread my_thread{ func{n},100 }; my_thread.detach(); // 分离,不等待线程结束 } // 分离的线程可能还在运行\",\"主线程(main)创建局部对象 n、创建线程对象 my_thread 启动线程,执行任务 func{n},局部对象 n 的引用被子线程持有。传入 100 用于调用 func 的 operator(int)。\",\"my_thread.detach();,joinable() 为 false。线程分离,线程对象不再持有线程资源,线程独立的运行。\",\"主线程不等待,此时分离的子线程可能没有执行完毕,但是主线程(main)已经结束,局部对象 n 生存期结束,被销毁,而此时子线程还持有它的引用,访问悬空引用,造成未定义行为。my_thread 已经没有关联线程资源,正常析构,没有问题。\",\"解决方法很简单,将 detach() 替换为 join()。\",\"通常非常不推荐使用 detach(),因为程序员必须确保所有创建的线程正常退出,释放所有获取的资源并执行其它必要的清理操作。这意味着通过调用 detach() 放弃线程的所有权不是一种选择,因此 join 应该在所有场景中使用。 一些老式特殊情况不聊。\",\"另外提示一下,也不要想着 detach() 之后,再次调用 join()\",\"my_thread.detach(); // todo.. my_thread.join(); // 函数结束\",\"认为这样可以确保被分离的线程在这里阻塞执行完?\",\"我们前面聊的很清楚了,detach() 是线程分离,线程对象放弃了线程资源的所有权,此时我们的 my_thread 它现在根本没有关联任何线程。调用 join() 是:“阻塞当前线程直至 *this 所标识的线程结束其执行”,我们的线程对象都没有线程,阻塞什么?执行什么呢?\",\"简单点说,必须是 std::thread 的 joinable() 为 true 即线程对象有活跃线程,才能调用 join() 和 detach()。\",\"顺带的,我们还得处理线程运行后的异常问题,举个例子:你在一个函数中构造了一个 std::thread 对象,线程开始执行,函数继续执行下面别的代码,但是如果抛出了异常呢?下面我的 join() 就会被跳过。\",\"std::thread my_thread{func{n},10}; //todo.. 抛出异常的代码 my_thread.join();\",\"避免程序被抛出的异常所终止,在异常处理过程中调用 join(),从而避免线程对象析构产生问题。\",\"struct func; // 复用之前 void f(){ int n = 0; std::thread t{ func{n},10 }; try{ // todo.. 一些当前线程可能抛出异常的代码 f2(); } catch (...){ t.join(); // 1 throw; } t.join(); // 2 }\",\"我知道你可能有很多疑问,我们既然 catch 接住了异常,为什么还要 throw?以及为什么我们要两个 join()?\",\"这两个问题其实也算一个问题,如果代码里抛出了异常,就会跳转到 catch 的代码中,执行 join() 确保线程正常执行完成,线程对象可以正常析构。然而此时我们必须再次 throw 抛出异常,因为你要是不抛出,那么你不是还得执行一个 t.join()?显然逻辑不对,自然抛出。\",\"至于这个函数产生的异常,由调用方进行处理,我们只是确保函数 f 中创建的线程正常执行完成,其局部对象正常析构释放。测试代码。\",\"我知道你可能会想到:“我在 try 块中最后一行写一个 t.join() ,这样如果前面的代码没有抛出异常,就能正常的调用 join(),如果抛出了异常,那就调用 catch 中的 t.join() 根本不需要最外部 2 那里的 join(),也不需要再次 throw 抛出异常”\",\"void f(){ int n = 0; std::thread t{ func{n},10 }; try{ // todo.. 一些当前线程可能抛出异常的代码 f2(); t.join(); // try 最后一行调用 join() } catch (...){ t.join(); // 如果抛出异常,就在 这里调用 join() } }\",\"你是否觉得这样也可以?也没问题?简单的测试运行的确没问题。\",\"但是这是不对的,你要注意我们的注释:“一些当前线程可能抛出异常的代码”,而不是 f2(),我们的 trycatch 只是为了让线程对象关联的线程得以正确执行完毕,以及线程对象正确析构。并没有处理什么其他的东西,不掩盖错误,try 块中的代码抛出了异常, catch 接住了,我们理所应当再次抛出。\"]},\"14\":{\"h\":\"RAII\",\"t\":[\"“资源获取即初始化”(RAII,Resource Acquisition Is Initialization)。\",\"简单的说是:构造函数申请资源,析构函数释放资源,让对象的生命周期和资源绑定。当异常抛出时,C++ 会自动调用对象的析构函数。\",\"我们可以提供一个类,在析构函数中使用 join() 确保线程执行完成,线程对象正常析构。\",\"class thread_guard{ std::thread& m_t; public: explicit thread_guard(std::thread& t) :m_t{ t } {} ~thread_guard(){ std::puts(\\\"析构\\\"); // 打印日志 不用在乎 if (m_t.joinable()) { // 线程对象当前关联了活跃线程 m_t.join(); } } thread_guard(const thread_guard&) = delete; thread_guard& operator=(const thread_guard&) = delete; }; void f(){ int n = 0; std::thread t{ func{n},10 }; thread_guard g(t); f2(); // 可能抛出异常 }\",\"函数 f 执行完毕,局部对象就要逆序销毁了。因此,thread_guard 对象 g 是第一个被销毁的,调用析构函数。即使函数 f2() 抛出了一个异常,这个销毁依然会发生(前提是你捕获了这个异常)。这确保了线程对象 t 所关联的线程正常的执行完毕以及线程对象的正常析构。测试代码。\",\"如果异常被抛出但未被捕获那么就会调用 std::terminate。是否对未捕获的异常进行任何栈回溯由实现定义。(简单的说就是不一定会调用析构)\",\"我们的测试代码是捕获了异常的,为了观测,看到它一定打印“析构”。\",\"在 thread_guard 的析构函数中,我们要判断 std::thread 线程对象现在是否有关联的活跃线程,如果有,我们才会执行 join(),阻塞当前线程直到线程对象关联的线程执行完毕。如果不想等待线程结束可以使用 detach() ,但是这让 std::thread 对象失去了线程资源的所有权,难以掌控,具体如何,看情况分析。\",\"复制赋值和复制构造定义为 =delete 可以防止编译器隐式生成,同时会阻止移动构造函数和移动赋值运算符的隐式定义。这样的话,对 thread_guard 对象进行复制或赋值等操作会引发一个编译错误。\",\"不允许这些操作主要在于:这是个管理类,而且顾名思义,它就应该只是单纯的管理线程对象仅此而已,只保有一个引用,单纯的做好 RAII 的事情就行,允许其他操作没有价值。\",\"严格来说其实这里倒也不算 RAII,因为 thread_guard 的构造函数其实并没有申请资源,只是保有了线程对象的引用,在析构的时候进行了 join() 。\"]},\"15\":{\"h\":\"传递参数\",\"t\":[\"向可调用对象传递参数很简单,我们前面也都写了,只需要将这些参数作为 std::thread 的构造参数即可。需要注意的是,这些参数会复制到新线程的内存空间中,即使函数中的参数是引用,依然实际是复制。\",\"void f(int, const int& a); int n = 1; std::thread t{ f, 3, n };\",\"线程对象 t 的构造没有问题,可以通过编译,但是这个 n 实际上并没有按引用传递,而是按值复制的。我们可以打印地址来验证我们的猜想。\",\"void f(int, const int& a) { // a 并非引用了局部对象 n std::cout << &a << '\\\\n'; } int main() { int n = 1; std::cout << &n << '\\\\n'; std::thread t{ f, 3, n }; t.join(); }\",\"运行代码,打印的地址截然不同。\",\"可以通过编译,但通常这不符合我们的需求,因为我们的函数中的参数是引用,我们自然希望能引用调用方传递的参数,而不是复制。如果我们的 f 的形参类型不是 const 的引用,则会产生一个编译错误。\",\"想要解决这个问题很简单,我们可以使用标准库的设施 std::ref 、 std::cref 函数模板。\",\"void f(int, int& a) { std::cout << &a << '\\\\n'; } int main() { int n = 1; std::cout << &n << '\\\\n'; std::thread t { f, 3, std::ref(n) }; t.join(); }\",\"运行代码,打印地址完全相同。\",\"我们来解释一下,“ref” 其实就是 “reference”(引用)的缩写,意思也很简单,返回“引用”,当然了,不是真的返回引用,它们返回一个包装类 std::reference_wrapper,顾名思义,这个类就是包装引用对象类模板,将对象包装,可以隐式转换为被包装对象的引用。\",\"“cref”呢?,这个“c”就是“const”,就是返回了 std::reference_wrapper。我们不详细介绍他们的实现,你简单认为reference_wrapper可以隐式转换为被包装对象的引用即可,\",\"int n = 0; std::reference_wrapper r = std::ref(n); int& p = r; // r 隐式转换为 n 的引用 此时 p 引用的就是 n\",\"int n = 0; std::reference_wrapper r = std::cref(n); const int& p = r; // r 隐式转换为 n 的 const 的引用 此时 p 引用的就是 n\",\"如果对他们的实现感兴趣,可以观看视频。\",\"以上代码void f(int, int&) 如果不使用 std::ref 并不会和前面 void f(int, const int&) 一样只是多了复制,而是会产生编译错误,这是因为 std::thread 内部会将保有的参数副本转换为右值表达式进行传递,这是为了那些只支持移动的类型,左值引用没办法引用右值表达式,所以产生编译错误。\",\"struct move_only { move_only() { std::puts(\\\"默认构造\\\"); } move_only(const move_only&) = delete; move_only(move_only&&)noexcept { std::puts(\\\"移动构造\\\"); } }; void f(move_only){} int main(){ move_only obj; std::thread t{ f,std::move(obj) }; t.join(); }\",\"运行测试。\",\"没有 std::ref 自然是会保有一个副本,所以有两次移动构造,一次是被 std::thread 构造函数中初始化副本,一次是调用函数 f。\",\"如果还有不理解,不用担心,记住,这一切的问题都会在后面的 std::thread 的构造-源码解析 解释清楚。\",\"成员函数指针也是可调用(Callable)的 ,可以传递给 std::thread 作为构造参数,让其关联的线程执行成员函数。\",\"struct X{ void task_run(int)const; }; X x; int n = 0; std::thread t{ &X::task_run,&x,n }; t.join();\",\"传入成员函数指针、与其配合使用的对象、调用成员函数的参数,构造线程对象 t,启动线程。\",\"如果你是第一次见到成员指针,那么我们稍微聊一下,&X::task_run 是一个整体,它们构成了成员指针,&类名::非静态成员。\",\"成员指针必须和对象一起使用,这是唯一标准用法,成员指针不可以转换到函数指针单独使用,即使是非静态成员函数没有使用任何数据成员。\",\"我们还可以使用模板函数 std::bind与成员指针一起使用\",\"std::thread t{ std::bind(&X::task_run, &x ,n) };\",\"不过需要注意,std::bind 也是默认按值复制的,即使我们的成员函数形参类型为引用:\",\"struct X { void task_run(int& a)const{ std::cout << &a << '\\\\n'; } }; X x; int n = 0; std::cout << &n << '\\\\n'; std::thread t{ std::bind(&X::task_run,&x,n) }; t.join();\",\"除非给参数 n 加上 std::ref,就是按引用传递了:\",\"std::thread t{ std::bind(&X::task_run,&x,std::ref(n)) };\",\"void f(const std::string&); std::thread t{ f,\\\"hello\\\" };\",\"代码创建了一个调用 f(\\\"hello\\\") 的线程。注意,函数 f 实际需要的是一个 std::string 类型的对象作为参数,但这里使用的是字符串字面量,我们要明白“A的引用只能引用A,或者以任何形式转换到A”,字符串字面量的类型是 const char[N] ,它会退化成指向它的const char* 指针,被线程对象保存。在调用 f 的时候,这个指针可以通过 std::string 的转换构造函数,构造出一个临时的 std::string 对象,就能成功调用。\",\"字符串字面量具有静态存储期,指向它的指针这当然没问题了,不用担心生存期的问题,但是如果是指向“动态”对象的指针,就要特别注意了:\",\"void f(const std::string&); void test(){ char buffer[1024]{}; //todo.. code std::thread t{ f,buffer }; t.detach(); }\",\"以上代码可能导致一些问题,buffer 是一个数组对象,作为 std::thread 构造参数的传递的时候会decay-copy (确保实参在按值传递时会退化) 隐式转换为了指向这个数组的指针。\",\"我们要特别强调,std::thread 构造是代表“启动线程”,而不是调用我们传递的可调用对象。\",\"std::thread 的构造函数中调用了创建线程的函数(windows 下可能为 _beginthreadex),它将我们传入的参数,f、buffer ,传递给这个函数,在新线程中执行函数 f。也就是说,调用和执行 f(buffer) 并不是说要在 std::thread 的构造函数中,而是在创建的新线程中,具体什么时候执行,取决于操作系统的调度,所以完全有可能函数 test 先执行完,而新线程此时还没有进行 f(buffer) 的调用,转换为std::string,那么 buffer 指针就悬空了,会导致问题。解决方案:\",\"将 detach() 替换为 join()。\",\"void f(const std::string&); void test(){ char buffer[1024]{}; //todo.. code std::thread t{ f,buffer }; t.join(); }\",\"显式将 buffer 转换为 std::string。\",\"void f(const std::string&); void test(){ char buffer[1024]{}; //todo.. code std::thread t{ f,std::string(buffer) }; t.detach(); }\"]},\"16\":{\"h\":\"\",\"t\":[\"这个命名空间包含了管理当前线程的函数。\",\"yield 建议实现重新调度各执行线程。\",\"get_id 返回当前线程 id。\",\"sleep_for 使当前线程停止执行指定时间。\",\"sleep_until 使当前线程执行停止到指定的时间点。\",\"它们之中最常用的是 get_id,其次是 sleep_for,再然后 yield,sleep_until 较少。\",\"使用 get_id打印主线程和子线程的 ID。\",\"int main() { std::cout << std::this_thread::get_id() << '\\\\n'; std::thread t{ [] { std::cout << std::this_thread::get_id() << '\\\\n'; } }; t.join(); }\",\"使用 sleep_for 延时。当 Sleep 之类的就行,但是它需要接受的参数不同,是 std::chrono 命名空间中的时间对象。\",\"int main() { std::this_thread::sleep_for(std::chrono::seconds(3)); }\",\"主线程延时 3 秒,这个传入了一个临时对象 seconds ,它是模板 std::chrono::duration 的别名,以及还有很多其他的时间类型,都基于这个类。说实话挺麻烦的,如果您支持 C++14,建议使用时间字面量,在 std::chrono_literals 命名空间中。我们可以改成下面这样:\",\"using namespace std::chrono_literals; int main() { std::this_thread::sleep_for(3s); }\",\"简单直观。\",\"yield 减少 CPU 的占用。\",\"while (!isDone()){ std::this_thread::yield(); }\",\"线程需要等待某个操作完成,如果你直接用一个循环不断判断这个操作是否完成就会使得这个线程占满 CPU 时间,这会造成资源浪费。此时可以判断操作是否完成,如果还没完成就调用 yield 交出 CPU 时间片让其他线程执行,过一会儿再来判断是否完成,这样这个线程占用 CPU 时间会大大减少。\",\"使用 sleep_until 让当前线程延迟到具体的时间。我们延时 5 秒就是。\",\"int main() { // 获取当前时间点 auto now = std::chrono::system_clock::now(); // 设置要等待的时间点为当前时间点之后的5秒 auto wakeup_time = now + 5s; // 输出当前时间 auto now_time = std::chrono::system_clock::to_time_t(now); std::cout << \\\"Current time:\\\\t\\\\t\\\" << std::put_time(std::localtime(&now_time), \\\"%H:%M:%S\\\") << std::endl; // 输出等待的时间点 auto wakeup_time_time = std::chrono::system_clock::to_time_t(wakeup_time); std::cout << \\\"Waiting until:\\\\t\\\\t\\\" << std::put_time(std::localtime(&wakeup_time_time), \\\"%H:%M:%S\\\") << std::endl; // 等待到指定的时间点 std::this_thread::sleep_until(wakeup_time); // 输出等待结束后的时间 now = std::chrono::system_clock::now(); now_time = std::chrono::system_clock::to_time_t(now); std::cout << \\\"Time after waiting:\\\\t\\\" << std::put_time(std::localtime(&now_time), \\\"%H:%M:%S\\\") << std::endl; }\",\"sleep_until 本身设置使用很简单,是打印时间格式、设置时区麻烦。运行结果。\",\"介绍了一下 std::this_thread 命名空间中的四个函数的基本用法,我们后续会经常看到这些函数的使用,不用着急。\"]},\"17\":{\"h\":\"转移所有权\",\"t\":[\"传入可调用对象以及参数,构造 std::thread 对象,启动线程,而线程对象拥有了线程的所有权,线程是一种系统资源,所以可称作“线程资源”。\",\"std::thread 不可复制。两个 std::thread 对象不可表示一个线程,std::thread 对线程资源是独占所有权。而移动操作可以将一个 std::thread 对象的线程资源所有权转移给另一个 std::thread 对象。\",\"int main() { std::thread t{ [] { std::cout << std::this_thread::get_id() << '\\\\n'; } }; std::cout << t.joinable() << '\\\\n'; // 线程对象 t 当前关联了活跃线程 打印 1 std::thread t2{ std::move(t) }; // 将 t 的线程资源的所有权移交给 t2 std::cout << t.joinable() << '\\\\n'; // 线程对象 t 当前没有关联活跃线程 打印 0 //t.join(); // Error! t 没有线程资源 t2.join(); // t2 当前持有线程资源 }\",\"这段代码通过移动构造转移了线程对象 t 的线程资源所有权到 t2,这里虽然有两个 std::thread 对象,但是从始至终只有一个线程资源,让持有线程资源的 t2 对象最后调用 join() 阻塞让其线程执行完毕。t 与 t2 都能正常析构。\",\"我们还可以使用移动赋值来转移线程资源的所有权:\",\"int main() { std::thread t; // 默认构造,没有关联活跃线程 std::cout << t.joinable() << '\\\\n'; // 0 std::thread t2{ [] {} }; t = std::move(t2); // 转移线程资源的所有权到 t std::cout << t.joinable() << '\\\\n'; // 1 t.join(); t2 = std::thread([] {}); t2.join(); }\",\"我们只需要介绍 t2 = std::thread([] {}) ,临时对象是右值表达式,不用调用 std::move,这里相当于是将临时的 std::thread 对象所持有的线程资源转移给 t2,t2 再调用 join() 正常析构。\",\"函数返回 std::thread 对象:\",\"std::thread f(){ std::thread t{ [] {} }; return t; } int main(){ std::thread rt = f(); rt.join(); }\",\"这段代码可以通过编译,你是否感到奇怪?我们在函数 f 中创建了一个局部的 std::thread 对象,启动线程,然后返回它。\",\"这里的 return t重载决议[1]选择到了移动构造,将 t 线程资源的所有权转移给函数调用 f() 返回的临时 std::thread 对象中,然后这个临时对象再用来初始化 rt ,临时对象是右值表达式,这里一样选择到移动构造,将临时对象的线程资源所有权移交给 rt。此时 rt 具有线程资源的所有权,由它调用 join() 正常析构。\",\"如果标准达到 C++17,强制的复制消除(RVO)保证这里少一次移动构造的开销(临时对象初始化 rt 的这次)。\",\"所有权也可以在函数内部传递:\",\"void f(std::thread t){ t.join(); } int main(){ std::thread t{ [] {} }; f(std::move(t)); f(std::thread{ [] {} }); }\",\"std::move 将 t 转换为了一个右值表达式,初始化函数f 形参 t,选择到了移动构造转移线程资源的所有权,在函数中调用 t.join() 后正常析构。std::thread{ [] {} } 构造了一个临时对象,本身就是右值表达式,初始化函数f 形参 t,移动构造转移线程资源的所有权到 t,t.join() 后正常析构。\",\"本节内容总体来说是很简单的,如果你有些地方无法理解,那只有一种可能,“对移动语义不了解”,不过这也不是问题,在后续我们详细介绍 std::thread 构造函数的源码即可,不用着急。\"]},\"18\":{\"h\":\"\",\"t\":[\"我们上一个大节讲解了线程管理,也就是 std::thread 的使用,其中的重中之重就是它的构造,传递参数。我们用源码实现为各位从头讲解。\",\"了解其实现,才能更好的使用它,同时也能解释其使用与学习中的各种问题。如:\",\"如何做到的默认按值复制?\",\"为什么需要 std::ref ?\",\"如何支持只能移动的对象?\",\"如何做到接受任意可调用对象?\",\"如何创建的线程?\",\"传递参数一节中的:“std::thread 内部会将保有的参数副本转换为右值表达式进行传递”到底是如何做到的?\",\"当你看完 std::thread 的构造-源码解析 后,可以再回过头来问问自己是否能够回答这些问题。\"]},\"19\":{\"h\":\"实现\",\"t\":[\"这个类和 std::thread 的区别就是析构函数会自动 join 。如果您好好的学习了上一节的内容,阅读了 std::thread 的源码,以下内容不会对您构成任何的难度。\",\"我们存储一个 std::thread 作为底层数据成员,稍微注意一下构造函数和赋值运算符的实现即可。\",\"class joining_thread { std::thread t; public: joining_thread()noexcept = default; template explicit joining_thread(Callable&& func, Args&&...args) : t{ std::forward(func), std::forward(args)... } {} explicit joining_thread(std::thread t_)noexcept : t{ std::move(t_) } {} joining_thread(joining_thread&& other)noexcept : t{ std::move(other.t) } {} joining_thread& operator=(std::thread&& other)noexcept { if (joinable()) { // 如果当前有活跃线程,那就先执行完 join(); } t = std::move(other); return *this; } ~joining_thread() { if (joinable()) { join(); } } void swap(joining_thread& other)noexcept { t.swap(other.t); } std::thread::id get_id()const noexcept { return t.get_id(); } bool joinable()const noexcept { return t.joinable(); } void join() { t.join(); } void detach() { t.detach(); } std::thread& data()noexcept { return t; } const std::thread& data()const noexcept { return t; } };\",\"简单使用一下:\",\"int main(){ std::cout << std::this_thread::get_id() << '\\\\n'; joining_thread thread{[]{ std::cout << std::this_thread::get_id() << '\\\\n'; } }; joining_thread thread2{ std::move(thread) }; }\",\"使用容器管理线程对象,等待线程执行结束:\",\"void do_work(std::size_t id){ std::cout << id << '\\\\n'; } int main(){ std::vectorthreads; for (std::size_t i = 0; i < 10; ++i){ threads.emplace_back(do_work, i); // 产生线程 } for(auto& thread:threads){ thread.join(); // 对每个线程对象调用 join() } }\",\"运行测试。\",\"线程对象代表了线程,管理线程对象也就是管理线程,这个 vector 对象管理 10 个线程,保证他们的执行、退出。\",\"使用我们这节实现的 joining_thread 则不需要最后的循环 join():\",\"int main(){ std::vectorthreads; for (std::size_t i = 0; i < 10; ++i){ threads.emplace_back(do_work, i); } }\",\"运行测试。\",\"如果你自己编译了这些代码,相信你注意到了,打印的是乱序的,没什么规律,而且重复运行的结果还不一样,这是正常现象。多线程执行就是如此,无序且操作可能被打断。使用互斥量可以解决这些问题,这也就是下一章节的内容了。\"]},\"20\":{\"h\":\"C++20\",\"t\":[\"std::jthread 相比于 C++11 引入的 std::thread,只是多了两个功能:\",\"RAII 管理:在析构时自动调用 join()。\",\"线程停止功能:线程的取消/停止。\"]},\"21\":{\"h\":\"零开销原则\",\"t\":[\"我知道你肯定有疑问,为什么 C++20 不直接为 std::thread 增加这两个功能,而是创造一个新的线程类型呢?\",\"这就是 C++ 的设计哲学,零开销原则:你不需要为你没有用到的(特性)付出额外的开销。\",\"std::jthread 的通常实现就是单纯的保有 std::thread + std::stop_source 这两个数据成员:\",\"thread _Impl; stop_source _Ssource;\",\"MSVC STL、libstdc++、libc++ 均是如此。\",\"stop_source 通常占 8 字节,先前 std::thread 源码解析详细聊过其不同标准库对其保有的成员不同,简单来说也就是 64 位环境,大小为 16 或者 8。也就是 sizeof(std::jthread) 的值相比 std::thread 会多 8 ,为 24 或 16。\",\"引入 std::jthread 符合零开销原则,它通过创建新的类型提供了更多的功能,而没有影响到原来 std::thread 的性能和内存占用。\"]},\"22\":{\"h\":\"线程停止\",\"t\":[\"第一个功能很简单,不用赘述,我们直接聊这个所谓的“线程停止”就好。\",\"首先要明确,C++ 的 std::jthread 提供的线程停止功能并不同于常见的 POSIX 函数 pthread_cancel。pthread_cancel 是一种发送取消请求的函数,但并不是强制性的线程终止方式。目标线程的可取消性状态和类型决定了取消何时生效。当取消被执行时,进行清理和终止线程[2]。\",\"std::jthread 所谓的线程停止只是一种基于用户代码的控制机制,而不是一种与操作系统系统有关系的线程终止。使用 std::stop_source 和 std::stop_token 提供了一种优雅地请求线程停止的方式,但实际上停止的决定和实现都由用户代码来完成。\",\"using namespace std::literals::chrono_literals; void f(std::stop_token stop_token, int value){ while (!stop_token.stop_requested()){ // 检查是否已经收到停止请求 std::cout << value++ << ' ' << std::flush; std::this_thread::sleep_for(200ms); } std::cout << std::endl; } int main(){ std::jthread thread{ f, 1 }; // 打印 1..15 大约 3 秒 std::this_thread::sleep_for(3s); // jthread 的析构函数调用 request_stop() 和 join()。 }\",\"运行测试。截止目前(2024/5/29 clang19 未发布) libc++ 不完全支持 std::jthread,建议使用 clang 的开发者链接 libstdc++ 或 MSVC STL 进行编译。如果非要使用 libc++,可以添加 -fexperimental-library 编译选项,启用不稳定库功能和实验库功能。这样,我们的这段代码就可以通过编译。\",\"std::jthread 提供了三个成员函数进行所谓的线程停止:\",\"get_stop_source:返回与 jthread 对象关联的 std::stop_source,允许从外部请求线程停止。\",\"get_stop_token:返回与 jthread 对象停止状态[3]关联的 std::stop_token,允许检查是否有停止请求。\",\"request_stop:请求线程停止。\",\"上面这段代码并未出现这三个函数的任何一个调用,不过在 jthread 的析构函数中,会调用 request_stop 请求线程停止。\",\"void _Try_cancel_and_join() noexcept { if (_Impl.joinable()) { _Ssource.request_stop(); _Impl.join(); } } ~jthread() { _Try_cancel_and_join(); }\",\"至于 std::jthread thread{ f, 1 }; 函数 f 的 std::stop_token 的形参是谁传递的?其实就是线程对象自己调用 get_token() 传递的 ,源码一眼便可发现:\",\"template , jthread>, int> = 0> _NODISCARD_CTOR_JTHREAD explicit jthread(_Fn&& _Fx, _Args&&... _Ax) { if constexpr (is_invocable_v, stop_token, decay_t<_Args>...>) { _Impl._Start(_STD forward<_Fn>(_Fx), _Ssource.get_token(), _STD forward<_Args>(_Ax)...); } else { _Impl._Start(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...); } }\",\"也就是说虽然最初的那段代码看似什么都没调用,但是实际什么都调用了。这所谓的线程停止,其实简单来说,有点像外部给线程传递信号一样。\",\"std::stop_source:\",\"这是一个可以发出停止请求的类型。当你调用 stop_source 的 request_stop() 方法时,它会设置内部的停止状态为“已请求停止”。\",\"任何持有与这个 stop_source 关联的 std::stop_token 对象都能检查到这个停止请求。\",\"std::stop_token:\",\"这是一个可以检查停止请求的类型。线程内部可以定期检查 stop_token 是否收到了停止请求。\",\"通过调用 stop_token.stop_requested(),线程可以检测到停止状态是否已被设置为“已请求停止”。\"]},\"23\":{\"h\":\"\",\"t\":[\"零开销原则应当很好理解。我们本节的难点只在于使用到了一些 MSVC STL 的源码实现来配合理解,其主要在于“线程停止”。线程停止设施你会感觉是一种类似于外部与线程进行某种信号通信的设施,std::stop_source 和 std::stop_token 都与线程对象关联,然后来管理函数到底如何执行。\",\"我们并没有举很多的例子,我们觉得这一个小例子所牵扯到的内容也就足够了,关键在于理解其设计与概念。\"]},\"24\":{\"h\":\"总结\",\"t\":[\"本章节的内容围绕着:“使用线程”,也就是\\\"使用 std::thread\\\"展开, std::thread 是我们学习 C++ 并发支持库的重中之重,在最后谈起了 C++20 引入的 std::jthread ,它的使用与概念也非常的简单。本章的内容在市面上并不算少见,但是却是少有的准确与完善。即使你早已学习乃至使用 C++ 标准库进行多线程编程,我相信本章也一定可以让你收获良多。\",\"并且如果是第一次学习本章的内容,可能会有一些难以理解的地方。建议你多思考、多记忆,并在以后反复查看和实践。\",\"我尽量以简单通俗的方式进行讲解。学完本章后,你可能还无法在实际环境利用多线程提升程序效率,至少还需要学习到使用互斥量来保护共享数据,才能实际应用多线程编程。\",\"重载决议简单来说就是编译器必须要根据规则选择最合适的函数重载进行调用。 ↩︎\",\"注:通常需要线程执行的函数中有一些系统调用,设置取消点,线程会在那个调用中结束。 ↩︎\",\"注:“停止状态”指的是由 std::stop_source 和 std::stop_token 管理的一种标志,用于通知线程应该停止执行。这种机制不是强制性的终止线程,而是提供一种线程内外都能检查和响应的信号。 ↩︎\"]},\"25\":{\"h\":\"共享数据\",\"t\":[\"本章节主要内容:\",\"多线程共享数据的问题\",\"使用互斥量保护共享数据\",\"保护共享数据的其它方案\",\"有关线程安全的其它问题\",\"在上一章内容,我们对于线程的基本使用和管理,可以说已经比较了解了,甚至深入阅读了部分的 std::thread 源码。所以如果你好好学习了上一章,本章也完全不用担心。\",\"我们本章,就要开始聊共享数据的那些事。\"]},\"26\":{\"h\":\"条件竞争\",\"t\":[\"在多线程的情况下,每个线程都抢着完成自己的任务。在大多数情况下,即使会改变执行顺序,也是良性竞争,这是无所谓的。比如两个线程都要往标准输出输出一段字符,谁先谁后并不会有什么太大影响。\",\"void f() { std::cout << \\\"❤️\\\\n\\\"; } void f2() { std::cout << \\\"😢\\\\n\\\"; } int main(){ std::thread t{ f }; std::thread t2{ f2 }; t.join(); t2.join(); }\",\"std::cout 的 operator<< 调用是线程安全的,不会被打断。即:同步的 C++ 流保证是线程安全的(从多个线程输出的单独字符可能交错,但无数据竞争)\",\"只有在涉及多线程读写相同共享数据的时候,才会导致“恶性的条件竞争”。\",\"std::vectorv; void f() { v.emplace_back(1); } void f2() { v.erase(v.begin()); } int main() { std::thread t{ f }; std::thread t2{ f2 }; t.join(); t2.join(); std::cout << v.size() << '\\\\n'; }\",\"比如这段代码就是典型的恶性条件竞争,两个线程共享一个 vector,并对它进行修改。可能导致许多问题,比如 f2 先执行,此时 vector 还没有元素,导致抛出异常。又或者 f 执行了一半,调用了 f2(),等等。\",\"当然了,也有可能先执行 f,然后执行 f2,最后打印了 0,程序老老实实执行完毕。\",\"但是我们显然不能寄希望于这种操作系统的调度。\",\"而且即使不是一个添加元素,一个删除元素,全是 emplace_back 添加元素,也一样会有问题,由于 std::vector 不是线程安全的容器,因此当多个线程同时访问并修改 v 时,可能会发生未定义的行为。具体来说,当两个线程同时尝试向 v 中添加元素时,但是 emplace_back 函数却是可以被打断的,执行了一半,又去执行另一个线程。可能会导致数据竞争,从而引发未定义的结果。\",\"当某个表达式的求值写入某个内存位置,而另一求值读或修改同一内存位置时,称这些表达式冲突。拥有两个冲突的求值的程序就有数据竞争,除非\",\"两个求值都在同一线程上,或者在同一信号处理函数中执行,或\",\"两个冲突的求值都是原子操作(见 std::atomic),或\",\"一个冲突的求值发生早于 另一个(见 std::memory_order)\",\"如果出现数据竞争,那么程序的行为未定义。\",\"标量类型等都同理,有数据竞争,未定义行为:\",\"int cnt = 0; auto f = [&]{cnt++;}; std::thread t1{f}, t2{f}, t3{f}; // 未定义行为\"]},\"27\":{\"h\":\"使用互斥量\",\"t\":[\"互斥量(Mutex),又常被称为互斥锁、互斥体(或者直接被称作“锁”),是一种用来保护临界区[1]的特殊对象,其相当于实现了一个公共的“标志位”。它可以处于锁定(locked)状态,也可以处于解锁(unlocked)状态:\",\"如果互斥量是锁定的,通常说某个特定的线程正持有这个锁。\",\"如果没有线程持有这个互斥量,那么这个互斥量就处于解锁状态。\",\"概念从来不是我们的重点,用一段对比代码为你直观的展示互斥量的作用:\",\"void f() { std::cout << std::this_thread::get_id() << '\\\\n'; } int main() { std::vector threads; for (std::size_t i = 0; i < 10; ++i) threads.emplace_back(f); for (auto& thread : threads) thread.join(); }\",\"这段代码你多次运行它会得到毫无规律和格式的结果,我们可以使用互斥量解决这个问题:\",\"#include // 必要标头 std::mutex m; void f() { m.lock(); std::cout << std::this_thread::get_id() << '\\\\n'; m.unlock(); } int main() { std::vectorthreads; for (std::size_t i = 0; i < 10; ++i) threads.emplace_back(f); for (auto& thread : threads) thread.join(); }\",\"当多个线程执行函数 f 的时候,只有一个线程能成功调用 lock() 给互斥量上锁,其他所有的线程 lock() 的调用将阻塞执行,直至获得锁。第一个调用 lock() 的线程得以继续往下执行,执行我们的 std::cout 输出语句,不会有任何其他的线程打断这个操作。直到线程执行 unlock(),就解锁了互斥量。\",\"那么其他线程此时也就能再有一个成功调用 lock...\",\"至于到底哪个线程才会成功调用,这个是由操作系统调度决定的。\",\"看一遍描述就可以了,简而言之,被 lock() 和 unlock() 包含在其中的代码是线程安全的,同一时间只有一个线程执行,不会被其它线程的执行所打断。\"]},\"28\":{\"h\":\"\",\"t\":[\"不过一般不推荐这样显式的 lock() 与 unlock(),我们可以使用 C++11 标准库引入的“管理类” std::lock_guard:\",\"void f() { std::lock_guard lc{ m }; std::cout << std::this_thread::get_id() << '\\\\n'; }\",\"那么问题来了,std::lock_guard 是如何做到的呢?它是怎么实现的呢?首先顾名思义,这是一个“管理类”模板,用来管理互斥量的上锁与解锁,我们来看它在 MSVC STL 的实现:\",\"_EXPORT_STD template class _NODISCARD_LOCK lock_guard { // class with destructor that unlocks a mutex public: using mutex_type = _Mutex; explicit lock_guard(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock _MyMutex.lock(); } lock_guard(_Mutex& _Mtx, adopt_lock_t) noexcept // strengthened : _MyMutex(_Mtx) {} // construct but don't lock ~lock_guard() noexcept { _MyMutex.unlock(); } lock_guard(const lock_guard&) = delete; lock_guard& operator=(const lock_guard&) = delete; private: _Mutex& _MyMutex; };\",\"这段代码极其简单,首先管理类,自然不可移动不可复制,我们定义复制构造与复制赋值为弃置函数,同时阻止了移动等函数的隐式定义。\",\"它只保有一个私有数据成员,一个引用,用来引用互斥量。\",\"构造函数中初始化这个引用,同时上锁,析构函数中解锁,这是一个非常典型的 RAII 式的管理。\",\"同时它还提供一个有额外std::adopt_lock_t参数的构造函数 ,如果使用这个构造函数,则构造函数不会上锁。\",\"所以有的时候你可能会看到一些这样的代码:\",\"void f(){ //code.. { std::lock_guard lc{ m }; // 涉及共享资源的修改的代码... } //code.. }\",\"使用 {} 创建了一个块作用域,限制了对象 lc 的生存期,进入作用域构造 lock_guard 的时候上锁(lock),离开作用域析构的时候解锁(unlock)。\",\"我们要尽可能的让互斥量上锁的粒度小,只用来确保必须的共享资源的线程安全。\",\"“粒度”通常用于描述锁定的范围大小,较小的粒度意味着锁定的范围更小,因此有更好的性能和更少的竞争。\",\"我们举一个例子:\",\"std::mutex m; void add_to_list(int n, std::list& list) { std::vector numbers(n + 1); std::iota(numbers.begin(), numbers.end(), 0); int sum = std::accumulate(numbers.begin(), numbers.end(), 0); { std::lock_guard lc{ m }; list.push_back(sum); } } void print_list(const std::list& list){ std::lock_guard lc{ m }; for(const auto& i : list){ std::cout << i << ' '; } std::cout << '\\\\n'; }\",\"std::list list; std::thread t1{ add_to_list,i,std::ref(list) }; std::thread t2{ add_to_list,i,std::ref(list) }; std::thread t3{ print_list,std::cref(list) }; std::thread t4{ print_list,std::cref(list) }; t1.join(); t2.join(); t3.join(); t4.join();\",\"完整代码测试。\",\"先看 add_to_list,只有 list.push_back(sum) 涉及到了对共享数据的修改,需要进行保护,我们用 {} 包起来了。\",\"假设有线程 A、B执行函数 add_to_list() :线程 A 中的 numbers、sum 与线程 B 中的,不是同一个,希望大家分清楚,自然不存在数据竞争,也不需要上锁。线程 A、B执行完了前面求 0-n 的计算,只有一个线程能在 lock_guard 的构造函数中成功调用 lock() 给互斥量上锁。假设线程 A 成功调用 lock(),那么线程 B 的 lock() 调用就阻塞了,必须等待线程 A 执行完里面的代码,然后作用域结束,调用 lock_guard 的析构函数,解锁 unlock(),此时线程 B 就可以进去执行了,避免了数据竞争,不存在一个对象同时被多个线程修改。\",\"函数 print_list() 就更简单了,打印 list,给整个函数上锁,同一时刻只能有一个线程执行。\",\"我们的使用代码是多个线程执行这两个函数,两个函数共享了一个锁,这样确保了当执行函数 print_list() 打印的时候,list 的状态是确定的。打印函数 print_list 和 add_to_list 函数的修改操作同一时间只能有一个线程在执行。print_list() 不可能看到正在被add_to_list() 修改的 list。\",\"至于到底哪个函数哪个线程会先执行,执行多少次,这些都由操作系统调度决定,也完全有可能连续 4 次都是执行函数 print_list 的线程成功调用 lock,会打印出了一样的值,这都很正常。\",\"C++17 添加了一个新的特性,类模板实参推导, std::lock_guard 可以根据传入的参数自行推导,而不需要写明模板类型参数:\",\"std::mutex m; std::lock_guard lc{ m }; // std::lock_guard\",\"并且 C++17 还引入了一个新的“管理类”:std::scoped_lock,它相较于 lock_guard的区别在于,它可以管理多个互斥量。不过对于处理一个互斥量的情况,它和 lock_guard 几乎完全相同。\",\"std::mutex m; std::scoped_lock lc{ m }; // std::scoped_lock\",\"我们在后续管理多个互斥量,会详细了解这个类。\"]},\"29\":{\"h\":\"\",\"t\":[\"try_lock 是互斥量中的一种尝试上锁的方式。与常规的 lock 不同,try_lock 会尝试上锁,但如果锁已经被其他线程占用,则不会阻塞当前线程,而是立即返回。\",\"它的返回类型是 bool ,如果上锁成功就返回 true,失败就返回 false。\",\"这种方法在多线程编程中很有用,特别是在需要保护临界区的同时,又不想线程因为等待锁而阻塞的情况下。\",\"std::mutex mtx; void thread_function(int id) { // 尝试加锁 if (mtx.try_lock()) { std::cout << \\\"线程:\\\" << id << \\\" 获得锁\\\" << std::endl; // 临界区代码 std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 模拟临界区操作 mtx.unlock(); // 解锁 std::cout << \\\"线程:\\\" << id << \\\" 释放锁\\\" << std::endl; } else { std::cout << \\\"线程:\\\" << id << \\\" 获取锁失败 处理步骤\\\" << std::endl; } }\",\"如果有两个线程运行这段代码,必然有一个线程无法成功上锁,要走 else 的分支。\",\"std::thread t1(thread_function, 1); std::thread t2(thread_function, 2); t1.join(); t2.join();\",\"可能的运行结果:\",\"线程:1 获得锁 线程:2 获取锁失败 处理步骤 线程:1 释放锁\"]},\"30\":{\"h\":\"保护共享数据\",\"t\":[\"互斥量主要也就是为了保护共享数据,上一节的使用互斥量也已经为各位展示了一些。\",\"然而使用互斥量来保护共享数据也并不是在函数中加上一个 std::lock_guard 就万事大吉了。有的时候只需要一个指针或者引用,就能让这种保护形同虚设。\",\"class Data{ int a{}; std::string b{}; public: void do_something(){ // 修改数据成员等... } }; class Data_wrapper{ Data data; std::mutex m; public: template void process_data(Func func){ std::lock_guard lc{m}; func(data); // 受保护数据传递给函数 } }; Data* p = nullptr; void malicious_function(Data& protected_data){ p = &protected_data; // 受保护的数据被传递到外部 } Data_wrapper d; void foo(){ d.process_data(malicious_function); // 传递了一个恶意的函数 p->do_something(); // 在无保护的情况下访问保护数据 }\",\"成员函数模板 process_data 看起来一点问题也没有,使用 std::lock_guard 对数据做了保护,但是调用方传递了 malicious_function 这样一个恶意的函数,使受保护数据传递给外部,可以在没有被互斥量保护的情况下调用 do_something()。\",\"我们传递的函数就不该是涉及外部副作用的,就应该是单纯的在受互斥量保护的情况下老老实实调用 do_something() 操作受保护的数据。\",\"简而言之:切勿将受保护数据的指针或引用传递到互斥量作用域之外,不然保护将形同虚设。\",\"process_data 的确算是没问题,用户非要做这些事情也是防不住的,我们只是告诉各位可能的情况。\"]},\"31\":{\"h\":\"死锁:问题与解决\",\"t\":[\"试想一下,有一个玩具,这个玩具有两个部分,必须同时拿到两部分才能玩。比如一个遥控汽车,需要遥控器和玩具车才能玩。有两个小孩,他们都想玩这个玩具。当其中一个小孩拿到了遥控器和玩具车时,就可以尽情玩耍。当另一个小孩也想玩,他就得等待另一个小孩玩完才行。再试想,遥控器和玩具车被放在两个不同的地方,并且两个小孩都想要玩,并且一个拿到了遥控器,另一个拿到了玩具车。问题就出现了,除非其中一个孩子决定让另一个先玩,他把自己的那个部分给另一个小孩。但如果他们都不愿意,那么这个遥控汽车就谁都没有办法玩。\",\"我们当然不在乎小孩抢玩具,我们要聊的是线程对锁的竞争:两个线程需要对它们所有的互斥量做一些操作,其中每个线程都有一个互斥量,且等待另一个线程的互斥量解锁。因为它们都在等待对方释放互斥量,没有线程工作。 这种情况就是死锁。\",\"多个互斥量才可能遇到死锁问题。\",\"避免死锁的一般建议是让两个互斥量以相同的顺序上锁,总在互斥量 B 之前锁住互斥量 A,就通常不会死锁。反面示例\",\"std::mutex m1,m2; std::size_t n{}; void f(){ std::lock_guard lc1{ m1 }; std::lock_guard lc2{ m2 }; ++n; } void f2() { std::lock_guard lc1{ m2 }; std::lock_guard lc2{ m1 }; ++n; }\",\"f 与 f2 因为互斥量上锁顺序不同,就有死锁风险。函数 f 先锁定 m1,然后再尝试锁定 m2,而函数 f2 先锁定 m2 再锁定 m1 。如果两个线程同时运行,它们就可能会彼此等待对方释放其所需的锁,从而造成死锁。\",\"简而言之,有可能函数 f 锁定了 m1,函数 f2 锁定了 m2,函数 f 要往下执行,给 m2 上锁,所以在等待 f2 解锁 m2,然而函数 f2 也在等待函数 f 解锁 m1 它才能往下执行。所以死锁。测试代码。\",\"但是有的时候即使固定锁顺序,依旧会产生问题。当有多个互斥量保护同一个类的对象时,对于相同类型的两个不同对象进行数据的交换操作,为了保证数据交换的正确性,就要避免其它线程修改,确保每个对象的互斥量都锁住自己要保护的区域。如果按照前面的的选择一个固定的顺序上锁解锁,则毫无意义,比如:\",\"struct X{ X(const std::string& str) :object{ str } {} friend void swap(X& lhs, X& rhs); private: std::string object; std::mutex m; }; void swap(X& lhs, X& rhs) { if (&lhs == &rhs) return; std::lock_guard lock1{ lhs.m }; std::lock_guard lock2{ rhs.m }; swap(lhs.object, rhs.object); }\",\"考虑用户调用的时候将参数交换,就会产生死锁:\",\"X a{ \\\"🤣\\\" }, b{ \\\"😅\\\" }; std::thread t{ [&] {swap(a, b); } }; // 1 std::thread t2{ [&] {swap(b, a); } }; // 2\",\"1 执行的时候,先上锁 a 的互斥量,再上锁 b 的互斥量。\",\"2 执行的时候,先上锁 b 的互斥量,再上锁 a 的互斥量。\",\"完全可能线程 A 执行 1 的时候上锁了 a 的互斥量,线程 B 执行 2 上锁了 b 的互斥量。线程 A 往下执行需要上锁 b 的互斥量,线程 B 则要上锁 a 的互斥量执行完毕才能解锁,哪个都没办法往下执行,死锁。测试代码。\",\"其实也就是回到了第一个示例的问题。\",\"C++ 标准库有很多办法解决这个问题,可以使用 std::lock ,它能一次性锁住多个互斥量,并且没有死锁风险。修改 swap 代码后如下:\",\"void swap(X& lhs, X& rhs) { if (&lhs == &rhs) return; std::lock(lhs.m, rhs.m); // 给两个互斥量上锁 std::lock_guard lock1{ lhs.m,std::adopt_lock }; std::lock_guard lock2{ rhs.m,std::adopt_lock }; swap(lhs.object, rhs.object); }\",\"因为前面已经使用了 std::lock 上锁,所以后的 std::lock_guard 构造都额外传递了一个 std::adopt_lock 参数,让其选择到不上锁的构造函数。函数退出也能正常解锁。\",\"std::lock 给 lhs.m 或 rhs.m 上锁时若抛出异常,则在重抛前对任何已锁的对象调用 unlock() 解锁,也就是 std::lock 要么将互斥量都上锁,要么一个都不锁。\",\"C++17 新增了 std::scoped_lock ,提供此函数的 RAII 包装,通常它比裸调用 std::lock 更好。\",\"所以我们前面的代码可以改写为:\",\"void swap(X& lhs, X& rhs) { if (&lhs == &rhs) return; std::scoped_lock guard{ lhs.m,rhs.m }; swap(lhs.object, rhs.object); }\",\"对此类有兴趣或任何疑问,建议阅读std::scoped_lock 的源码实现与解析\",\"使用 std::scoped_lock 可以将所有 std::lock 替换掉,减少错误发生。\",\"然而它们的帮助都是有限的,一切最终都是依靠开发者使用与管理。\",\"死锁是多线程编程中令人相当头疼的问题,并且死锁经常是不可预见,甚至难以复现,因为在大部分时间里,程序都能正常完成工作。我们可以通过一些简单的规则,约束开发者的行为,帮助写出“无死锁”的代码。\",\"避免嵌套锁\",\"线程获取一个锁时,就别再获取第二个锁。每个线程只持有一个锁,自然不会产生死锁。如果必须要获取多个锁,使用 std::lock 。\",\"避免在持有锁时调用外部代码\",\"这个建议是很简单的:因为代码是外部提供的,所以没办法确定外部要做什么。外部程序可能做任何事情,包括获取锁。在持有锁的情况下,如果用外部代码要获取一个锁,就会违反第一个指导意见,并造成死锁(有时这是无法避免的)。当写通用代码时(比如保护共享数据中的 Date 类)。这不是接口设计者可以处理的,只能寄希望于调用方传递的代码是能正常执行的。\",\"使用固定顺序获取锁\",\"如同第一个示例那样,固定的顺序上锁就不存在问题。\"]},\"32\":{\"h\":\"灵活的锁\",\"t\":[\"std::unique_lock 是 C++11 引入的一种通用互斥包装器,它相比于 std::lock_guard 更加的灵活。当然,它也更加的复杂,尤其它还可以与我们下一章要讲的条件变量一起使用。使用它可以将之前使用 std::lock_guard 的 swap 改写一下:\",\"void swap(X& lhs, X& rhs) { if (&lhs == &rhs) return; std::unique_lock lock1{ lhs.m, std::defer_lock }; std::unique_lock lock2{ rhs.m, std::defer_lock }; std::lock(lock1, lock2); swap(lhs.object, rhs.object); }\",\"解释这段代码最简单的方式就是直接展示标准库的源码,首先,我们要了解 std::defer_lock 是“不获得互斥体的所有权”。没有所有权自然构造函数就不会上锁,但不止如此。我们还要先知道 std::unique_lock 保有的数据成员(都以 MSVC STL 为例):\",\"private: _Mutex* _Pmtx = nullptr; bool _Owns = false;\",\"如你所见很简单,一个互斥量的指针,还有一个就是表示对象是否拥有互斥量所有权的 bool 类型的对象 _Owns 了。我们前面代码会调用构造函数:\",\"unique_lock(_Mutex& _Mtx, defer_lock_t) noexcept : _Pmtx(_STD addressof(_Mtx)), _Owns(false) {} // construct but don't lock\",\"如你所见,只是初始化了数据成员而已,注意,这个构造函数没有给互斥量上锁,且 _Owns 为 false 表示没有互斥量所有权。并且 std::unique_lock 是有 lock() 、try_lock() 、unlock() 成员函数的,所以可以直接传递给 std::lock、 进行调用。这里还需要提一下 lock() 成员函数的代码:\",\"void lock() { // lock the mutex _Validate(); _Pmtx->lock(); _Owns = true; }\",\"如你所见,正常上锁,并且把 _Owns 设置为 true,即表示当前对象拥有互斥量的所有权。那么接下来看析构函数:\",\"~unique_lock() noexcept { if (_Owns) { _Pmtx->unlock(); } }\",\"必须得是当前对象拥有互斥量的所有权析构函数才会调用 unlock() 解锁互斥量。我们的代码因为调用了 lock ,所以 _Owns 设置为 true ,函数结束对象析构的时候会解锁互斥量。\",\"设计挺奇怪的对吧,这个所有权语义。其实上面的代码还不够简单直接,我们再举个例子:\",\"std::mutex m; int main() { std::unique_lock lock{ m,std::adopt_lock }; lock.lock(); }\",\"这段代码运行会抛出异常,原因很简单,因为 std::adopt_lock 只是不上锁,但是有所有权,即 _Owns 设置为 true 了,当运行 lock() 成员函数的时候,调用了 _Validate() 进行检测,也就是:\",\"void _Validate() const { // check if the mutex can be locked if (!_Pmtx) { _Throw_system_error(errc::operation_not_permitted); } if (_Owns) { _Throw_system_error(errc::resource_deadlock_would_occur); } }\",\"满足第二个 if,因为 _Owns 为 true 所以抛出异常,别的标准库也都有类似设计。很诡异的设计对吧,正常。除非我们写成:\",\"lock.mutex()->lock();\",\"也就是说 std::unique_lock 要想调用 lock() 成员函数,必须是当前没有所有权。\",\"所以正常的用法其实是,先上锁了互斥量,然后传递 std::adopt_lock 构造 std::unique_lock 对象表示拥有互斥量的所有权,即可在析构的时候正常解锁。如下:\",\"std::mutex m; int main() { m.lock(); std::unique_lock lock { m,std::adopt_lock }; }\",\"简而言之:\",\"使用 std::defer_lock 构造函数不上锁,要求构造之后上锁\",\"使用 std::adopt_lock 构造函数不上锁,要求在构造之前互斥量上锁\",\"默认构造会上锁,要求构造函数之前和构造函数之后都不能再次上锁\",\"我们前面提到了 std::unique_lock 更加灵活,那么灵活在哪?很简单,它拥有 lock() 和 unlock() 成员函数,所以我们能写出如下代码:\",\"void f() { //code.. std::unique_lock lock{ m }; // 涉及共享资源的修改的代码... lock.unlock(); // 解锁并释放所有权,析构函数不会再 unlock() //code.. }\",\"而不是像之前 std::lock_guard 一样使用 {}。\",\"另外再聊一聊开销吧,其实倒也还好,多了一个 bool ,内存对齐,x64 环境也就是 16 字节。这都不是最重要的,主要是复杂性和需求,通常建议优先 std::lock_guard,当它无法满足你的需求或者显得代码非常繁琐,那么可以考虑使用 std::unique_lock。\"]},\"33\":{\"h\":\"在不同作用域传递互斥量\",\"t\":[\"首先我们要明白,互斥量满足互斥体 (Mutex)的要求,不可复制不可移动。所谓的在不同作用域传递互斥量,其实只是传递了它们的指针或者引用罢了。可以利用各种类来进行传递,比如前面提到的 std::unique_lock。\",\"std::unique_lock 可以获取互斥量的所有权,而互斥量的所有权可以通过移动操作转移给其他的 std::unique_lock 对象。有些时候,这种转移(就是调用移动构造)是自动发生的,比如当函数返回std::unique_lock 对象。另一种情况就是得显式使用 std::move。\",\"请勿对移动语义和转移所有权抱有错误的幻想,我们说的无非是调用 std::unique_lock 的移动构造罢了:\",\"_NODISCARD_CTOR_LOCK unique_lock(unique_lock&& _Other) noexcept : _Pmtx(_Other._Pmtx), _Owns(_Other._Owns) { _Other._Pmtx = nullptr; _Other._Owns = false; }\",\"将数据成员赋给新对象,原来的置空,这就是所谓的 “所有权”转移,切勿被词语迷惑。\",\"std::unique_lock 是只能移动不可复制的类,它移动即标志其管理的互斥量的所有权转移了。\",\"一种可能的使用是允许函数去锁住一个互斥量,并将互斥量的所有权转移到调用者上,所以调用者可以在这个锁保护的范围内执行代码。\",\"std::unique_lock get_lock(){ extern std::mutex some_mutex; std::unique_lock lk{ some_mutex }; return lk; } void process_data(){ std::unique_lock lk{ get_lock() }; // 执行一些任务... }\",\"return lk 这里会调用移动构造,将互斥量的所有权转移给调用方, process_data 函数结束的时候会解锁互斥量。\",\"我相信你可能对 extern std::mutex some_mutex 有疑问,其实不用感到奇怪,这是一个互斥量的声明,可能别的翻译单元(或 dll 等)有它的定义,成功链接上。我们前面也说了:“所谓的在不同作用域传递互斥量,其实只是传递了它们的指针或者引用罢了”,所以要特别注意互斥量的生存期。\",\"extern 说明符只能搭配变量声明和函数声明(除了类成员或函数形参)。它指定外部链接,而且技术上不影响存储期,但它不能用来定义自动存储期的对象,故所有 extern 对象都具有静态或线程存储期。\",\"如果你简单写一个 std::mutex some_mutex 那么函数 process_data 中的 lk 会持有一个悬垂指针。\",\"举一个使用 extern std::mutex 的完整运行示例。当然,其实理论上你 new std::mutex 也是完全可行...... 🤣🤣\",\"std::unique_lock 是灵活的,同样允许在对象销毁之前就解锁互斥量,调用 unlock() 成员函数即可,不再强调。\"]},\"34\":{\"h\":\"保护共享数据的初始化过程\",\"t\":[\"保护共享数据并非必须使用互斥量,互斥量只是其中一种常见的方式而已,对于一些特殊的场景,也有专门的保护方式,比如对于共享数据的初始化过程的保护。我们通常就不会用互斥量,这会造成很多的额外开销。\",\"我们不想为各位介绍其它乱七八糟的各种保护初始化的方式,我们只介绍三种:双检锁(错误)、使用 std::call_once、静态局部变量初始化从 C++11 开始是线程安全。\",\"双检锁(错误)线程不安全\",\"void f(){ if(!ptr){ // 1 std::lock_guard lk{ m }; if(!ptr){ // 2 ptr.reset(new some); // 3 } } ptr->do_something(); // 4 }\",\"① 是查看指针是否为空,空才需要初始化,才需要获取锁。指针为空,当获取锁后会再检查一次指针②(这就是双重检查),避免另一线程在第一次检查后再做初始化,并且让当前线程获取锁。\",\"然而这显然没用,因为有潜在的条件竞争。未被锁保护的读取操作①没有与其他线程里被锁保护的写入操作③进行同步,因此就会产生条件竞争。\",\"简而言之:一个线程知道另一个线程已经在执行③,但是此时还没有创建 some 对象,而只是分配内存对指针写入。那么这个线程在①的时候就不会进入,直接执行了 ptr->do_something()④,得不到正确的结果,因为对象还没构造。\",\"如果你觉得难以理解,那就记住 ptr.reset(new some); 并非是不可打断不可交换的固定指令。\",\"这种错误写法在一些单例中也非常的常见。如果你的同事或上司写出此代码,一般不建议指出,因为不见得你能教会他们,不要“没事找事”,只要不影响自己即可。\",\"C++ 标准委员会也认为处理此问题很重要,所以标准库提供了 std::call_once 和 std::once_flag 来处理这种情况。比起锁住互斥量并显式检查指针,每个线程只需要使用 std::call_once 就可以。使用 std::call_once 比显式使用互斥量消耗的资源更少,特别是当初始化完成之后。\",\"std::shared_ptr ptr; std::once_flag resource_flag; void init_resource(){ ptr.reset(new some); } void foo(){ std::call_once(resource_flag, init_resource); // 线程安全的一次初始化 ptr->do_something(); }\",\"以上代码 std::once_flag 对象是全局命名空间作用域声明,如果你有需要,它也可以是类的成员。用于搭配 std::call_once 使用,保证线程安全的一次初始化。std::call_once 只需要接受可调用 (Callable)对象即可,也不要求一定是函数。\",\"“初始化”,那自然是只有一次。但是 std::call_once 也有一些例外情况(比如异常)会让传入的可调用对象被多次调用,即“多次”初始化:\",\"std::once_flag flag; int n = 0; void f(){ std::call_once(flag, [] { ++n; std::cout << \\\"第\\\" << n << \\\"次调用\\\\n\\\"; throw std::runtime_error(\\\"异常\\\"); }); } int main(){ try{ f(); } catch (std::exception&){} try{ f(); } catch (std::exception&){} }\",\"测试链接。正常情况会保证传入的可调用对象只调用一次,即初始化只有一次。异常之类的是例外。\",\"这种行为很合理,因为异常代表操作失败,需要进行回溯和重置状态,符合语义和设计。\",\"静态局部变量初始化在 C++11 是线程安全\",\"class my_class; inline my_class& get_my_class_instance(){ static my_class instance; // 线程安全的初始化过程 初始化严格发生一次 return instance; }\",\"即使多个线程同时访问 get_my_class_instance 函数,也只有一个线程会执行 instance 的初始化,其它线程会等待初始化完成。这种实现方式是线程安全的,不用担心数据竞争。此方式也在单例中多见,被称作“Meyers Singleton”单例,是简单合理的做法。\",\"其实还有不少其他的做法或者反例,但是觉得没必要再聊了,这些已经足够了,再多下去就冗余了。且本文不是详尽的文档,而是“教程”。\"]},\"35\":{\"h\":\"保护不常更新的数据结构\",\"t\":[\"试想一下,你有一个数据结构存储了用户的设置信息,每次用户打开程序的时候,都要进行读取,且运行时很多地方都依赖这个数据结构需要读取,所以为了效率,我们使用了多线程读写。这个数据结构很少进行改变,而我们知道,多线程读取,是没有数据竞争的,是安全的,但是有些时候又不可避免的有修改和读取都要工作的时候,所以依然必须得使用互斥量进行保护。\",\"然而使用 std::mutex 的开销是过大的,它不管有没有发生数据竞争(也就是就算全是读的情况)也必须是老老实实上锁解锁,只有一个线程可以运行。如果你学过其它语言或者操作系统,相信这个时候就已经想到了:“读写锁”。\",\"C++ 标准库自然为我们提供了: std::shared_timed_mutex(C++14)、 std::shared_mutex(C++17)。它们的区别简单来说,前者支持更多的操作方式,后者有更高的性能优势。\",\"std::shared_mutex 同样支持 std::lock_guard、std::unique_lock。和 std::mutex 做的一样,保证写线程的独占访问。而那些无需修改数据结构的读线程,可以使用 std::shared_lock 获取访问权,多个线程可以一起读取。\",\"class Settings { private: std::map data_; mutable std::shared_mutex mutex_; // “M&M 规则”:mutable 与 mutex 一起出现 public: void set(const std::string& key, const std::string& value) { std::lock_guard lock{ mutex_ }; data_[key] = value; } std::string get(const std::string& key) const { std::shared_lock lock(mutex_); auto it = data_.find(key); return (it != data_.end()) ? it->second : \\\"\\\"; // 如果没有找到键返回空字符串 } };\",\"完整代码。测试链接。标准输出可能交错,但无数据竞争。\",\"std::shared_timed_mutex 具有 std::shared_mutex 的所有功能,并且额外支持超时功能。所以以上代码可以随意更换这两个互斥量。\"]},\"36\":{\"h\":\"\",\"t\":[\"线程对已经上锁的 std::mutex 再次上锁是错误的,这是未定义行为。然而在某些情况下,一个线程会尝试在释放一个互斥量前多次获取,所以提供了std::recursive_mutex。\",\"std::recursive_mutex 是 C++ 标准库提供的一种互斥量类型,它允许同一线程多次锁定同一个互斥量,而不会造成死锁。当同一线程多次对同一个 std::recursive_mutex 进行锁定时,只有在解锁与锁定次数相匹配时,互斥量才会真正释放。但它并不影响不同线程对同一个互斥量进行锁定的情况。不同线程对同一个互斥量进行锁定时,会按照互斥量的规则进行阻塞,\",\"#include #include #include std::recursive_mutex mtx; void recursive_function(int count) { // 递归函数,每次递归都会锁定互斥量 mtx.lock(); std::cout << \\\"Locked by thread: \\\" << std::this_thread::get_id() << \\\", count: \\\" << count << std::endl; if (count > 0) { recursive_function(count - 1); // 递归调用 } mtx.unlock(); // 解锁互斥量 } int main() { std::thread t1(recursive_function, 3); std::thread t2(recursive_function, 2); t1.join(); t2.join(); }\",\"运行测试。\",\"lock:线程可以在递归互斥体上重复调用 lock。在线程调用 unlock 匹配次数后,所有权才会得到释放。\",\"unlock:若所有权层数为 1(此线程对 lock() 的调用恰好比 unlock() 多一次 )则解锁互斥量,否则将所有权层数减少 1。\",\"我们重点的强调了一下这两个成员函数的这个概念,其实也很简单,总而言之就是 unlock 必须和 lock 的调用次数一样,才会真正解锁互斥量。\",\"同样的,我们也可以使用 std::lock_guard、std::unique_lock 帮我们管理 std::recursive_mutex,而非显式调用 lock 与 unlock:\",\"void recursive_function(int count) { std::lock_guard lc{ mtx }; std::cout << \\\"Locked by thread: \\\" << std::this_thread::get_id() << \\\", count: \\\" << count << std::endl; if (count > 0) { recursive_function(count - 1); } }\",\"运行测试。\"]},\"37\":{\"h\":\"、 是线程安全的吗?\",\"t\":[\"如果你的标准达到 C++11,要求下列函数是线程安全的:\",\"new 运算符和 delete 运算符的库版本\",\"全局 new 运算符和 delete 运算符的用户替换版本\",\"std::calloc、std::malloc、std::realloc、std::aligned_alloc (C++17 起)、std::free\",\"所以以下函数在多线程运行是线程安全的:\",\"void f(){ T* p = new T{}; delete p; }\",\"内存分配、释放操作是线程安全,构造和析构不涉及共享资源。而局部对象 p 对于每个线程来说是独立的。换句话说,每个线程都有其自己的 p 对象实例,因此它们不会共享同一个对象,自然没有数据竞争。\",\"如果 p 是全局对象(或者外部的,只要可被多个线程读写),多个线程同时对其进行访问和修改时,就可能会导致数据竞争和未定义行为。因此,确保全局对象的线程安全访问通常需要额外的同步措施,比如互斥量或原子操作。\",\"T* p = nullptr; void f(){ p = new T{}; // 存在数据竞争 delete p; }\",\"即使 p 是局部对象,如果构造函数(析构同理)涉及读写共享资源,那么一样存在数据竞争,需要进行额外的同步措施进行保护。\",\"int n = 1; struct X{ X(int v){ ::n += v; } }; void f(){ X* p = new X{ 1 }; // 存在数据竞争 delete p; }\",\"一个直观的展示是,我们可以在构造函数中使用 std::cout,看到无序的输出,例子。\",\"值得注意的是,如果是自己重载 operator new、operator delete 替换了库的全局版本,那么它的线程安全就要我们来保证。\",\"// 全局的 new 运算符,替换了库的版本 void* operator new (std::size_t count){ return ::operator new(count); }\",\"以上代码是线程安全的,因为 C++11 保证了 new 运算符的库版本,即 ::operator new 是线程安全的,我们直接调用它自然不成问题。如果你需要更多的操作,就得使用互斥量之类的方式保护了。\",\"总而言之,new 表达式线程安全要考虑三方面:operator new、构造函数、修改指针。\",\"delete 表达式线程安全考虑两方面:operator delete、析构函数。\",\"C++ 只保证了 operator new、operator delete 这两个方面的线程安全(不包括用户定义的),其它方面就得自己保证了。前面的内容也都提到了。\"]},\"38\":{\"h\":\"线程存储期\",\"t\":[\"线程存储期(也有人喜欢称作“线程局部存储”)的概念源自操作系统,是一种非常古老的机制,广泛应用于各种编程语言。线程存储期的对象在线程开始时分配,并在线程结束时释放。每个线程拥有自己独立的对象实例,互不干扰。在 C++11中,引入了thread_local关键字,用于声明具有线程存储期的对象。不少开发者喜欢直接将声明为线程存储期的对象称为:线程变量;也与全局变量、CPU 变量,在一起讨论。\",\"以下是一段示例代码,展示了 thread_local 关键字的使用:\",\"int global_counter = 0; thread_local int thread_local_counter = 0; void print_counters(){ std::cout << \\\"global:\\\" << global_counter++ << '\\\\n'; std::cout << \\\"thread_local:\\\" << thread_local_counter++ << '\\\\n'; } int main(){ std::thread{ print_counters }.join(); std::thread{ print_counters }.join(); }\",\"运行结果:\",\"global:0 thread_local:0 global:1 thread_local:0\",\"这段代码很好的展示了 thread_local 关键字的使用以及它的作用。每一个线程都有独立的 thread_local_counter 对象,它们不是同一个。\",\"我知道你会有问题:“那么 C++11 之前呢?”那时开发者通常使用 POSIX 线程(Pthreads)或 Win32 线程的接口,或者依赖各家编译器的扩展。例如:\",\"POSIX:使用 pthread_key_t 和相关的函数( pthread_key_create、pthread_setspecific、pthread_getspecific 和pthread_key_delete)来管理线程局部存储。\",\"Win32:使用 TLS(Thread Local Storage)机制,通过函数 TlsAlloc、TlsSetValue、TlsGetValue 和 TlsFree 来实现线程局部存储。\",\"GCC:使用 __thread 。\",\"MSVC:使用 __declspec(thread)。\",\"POSIX 与 Win32 接口的就不再介绍了,有兴趣参见我们的链接即可。我们就拿先前的代码改成使用 GCC 与 MSVC 的编译器扩展即可。\",\"__thread int thread_local_counter = 0; // GCC __declspec(thread) int thread_local_counter = 0; // MSVC\",\"MSVC 无法使用 GCC 的编译器扩展,GCC 也肯定无法使用 MSVC 的扩展,不过 Clang 编译器可以,它支持 __thread 与 __declspec(thread) 两种。Clang 默认情况就支持 GCC 的编译器扩展,如果要支持 MSVC,需要设置 -fms-extensions 编译选项。\",\"__declspec(thread) 运行测试\",\"__thread 运行测试\",\"要注意的是,这些扩展并不是标准的 C++ 语言特性,它们的跨平台性和可移植性较差,我们应当使用 C++ 标准的 thread_local。\",\"了解其它 API 以及编译器扩展有助于理解历史上线程存储期的演进。同时扩展知识面。\"]},\"39\":{\"h\":\"注意事项\",\"t\":[\"需要注意的是,在 MSVC 的实现中,如果 std::async 策略为 launch::async ,但却并不是每次都创建一个新的线程,而是从线程池获取线程。这意味着无法保证线程局部变量在任务完成时会被销毁。如果线程被回收并用于新的 std::async 调用,则旧的线程局部变量仍然存在。因此,建议不要将线程局部变量与 std::async 一起使用。文档。\",\"虽然还没有讲 std::async ,不过还是可以注意一下这个问题,我们用一个简单的示例为你展示:\",\"int n = 0; struct X { ~X() { ++n; } }; thread_local X x{}; void use_thread_local_x() { // 如果不写此弃值表达式,那么在 Gcc 与 Clang 编译此代码,会优化掉 x (void)x; } int main() { std::cout << \\\"使用 std::thread: \\\\n\\\"; std::thread{ use_thread_local_x }.join(); std::cout << n << '\\\\n'; std::cout << \\\"使用 std::async: \\\\n\\\"; std::async(std::launch::async, use_thread_local_x); std::cout << n << '\\\\n'; }\",\"在不同编译器上的输出结果:\",\"Linux/Windows GCC、Clang:会输出 1、2,因为线程变量 x 在每个任务中被正确销毁析构。\",\"Windows MSVC:会输出 1、1,因为线程被线程池复用,线程依然活跃,线程变量 x 也就还未释放。\"]},\"40\":{\"h\":\"CPU 变量\",\"t\":[\"CPU 变量的概念很好理解。就像线程变量为每个线程提供独立的对象实例,互不干扰一样,CPU 变量也是如此。在创建 CPU 变量时,系统上的每个 CPU [2] 都会获得该变量的一个副本。\",\"在 Linux 内核中,从 2.6[3] 版本开始引入了 Per-CPU 变量(Per-CPU variables)功能。Per-CPU 变量是为每个处理器单独分配的变量副本,旨在减少多处理器访问共享数据时的同步开销,提升性能。每个处理器只访问自己的变量副本,不需要进行同步操作,避免了数据竞争,增强了并行处理能力。\",\"在 Windows 内核中,没有直接对应的 Per-CPU 变量机制。\",\"本节是偏向概念的认识,而非实际进行内核编程,C++ 语言层面也并未提供此抽象。理解 CPU 变量的概念对于系统编程和内核开发非常重要。这些概念在面试和技术讨论中常常出现,掌握这些知识不仅有助于应对面试问题,也能提升对多处理器系统性能优化的理解。\"]},\"41\":{\"h\":\"\",\"t\":[\"在并发编程中,不同的变量有不同的使用场景和特点。以下是局部变量、全局变量、线程变量、CPU变量的对比:\"]},\"42\":{\"h\":\"局部变量(不考虑静态局部)\",\"t\":[\"它拥有自动存储期,随作用域开始分配,结束时释放。每个线程、每次调用都有独立实例,完全独立,几乎无需同步。\"]},\"43\":{\"h\":\"全局变量\",\"t\":[\"拥有 静态(static)存储期,它的存储在程序开始时分配,并在程序结束时解分配;且它在主函数执行之前进行初始化。\"]},\"44\":{\"h\":\"线程变量\",\"t\":[\"拥有 线程(thread) 存储期。它的存储在线程开始时分配,并在线程结束时解分配。每个线程拥有它自身的对象实例。只有声明为 thread_local 的对象拥有此存储期(不考虑非标准用法)。它的初始化需要考虑局部与非局部两种情况: \",\"非局部变量:所有具有线程局部存储期的非局部变量的初始化,会作为线程启动的一部分进行,并按顺序早于线程函数的执行开始。\",\"静态局部变量[4]:控制流首次经过它的声明时才会被初始化(除非它被零初始化或常量初始化)。在其后所有的调用中,声明都会被跳过。\"]},\"45\":{\"h\":\"CPU变量\",\"t\":[\"它在标准 C++ 中无对应抽象实现,是操作系统内核功能。它主要依赖于当前系统内核来进行使用,也无法跨平台。基本概念与线程变量类似:CPU 变量是为每个处理器单独分配的变量副本。\",\"局部变量适合临时数据,作用域结束自动释放,几乎[5]无需同步。\",\"全局变量适合整个程序的共享状态,但需要使用同步设施进行保护。\",\"线程变量适合线程的独立状态,通常[6]无需同步。\",\"CPU 变量的使用是少见的,主要用于内核开发和追求极致性能的高并发场景,减少 CPU 同步开销。\",\"总而言之,结合实际使用即可,把这四种变量拿出来进行对比,增进理解,加深印象。\"]},\"46\":{\"h\":\"\",\"t\":[\"本章讨论了多线程的共享数据引发的恶性条件竞争会带来的问题。并说明了可以使用互斥量(std::mutex)保护共享数据,并且要注意互斥量上锁的“粒度”。C++标准库提供了很多工具,包括管理互斥量的管理类(std::lock_guard),但是互斥量只能解决它能解决的问题,并且它有自己的问题(死锁)。同时我们讲述了一些避免死锁的方法和技术。还讲了一下互斥量所有权转移。然后讨论了面对不同情况保护共享数据的不同方式,使用 std::call_once() 保护共享数据的初始化过程,使用读写锁(std::shared_mutex)保护不常更新的数据结构。以及特殊情况可能用到的互斥量 recursive_mutex,有些人可能喜欢称作:递归锁。然后聊了一下 new、delete 运算符的库函数实际是线程安全的。最后介绍了一下线程存储期、CPU 变量,和各种变量进行了一个对比。\",\"下一章,我们将开始讲述同步操作,会使用到 Futures、条件变量等设施。\",\"\\\"临界区\\\"指的是一个访问共享资源的程序片段,而这些共享资源又无法同时被多个线程访问的特性。在临界区中,通常会使用同步机制,比如我们要讲的互斥量(Mutex)。 ↩︎\",\"“每个 CPU”,指的是系统中的每个物理处理器或每个逻辑处理器(如果超线程被启用)。 ↩︎\",\"Linux 内核版本历史。 ↩︎\",\"“静态局部变量”:是指拥有静态或线程存储期的局部变量。 ↩︎\",\"之所以说是“几乎”,是因为局部对象的构造、析构,或其它成员函数也可能修改共享数据、全局状态。如果它们不是线程安全的,同样可能产生数据竞争,例如,某类型 X 的构造函数会自增一个全局变量 n,那么即使局部对象本身是独立的,但由于构造函数修改了共享数据,依然会产生数据竞争。不过实践中这种情况较少,即使涉及到全局的状态,通常其本身也是线程安全的,例如前文提到的 new、delete 线程安全的问题。 ↩︎\",\"之所以说“通常”而不是一定,是因为理论上线程变量一样可能产生数据竞争(例如有一个全局的指针指向了一个线程局部变量,其它线程通过这个指针读写线程局部变量而不附加同步,自然会产生数据竞争),只不过实践中通常不会那样做,所以我们不额外提及。 ↩︎\"]},\"47\":{\"h\":\"同步操作\",\"t\":[\"\\\"同步操作\\\"是指在计算机科学和信息技术中的一种操作方式,其中不同的任务或操作按顺序执行,一个操作完成后才能开始下一个操作。在多线程编程中,各个任务通常需要通过同步设施进行相互协调和等待,以确保数据的一致性和正确性。\",\"本章的主要内容有:\",\"条件变量\",\"std::future 等待异步任务\",\"在规定时间内等待\",\"Qt 实现异步任务的示例\",\"其它 C++20 同步设施:信号量、闩与屏障\",\"本章将讨论如何使用条件变量等待事件,介绍 future 等标准库设施用作同步操作,使用Qt+CMake 构建一个项目展示多线程的必要性,介绍 C++20 引入的新的同步设施。\"]},\"48\":{\"h\":\"等待事件或条件\",\"t\":[\"假设你正在一辆夜间运行的地铁上,那么你要如何在正确的站点下车呢?\",\"一直不休息,每一站都能知道,这样就不会错过你要下车的站点,但是这会很疲惫。\",\"可以看一下时间,估算一下地铁到达目的地的时间,然后设置一个稍早的闹钟,就休息。这个方法听起来还行,但是你可能被过早的叫醒,甚至估算错误导致坐过站,又或者闹钟没电了睡过站。\",\"事实上最简单的方式是,到站的时候有人或者其它东西能将你叫醒(比如手机的地图,到达设置的位置就提醒)。\",\"这和线程有什么关系呢?其实第一种方法就是在说”忙等待(busy waiting)”也称“自旋“。\",\"bool flag = false; std::mutex m; void wait_for_flag(){ std::unique_lock lk{ m }; while (!flag){ lk.unlock(); // 1 解锁互斥量 lk.lock(); // 2 上锁互斥量 } }\",\"第二种方法就是加个延时,这种实现进步了很多,减少浪费的执行时间,但很难确定正确的休眠时间。这会影响到程序的行为,在需要快速响应的程序中就意味着丢帧或错过了一个时间片。循环中,休眠②前函数对互斥量解锁①,再休眠结束后再对互斥量上锁,让另外的线程有机会获取锁并设置标识(因为修改函数和等待函数共用一个互斥量)。\",\"void wait_for_flag(){ std::unique_lock lk{ m }; while (!flag){ lk.unlock(); // 1 解锁互斥量 std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 2 休眠 lk.lock(); // 3 上锁互斥量 } }\",\"第三种方式(也是最好的)实际上就是使用条件变量了。通过另一线程触发等待事件的机制是最基本的唤醒方式,这种机制就称为“条件变量”。\",\"C++ 标准库对条件变量有两套实现:std::condition_variable 和 std::condition_variable_any,这两个实现都包含在 头文件中。\",\"condition_variable_any 类是 std::condition_variable 的泛化。相对于只在 std::unique_lock 上工作的 std::condition_variable,condition_variable_any 能在任何满足可基本锁定(BasicLockable)要求的锁上工作,所以增加了 _any 后缀。显而易见,这种区分必然是 any 版更加通用但是却有更多的性能开销。所以通常首选std::condition_variable。有特殊需求,才会考虑 std::condition_variable_any。\",\"std::mutex mtx; std::condition_variable cv; bool arrived = false; void wait_for_arrival() { std::unique_lock lck(mtx); cv.wait(lck, []{ return arrived; }); // 等待 arrived 变为 true std::cout << \\\"到达目的地,可以下车了!\\\" << std::endl; } void simulate_arrival() { std::this_thread::sleep_for(std::chrono::seconds(5)); // 模拟地铁到站,假设5秒后到达目的地 { std::lock_guard lck(mtx); arrived = true; // 设置条件变量为 true,表示到达目的地 } cv.notify_one(); // 通知等待的线程 }\",\"运行测试。更换为 std::condition_variable_any 效果相同。\",\"std::mutex mtx: 创建了一个互斥量,用于保护共享数据的访问,确保在多线程环境下的数据同步。\",\"std::condition_variable cv: 创建了一个条件变量,用于线程间的同步,当条件不满足时,线程可以等待,直到条件满足时被唤醒。\",\"bool arrived = false: 设置了一个标志位,表示是否到达目的地。\",\"在 wait_for_arrival 函数中:\",\"std::unique_lock lck(mtx): 使用互斥量创建了一个独占锁。\",\"cv.wait(lck, []{ return arrived; }): 阻塞当前线程,释放(unlock)锁,直到条件被满足。\",\"一旦条件满足,即 arrived 变为 true,并且条件变量 cv 被唤醒(包括虚假唤醒),那么当前线程会重新获取锁(lock),并执行后续的操作。\",\"在 simulate_arrival 函数中:\",\"std::this_thread::sleep_for(std::chrono::seconds(5)): 模拟地铁到站,暂停当前线程 5 秒。\",\"设置 arrived 为 true,表示到达目的地。\",\"cv.notify_one(): 唤醒一个等待条件变量的线程。\",\"这样,当 simulate_arrival 函数执行后,arrived 被设置为 true,并且通过 cv.notify_one() 唤醒了等待在条件变量上的线程,从而使得 wait_for_arrival 函数中的等待结束,可以执行后续的操作,即输出提示信息。\",\"条件变量的 wait 成员函数有两个版本,以上代码使用的就是第二个版本,传入了一个谓词。\",\"void wait(std::unique_lock& lock); // 1 template void wait(std::unique_lock& lock, Predicate pred); // 2\",\"②等价于:\",\"while (!pred()) wait(lock);\",\"第二个版本只是对第一个版本的包装,等待并判断谓词,会调用第一个版本的重载。这可以避免“虚假唤醒(spurious wakeup)”。\",\"条件变量虚假唤醒是指在使用条件变量进行线程同步时,有时候线程可能会在没有收到通知的情况下被唤醒。问题取决于程序和系统的具体实现。解决方法很简单,在循环中等待并判断条件可一并解决。使用 C++ 标准库则没有这个烦恼了。\",\"我们也可以简单看一下 MSVC STL 的源码实现:\",\"void wait(unique_lock& _Lck) noexcept { _Cnd_wait(_Mycnd(), _Lck.mutex()->_Mymtx()); } template void wait(unique_lock& _Lck, _Predicate _Pred) { while (!_Pred()) { wait(_Lck); } }\"]},\"49\":{\"h\":\"线程安全的队列\",\"t\":[\"在本节中,我们介将绍一个更为复杂的示例,以巩固我们对条件变量的学习。为了实现一个线程安全的队列,我们需要考虑以下两个关键点:\",\"当执行 push 操作时,需要确保没有其他线程正在执行 push 或 pop 操作;同样,在执行 pop 操作时,也需要确保没有其他线程正在执行 push 或 pop 操作。\",\"当队列为空时,不应该执行 pop 操作。因此,我们需要使用条件变量来传递一个谓词,以确保在执行 pop 操作时队列不为空。\",\"基于以上思考,我们设计了一个名为 threadsafe_queue 的模板类,如下:\",\"template class threadsafe_queue { mutable std::mutex m; // 互斥量,用于保护队列操作的独占访问 std::condition_variable data_cond; // 条件变量,用于在队列为空时等待 std::queue data_queue; // 实际存储数据的队列 public: threadsafe_queue() {} void push(T new_value) { { std::lock_guard lk { m }; data_queue.push(new_value); } data_cond.notify_one(); } // 从队列中弹出元素(阻塞直到队列不为空) void pop(T& value) { std::unique_lock lk{ m }; data_cond.wait(lk, [this] {return !data_queue.empty(); }); value = data_queue.front(); data_queue.pop(); } // 从队列中弹出元素(阻塞直到队列不为空),并返回一个指向弹出元素的 shared_ptr std::shared_ptr pop() { std::unique_lock lk{ m }; data_cond.wait(lk, [this] {return !data_queue.empty(); }); std::shared_ptr res { std::make_shared(data_queue.front()) }; data_queue.pop(); return res; } bool empty()const { std::lock_guard lk (m); return data_queue.empty(); } };\",\"请无视我们省略的构造、赋值、交换、try_xx 等操作。以上示例已经足够。\",\"光写好了肯定不够,我们还得测试运行,我们可以写一个经典的:”生产者消费者模型“,也就是一个线程 push ”生产“,一个线程 pop ”消费“。\",\"void producer(threadsafe_queue& q) { for (int i = 0; i < 5; ++i) { q.push(i); } } void consumer(threadsafe_queue& q) { for (int i = 0; i < 5; ++i) { int value{}; q.pop(value); } }\",\"两个线程分别运行 producer 与 consumer,为了观测运行我们可以为 push 与 pop 中增加打印语句:\",\"std::cout << \\\"push:\\\" << new_value << std::endl; std::cout << \\\"pop:\\\" << value << std::endl;\",\"可能的运行结果是:\",\"push:0 pop:0 push:1 pop:1 push:2 push:3 push:4 pop:2 pop:3 pop:4\",\"这很正常,到底哪个线程会抢到 CPU 时间片持续运行,是系统调度决定的,我们只需要保证一开始提到的两点就行了:\",\"push 与 pop 都只能单独执行;当队列为空时,不执行 pop 操作。\",\"我们可以给一个简单的示意图帮助你理解这段运行结果:\",\"初始状态:队列为空 +---+---+---+---+---+ Producer 线程插入元素 0: +---+---+---+---+---+ | 0 | | | | | Consumer 线程弹出元素 0: +---+---+---+---+---+ | | | | | | Producer 线程插入元素 1: +---+---+---+---+---+ | 1 | | | | | Consumer 线程弹出元素 1: +---+---+---+---+---+ | | | | | | Producer 线程插入元素 2: +---+---+---+---+---+ | | 2 | | | | Producer 线程插入元素 3: +---+---+---+---+---+ | | 2 | 3 | | | Producer 线程插入元素 4: +---+---+---+---+---+ | | 2 | 3 | 4 | | Consumer 线程弹出元素 2: +---+---+---+---+---+ | | | 3 | 4 | | Consumer 线程弹出元素 3: +---+---+---+---+---+ | | | | 4 | | Consumer 线程弹出元素 4: +---+---+---+---+---+ | | | | | | 队列为空,所有元素已被弹出\",\"到此,也就可以了。\"]},\"50\":{\"h\":\"使用条件变量实现后台提示音播放\",\"t\":[\"一个常见的场景是:当你的软件完成了主要功能后,领导可能突然要求添加一些竞争对手产品的功能。比如领导看到了人家的设备跑起来总是有一些播报,说明当前的情况,执行的过程,或者报错了也会有提示音说明。于是就想让我们的程序也增加“语音提示”的功能。此时,你需要考虑如何在程序运行到不同状态时添加适当的语音播报,并且确保这些提示音的播放不会影响其他功能的正常运行。\",\"为了不影响程序的流畅执行,提示音的播放显然不能占据业务线程的资源。我们需要额外启动一个线程来专门处理这个任务。\",\"但是,大多数的提示音播放都是短暂且简单。如果每次播放提示音时都新建一个线程,且不说创建线程也需要大量时间,可能影响业务正常的执行任务的流程,就光是其频繁创建线程的开销也是不能接受的。\",\"因此,更合理的方案是:在程序启动时,就启动一个专门用于播放提示音的线程。当没有需要播放的提示时,该线程会一直处于等待状态;一旦有提示音需要播放,线程就被唤醒,完成播放任务。\",\"具体来说,我们可以通过条件变量来实现这一逻辑,核心是监控一个音频队列。我们可以封装一个类型,包含以下功能:\",\"一个成员函数在对象构造时就启动,使用条件变量监控队列是否为空,互斥量确保共享资源的同步。如果队列中有任务,就取出并播放提示音;如果队列为空,则线程保持阻塞状态,等待新的任务到来。\",\"提供一个外部函数,以供在需要播放提示音的时候调用它,向队列添加新的元素,该函数需要通过互斥量来保护数据一致性,并在成功添加任务后唤醒条件变量,通知播放线程执行任务。\",\"这种设计通过合理利用条件变量和互斥量,不仅有效减少了 CPU 的无效开销,还能够确保主线程的顺畅运行。它不仅适用于提示音的播放,还能扩展用于其他类似的后台任务场景。\",\"我们引入 SFML 三方库进行声音播放,然后再自己进行上层封装。\",\"class AudioPlayer { public: AudioPlayer() : stop{ false }, player_thread{ &AudioPlayer::playMusic, this } {} ~AudioPlayer() { // 等待队列中所有音乐播放完毕 while (!audio_queue.empty()) { std::this_thread::sleep_for(50ms); } stop = true; cond.notify_all(); if (player_thread.joinable()) { player_thread.join(); } } void addAudioPath(const std::string& path) { std::lock_guard lock{ mtx }; // 互斥量确保了同一时间不会有其它地方在操作共享资源(队列) audio_queue.push(path); // 为队列添加元素 表示有新的提示音需要播放 cond.notify_one(); // 通知线程新的音频 } private: void playMusic() { while (!stop) { std::string path; { std::unique_lock lock{ mtx }; cond.wait(lock, [this] { return !audio_queue.empty() || stop; }); if (audio_queue.empty()) return; // 防止在对象为空时析构出错 path = audio_queue.front(); // 从队列中取出元素 audio_queue.pop(); // 取出后就删除元素,表示此元素已被使用 } if (!music.openFromFile(path)) { std::cerr << \\\"无法加载音频文件: \\\" << path << std::endl; continue; // 继续播放下一个音频 } music.play(); // 等待音频播放完毕 while (music.getStatus() == sf::SoundSource::Playing) { sf::sleep(sf::seconds(0.1f)); // sleep 避免忙等占用 CPU } } } std::atomic stop; // 控制线程的停止与退出, std::thread player_thread; // 后台执行音频任务的专用线程 std::mutex mtx; // 保护共享资源 std::condition_variable cond; // 控制线程等待和唤醒,当有新任务时通知音频线程 std::queue audio_queue; // 音频任务队列,存储待播放的音频文件路径 sf::Music music; // SFML 音频播放器,用于加载和播放音频文件 };\",\"该代码实现了一个简单的后台音频播放类型,通过条件变量和互斥量确保播放线程 playMusic 只在只在有音频任务需要播放时工作(当外部通过调用 addAudioPath() 向队列添加播放任务时)。在没有任务时,线程保持等待状态,避免占用 CPU 资源影响主程序的运行。\"]},\"51\":{\"h\":\"注意\",\"t\":[\"其实这段代码还存在着一个初始化顺序导致的问题,见 #27\",\"此外,关于提示音的播报,为了避免每次都手动添加路径,我们可以创建一个音频资源数组,便于使用:\",\"此外,关于提示音的播报,为了避免每次都手动添加路径,我们可以创建一个音频资源数组,便于使用:\",\"static constexpr std::array soundResources{ \\\"./sound/01初始化失败.ogg\\\", \\\"./sound/02初始化成功.ogg\\\", \\\"./sound/03试剂不足,请添加.ogg\\\", \\\"./sound/04试剂已失效,请更新.ogg\\\", \\\"./sound/05清洗液不足,请添加.ogg\\\", \\\"./sound/06废液桶即将装满,请及时清空.ogg\\\", \\\"./sound/07废料箱即将装满,请及时清空.ogg\\\", \\\"./sound/08激发液A液不足,请添加.ogg\\\", \\\"./sound/09激发液B液不足,请添加.ogg\\\", \\\"./sound/10反应杯不足,请添加.ogg\\\", \\\"./sound/11检测全部完成.ogg\\\" };\",\"为了提高代码的可读性,我们还可以使用一个枚举类型来表示音频资源的索引:\",\"enum SoundIndex { InitializationFailed, InitializationSuccessful, ReagentInsufficient, ReagentExpired, CleaningAgentInsufficient, WasteBinAlmostFull, WasteContainerAlmostFull, LiquidAInsufficient, LiquidBInsufficient, ReactionCupInsufficient, DetectionCompleted, SoundCount // 总音频数量,用于计数 };\",\"需要注意的是 SFML不支持 .mp3 格式的音频文件,大家可以使用 ffmpeg 或者其它软件网站将音频转换为支持的格式。\",\"如果是测试使用,不知道去哪生成这些语音播报,我们推荐 tts-vue。\",\"我们的代码也可以在 Linux 中运行,并且整体仅需 C++11 标准,除了 soundResources 数组以外。 SFML 依赖于 FLAC 和 OpenAL 这两个库。在 Windows 上下载的 SFML 版本已包含这些依赖,但在 Linux 上需要用户自行下载并安装它们。如:\",\"sudo apt-get install libflac-dev sudo apt-get install libopenal-dev\"]},\"52\":{\"h\":\"使用\",\"t\":[\"举个例子:我们在车站等车,你可能会做一些别的事情打发时间,比如学习现代 C++ 模板教程、观看 mq白 的视频教程、玩手机等。不过,你始终在等待一件事情:车到站。\",\"C++ 标准库将这种事件称为 future。它用于处理线程中需要等待某个事件的情况,线程知道预期结果。等待的同时也可以执行其它的任务。\",\"C++ 标准库有两种 future,都声明在 头文件中:独占的 std::future 、共享的 std::shared_future。它们的区别与 std::unique_ptr 和 std::shared_ptr 类似。std::future 只能与单个指定事件关联,而 std::shared_future 能关联多个事件。它们都是模板,它们的模板类型参数,就是其关联的事件(函数)的返回类型。当多个线程需要访问一个独立 future 对象时, 必须使用互斥量或类似同步机制进行保护。而多个线程访问同一共享状态,若每个线程都是通过其自身的 shared_future 对象副本进行访问,则是安全的。\",\"最简单有效的使用是,我们先前讲的 std::thread 在线程中执行任务是没有返回值的,这个问题就能使用 future 解决。\"]},\"53\":{\"h\":\"创建异步任务获取返回值\",\"t\":[\"假设需要执行一个耗时任务并获取其返回值,但是并不急切的需要它。那么就可以启动新线程计算,然而 std::thread 没提供直接从线程获取返回值的机制。所以我们可以使用 std::async 函数模板。\",\"使用 std::async 启动一个异步任务,它会返回一个 std::future 对象,这个对象和任务关联,将持有最终计算出来的结果。当需要任务执行完的结果的时候,只需要调用 get() 成员函数,就会阻塞直到 future 为就绪为止(即任务执行完毕),返回执行结果。valid() 成员函数检查 future 当前是否关联共享状态,即是否当前关联任务。还未关联,或者任务已经执行完(调用了 get()、set()),都会返回 false。\",\"#include #include #include // 引入 future 头文件 int task(int n) { std::cout << \\\"异步任务 ID: \\\" << std::this_thread::get_id() << '\\\\n'; return n * n; } int main() { std::future future = std::async(task, 10); std::cout << \\\"main: \\\" << std::this_thread::get_id() << '\\\\n'; std::cout << std::boolalpha << future.valid() << '\\\\n'; // true std::cout << future.get() << '\\\\n'; std::cout << std::boolalpha << future.valid() << '\\\\n'; // false }\",\"运行测试。\",\"与 std::thread 一样,std::async 支持任意可调用(Callable)对象,以及传递调用参数。包括支持使用 std::ref ,以及支持只能移动的类型。我们下面详细聊一下 std::async 参数传递的事。\",\"struct X{ int operator()(int n)const{ return n * n; } }; struct Y{ int f(int n)const{ return n * n; } }; void f(int& p) { std::cout << &p << '\\\\n'; } int main(){ Y y; int n = 0; auto t1 = std::async(X{}, 10); auto t2 = std::async(&Y::f,&y,10); auto t3 = std::async([] {}); auto t4 = std::async(f, std::ref(n)); std::cout << &n << '\\\\n'; }\",\"运行测试。\",\"如你所见,它支持所有可调用(Callable)对象,并且也是默认按值复制,必须使用 std::ref 才能传递引用。并且它和 std::thread 一样,内部会将保有的参数副本转换为右值表达式进行传递,这是为了那些只支持移动的类型,左值引用没办法引用右值表达式,所以如果不使用 std::ref,这里 void f(int&) 就会导致编译错误,如果是 void f(const int&) 则可以通过编译,不过引用的不是我们传递的局部对象。\",\"void f(const int& p) {} void f2(int& p ){} int n = 0; std::async(f, n); // OK! 可以通过编译,不过引用的并非是局部的n std::async(f2, n); // Error! 无法通过编译\",\"我们来展示使用 std::move ,也就是移动传递参数并接受返回值:\",\"struct move_only{ move_only() { std::puts(\\\"默认构造\\\"); } move_only(move_only&&)noexcept { std::puts(\\\"移动构造\\\"); } move_only& operator=(move_only&&) noexcept { std::puts(\\\"移动赋值\\\"); return *this; } move_only(const move_only&) = delete; }; move_only task(move_only x){ std::cout << \\\"异步任务 ID: \\\" << std::this_thread::get_id() << '\\\\n'; return x; } int main(){ move_only x; std::future future = std::async(task, std::move(x)); std::this_thread::sleep_for(std::chrono::seconds(1)); std::cout << \\\"main\\\\n\\\"; move_only result = future.get(); // 等待异步任务执行完毕 }\",\"运行测试。\",\"如你所见,它支持只移动类型,我们将参数使用 std::move 传递,接收参数的时候直接调用 get 函数即可。\",\"接下来我们聊 std::async 的执行策略,我们前面一直没有使用,其实就是在传递可调用对象与参数之前传递枚举值罢了:\",\"std::launch::async 在不同线程上执行异步任务。\",\"std::launch::deferred 惰性求值,不创建线程,等待 future 对象调用 wait 或 get 成员函数的时候执行任务。\",\"而我们先前一直没有写明这个参数,是因为 std::async 函数模板有两个重载,不给出执行策略就是以:std::launch::async | std::launch::deferred 调用另一个重载版本(这一点中在源码中很明显),此策略表示由实现选择到底是否创建线程执行异步任务。典型情况是,如果系统资源充足,并且异步任务的执行不会导致性能问题,那么系统可能会选择在新线程中执行任务。但是,如果系统资源有限,或者延迟执行可以提高性能或节省资源,那么系统可能会选择延迟执行。\",\"如果你阅读 libstdc++ 的代码,会发现的确如此。\",\"然而值得注意的是,在 MSVC STL 的实现中,launch::async | launch::deferred 与 launch::async 执行策略毫无区别,源码如下:\",\"template _Associated_state::type>* _Get_associated_state(launch _Psync, _Fty&& _Fnarg) { // construct associated asynchronous state object for the launch type switch (_Psync) { // select launch type case launch::deferred: return new _Deferred_async_state<_Ret>(_STD forward<_Fty>(_Fnarg)); case launch::async: // TRANSITION, fixed in vMajorNext, should create a new thread here default: return new _Task_async_state<_Ret>(_STD forward<_Fty>(_Fnarg)); } }\",\"且 _Task_async_state 会通过 ::Concurrency::create_task[1] 从线程池中获取线程并执行任务返回包装对象。\",\"简而言之,使用 std::async,只要不是 launch::deferred 策略,那么 MSVC STL 实现中都是必然在线程中执行任务。因为是线程池,所以执行新任务是否创建新线程,任务执行完毕线程是否立即销毁,不确定。\",\"我们来展示一下:\",\"void f(){ std::cout << std::this_thread::get_id() << '\\\\n'; } int main(){ std::cout << std::this_thread::get_id() << '\\\\n'; auto f1 = std::async(std::launch::deferred, f); f1.wait(); // 在 wait() 或 get() 调用时执行,不创建线程 auto f2 = std::async(std::launch::async,f); // 创建线程执行异步任务 auto f3 = std::async(std::launch::deferred | std::launch::async, f); // 实现选择的执行方式 }\",\"运行测试。\",\"其实到此基本就差不多了,我们再介绍两个常见问题即可:\",\"如果从 std::async 获得的 std::future 没有被移动或绑定到引用,那么在完整表达式结尾, std::future 的**析构函数将阻塞,直到到异步任务完成**。因为临时对象的生存期就在这一行,而对象生存期结束就会调用调用析构函数。\",\"std::async(std::launch::async, []{ f(); }); // 临时量的析构函数等待 f() std::async(std::launch::async, []{ g(); }); // f() 完成前不开始\",\"如你所见,这并不能创建异步任务,它会阻塞,然后逐个执行。\",\"被移动的 std::future 没有所有权,失去共享状态,不能调用 get、wait 成员函数。\",\"auto t = std::async([] {}); std::future future{ std::move(t) }; t.wait(); // Error! 抛出异常\",\"如同没有线程资源所有权的 std::thread 对象调用 join() 一样错误,这是移动语义的基本语义逻辑。\"]},\"54\":{\"h\":\"与\",\"t\":[\"类模板 std::packaged_task 包装任何可调用(Callable)目标(函数、lambda 表达式、bind 表达式或其它函数对象),使得能异步调用它。其返回值或所抛异常被存储于能通过 std::future 对象访问的共享状态中。\",\"通常它会和 std::future 一起使用,不过也可以单独使用,我们一步一步来:\",\"std::packaged_task task([](int a, int b){ return std::pow(a, b); }); task(10, 2); // 执行传递的 lambda,但无法获取返回值\",\"它有 operator() 的重载,它会执行我们传递的可调用(Callable)对象,不过这个重载的返回类型是 void没办法获取返回值。\",\"如果想要异步的获取返回值,我们需要在调用 operator() 之前,让它和 future 关联,然后使用 future.get(),也就是:\",\"std::packaged_task task([](int a, int b){ return std::pow(a, b); }); std::futurefuture = task.get_future(); task(10, 2); // 此处执行任务 std::cout << future.get() << '\\\\n'; // 不阻塞,此处获取返回值\",\"运行测试。\",\"先关联任务,再执行任务,当我们想要获取任务的返回值的时候,就 future.get() 即可。值得注意的是,任务并不会在线程中执行,想要在线程中执行异步任务,然后再获取返回值,我们可以这么做:\",\"std::packaged_task task([](int a, int b){ return std::pow(a, b); }); std::future future = task.get_future(); std::thread t{ std::move(task),10,2 }; // 任务在线程中执行 // todo.. 幻想还有许多耗时的代码 t.join(); std::cout << future.get() << '\\\\n'; // 并不阻塞,获取任务返回值罢了\",\"运行测试。\",\"因为 task 本身是重载了 operator() 的,是可调用对象,自然可以传递给 std::thread 执行,以及传递调用参数。唯一需要注意的是我们使用了 std::move ,这是因为 std::packaged_task 只能移动,不能复制。\",\"简而言之,其实 std::packaged_task 也就是一个“包装”类而已,它本身并没什么特殊的,老老实实执行我们传递的任务,且方便我们获取返回值罢了,明确这一点,那么一切都不成问题。\",\"std::packaged_task 也可以在线程中传递,在需要的时候获取返回值,而非像上面那样将它自己作为可调用对象:\",\"template requires std::invocable&, Args...> void async_task(std::packaged_task& task, Args&&...args) { // todo.. task(std::forward(args)...); } int main() { std::packaged_task task([](int a,int b){ return a + b; }); int value = 50; std::future future = task.get_future(); // 创建一个线程来执行异步任务 std::thread t{ [&] {async_task(task, value, value); } }; std::cout << future.get() << '\\\\n'; t.join(); }\",\"运行测试。\",\"我们套了一个 lambda,这是因为函数模板不是函数,它并非具体类型,没办法直接被那样传递使用,只能包一层了。这只是一个简单的示例,展示可以使用 std::packaged_task 作函数形参,然后我们来传递任务进行异步调用等操作。\",\"我们再将第二章实现的并行 sum 改成 std::package_task + std::future 的形式:\",\"template auto sum(ForwardIt first, ForwardIt last) { using value_type = std::iter_value_t; std::size_t num_threads = std::thread::hardware_concurrency(); std::ptrdiff_t distance = std::distance(first, last); if (distance > 1024000) { // 计算每个线程处理的元素数量 std::size_t chunk_size = distance / num_threads; std::size_t remainder = distance % num_threads; // 存储每个线程要执行的任务 std::vector>tasks; // 和每一个任务进行关联的 future 用于获取返回值 std::vector>futures(num_threads); // 存储关联线程的线程对象 std::vector threads; // 制作任务、与 future 关联、启动线程执行 auto start = first; for (std::size_t i = 0; i < num_threads; ++i) { auto end = std::next(start, chunk_size + (i < remainder ? 1 : 0)); tasks.emplace_back(std::packaged_task{[start, end, i] { return std::accumulate(start, end, value_type{}); }}); start = end; // 开始迭代器不断向前 futures[i] = tasks[i].get_future(); // 任务与 std::future 关联 threads.emplace_back(std::move(tasks[i])); } // 等待所有线程执行完毕 for (auto& thread : threads) thread.join(); // 汇总线程的计算结果 value_type total_sum {}; for (std::size_t i = 0; i < num_threads; ++i) { total_sum += futures[i].get(); } return total_sum; } value_type total_sum = std::accumulate(first, last, value_type{}); return total_sum; }\",\"运行测试。\",\"相比于之前,其实不同无非是定义了 std::vector> tasks 与 std::vector> futures ,然后在循环中制造任务插入容器,关联 future,再放到线程中执行。最后汇总的时候写一个循环,futures[i].get() 获取任务的返回值加起来即可。\",\"到此,也就可以了。\"]},\"55\":{\"h\":\"使用\",\"t\":[\"类模板 std::promise 用于存储一个值或一个异常,之后通过 std::promise 对象所创建的 std::future 对象异步获得。\",\"// 计算函数,接受一个整数并返回它的平方 void calculate_square(std::promise promiseObj, int num) { // 模拟一些计算 std::this_thread::sleep_for(std::chrono::seconds(1)); // 计算平方并设置值到 promise 中 promiseObj.set_value(num * num); } // 创建一个 promise 对象,用于存储计算结果 std::promise promise; // 从 promise 获取 future 对象进行关联 std::future future = promise.get_future(); // 启动一个线程进行计算 int num = 5; std::thread t(calculate_square, std::move(promise), num); // 阻塞,直到结果可用 int result = future.get(); std::cout << num << \\\" 的平方是:\\\" << result << std::endl; t.join();\",\"运行测试。\",\"我们在新线程中通过调用 set_value() 函数设置 promise 的值,并在主线程中通过与其关联的 future 对象的 get() 成员函数获取这个值,如果promise的值还没有被设置,那么将阻塞当前线程,直到被设置为止。同样的 std::promise只能移动,不可复制,所以我们使用了 std::move 进行传递。\",\"除了 set_value() 函数外,std::promise 还有一个 set_exception() 成员函数,它接受一个 std::exception_ptr 类型的参数,这个参数通常通过 std::current_exception() 获取,用于指示当前线程中抛出的异常。然后,std::future 对象通过 get() 函数获取这个异常,如果 promise 所在的函数有异常被抛出,则 std::future 对象会重新抛出这个异常,从而允许主线程捕获并处理它。\",\"void throw_function(std::promise prom) { try { throw std::runtime_error(\\\"一个异常\\\"); } catch (...) { prom.set_exception(std::current_exception()); } } int main() { std::promise prom; std::future fut = prom.get_future(); std::thread t(throw_function, std::move(prom)); try { std::cout << \\\"等待线程执行,抛出异常并设置\\\\n\\\"; fut.get(); } catch (std::exception& e) { std::cerr << \\\"来自线程的异常: \\\" << e.what() << '\\\\n'; } t.join(); }\",\"运行结果:\",\"等待线程执行,抛出异常并设置 来自线程的异常: 一个异常\",\"你可能对这段代码还有一些疑问:我们写的是 promise ,但是却没有使用 set_value 设置值,你可能会想着再写一行 prom.set_value(0)?\",\"共享状态的 promise 已经存储值或者异常,再次调用 set_value(set_exception) 会抛出 std::future_error 异常,将错误码设置为 promise_already_satisfied。这是因为 std::promise 对象只能是存储值或者异常其中一种,而无法共存。\",\"简而言之,set_value 与 set_exception 二选一,如果先前调用了 set_value ,就不可再次调用 set_exception,反之亦然(不然就会抛出异常),示例如下:\",\"void throw_function(std::promise prom) { prom.set_value(100); try { throw std::runtime_error(\\\"一个异常\\\"); } catch (...) { try{ // 共享状态的 promise 已存储值,调用 set_exception 产生异常 prom.set_exception(std::current_exception()); }catch (std::exception& e){ std::cerr << \\\"来自 set_exception 的异常: \\\" << e.what() << '\\\\n'; } } } int main() { std::promise prom; std::future fut = prom.get_future(); std::thread t(throw_function, std::move(prom)); std::cout << \\\"等待线程执行,抛出异常并设置\\\\n\\\"; std::cout << \\\"值:\\\" << fut.get() << '\\\\n'; // 100 t.join(); }\",\"运行结果:\",\"等待线程执行,抛出异常并设置 值:100 来自 set_exception 的异常: promise already satisfied\"]},\"56\":{\"h\":\"future 的状态变化\",\"t\":[\"需要注意的是,future 是一次性的,所以你需要注意移动。并且,调用 get 函数后,future 对象也会失去共享状态。\",\"移动语义:这一点很好理解并且常见,因为移动操作标志着所有权的转移,意味着 future 不再拥有共享状态(如之前所提到)。get 和 wait 函数要求 future 对象拥有共享状态,否则会抛出异常。\",\"共享状态失效:调用 get 成员函数时,future 对象必须拥有共享状态,但调用完成后,它就会失去共享状态,不能再次调用 get。这是我们在本节需要特别讨论的内容。\",\"std::futurefuture = std::async([] {}); std::cout << std::boolalpha << future.valid() << '\\\\n'; // true future.get(); std::cout << std::boolalpha << future.valid() << '\\\\n'; // false try { future.get(); // 抛出 future_errc::no_state 异常 } catch (std::exception& e) { std::cerr << e.what() << '\\\\n'; }\",\"运行测试。\",\"这个问题在许多文档中没有明确说明,但通过阅读源码(MSVC STL),可以很清楚地理解:\",\"// std::future void get() { // block until ready then return or throw the stored exception future _Local{_STD move(*this)}; _Local._Get_value(); } // std::future _Ty get() { // block until ready then return the stored result or throw the stored exception future _Local{_STD move(*this)}; return _STD move(_Local._Get_value()); } // std::future _Ty& get() { // block until ready then return the stored result or throw the stored exception future _Local{_STD move(*this)}; return *_Local._Get_value(); }\",\"如上所示,我们展示了 std::future 的所有特化中 get 成员函数的实现。注意到了吗?尽管我们可能不了解移动构造函数的具体实现,但根据通用的语义,可以看出 future _Local{_STD move(*this)}; 将当前对象的共享状态转移给了这个局部对象,而局部对象在函数结束时析构。这意味着当前对象失去共享状态,并且状态被完全销毁。\",\"另外一提,std::future 这个特化,它 return std::move 是为了支持只能移动的类型能够使用 get 返回值,参见前文的 move_only 类型。\",\"如果需要进行多次 get 调用,可以考虑使用下文提到的 std::shared_future。\"]},\"57\":{\"h\":\"多个线程的等待\",\"t\":[\"之前的例子中我们一直使用 std::future,但 std::future 有一个局限:future 是一次性的,它的结果只能被一个线程获取。get() 成员函数只能调用一次,当结果被某个线程获取后,std::future 就无法再用于其他线程。\",\"int task(){ // todo.. return 10; } void thread_functio(std::future& fut){ // todo.. int result = fut.get(); std::cout << result << '\\\\n'; // todo.. } int main(){ auto future = std::async(task); // 启动耗时的异步任务 // 可能有多个线程都需要此任务的返回值,于是我们将与其关联的 future 对象的引入传入 std::thread t{ thread_functio,std::ref(future) }; std::thread t2{ thread_functio,std::ref(future) }; t.join(); t2.join(); }\",\"可能有多个线程都需要耗时的异步任务的返回值,于是我们将与其关联的 future 对象的引入传给线程对象,让它能在需要的时候获取。\",\"但是这存在个问题,future 是一次性的,只能被调用一次 get() 成员函数,所以以上代码存在问题。\",\"此时就需要使用 std::shared_future 来替代 std::future 了。std::future 与 std::shared_future 的区别就如同 std::unique_ptr、std::shared_ptr 一样。\",\"std::future 是只能移动的,其所有权可以在不同的对象中互相传递,但只有一个对象可以获得特定的同步结果。而 std::shared_future 是可复制的,多个对象可以指代同一个共享状态。\",\"在多个线程中对同一个 std::shared_future 对象进行操作时(如果没有进行同步保护)存在条件竞争。而从多个线程访问同一共享状态,若每个线程都是通过其自身的 shared_future 对象副本进行访问,则是安全的。\",\"std::string fetch_data() { std::this_thread::sleep_for(std::chrono::seconds(1)); // 模拟耗时操作 return \\\"从网络获取的数据!\\\"; } int main() { std::future future_data = std::async(std::launch::async, fetch_data); // // 转移共享状态,原来的 future 被清空 valid() == false std::shared_future shared_future_data = future_data.share(); // 第一个线程等待结果并访问数据 std::thread thread1([&shared_future_data] { std::cout << \\\"线程1:等待数据中...\\\" << std::endl; shared_future_data.wait(); std::cout << \\\"线程1:收到数据:\\\" << shared_future_data.get() << std::endl; }); // 第二个线程等待结果并访问数据 std::thread thread2([&shared_future_data] { std::cout << \\\"线程2:等待数据中...\\\" << std::endl; shared_future_data.wait(); std::cout << \\\"线程2:收到数据:\\\" << shared_future_data.get() << std::endl; }); thread1.join(); thread2.join(); }\",\"这段代码存在数据竞争,就如同我们先前所说:“在多个线程中对同一个 std::shared_future 对象进行操作时(如果没有进行同步保护)存在条件竞争”,它并没有提供线程安全的方式。而我们的 lambda 是按引用传递,也就是“同一个”进行操作了。可以改为:\",\"std::string fetch_data() { std::this_thread::sleep_for(std::chrono::seconds(1)); // 模拟耗时操作 return \\\"从网络获取的数据!\\\"; } int main() { std::future future_data = std::async(std::launch::async, fetch_data); std::shared_future shared_future_data = future_data.share(); std::thread thread1([shared_future_data] { std::cout << \\\"线程1:等待数据中...\\\" << std::endl; shared_future_data.wait(); std::cout << \\\"线程1:收到数据:\\\" << shared_future_data.get() << std::endl; }); std::thread thread2([shared_future_data] { std::cout << \\\"线程2:等待数据中...\\\" << std::endl; shared_future_data.wait(); std::cout << \\\"线程2:收到数据:\\\" << shared_future_data.get() << std::endl; }); thread1.join(); thread2.join(); }\",\"这样访问的就都是 std::shared_future 的副本了,我们的 lambda 按复制捕获 std::shared_future 对象,每个线程都有一个 shared_future 的副本,这样不会有任何问题。这一点和 std::shared_ptr 类似[2]。\",\"std::promise 也同,它的 get_future() 成员函数一样可以用来构造 std::shared_future,虽然它的返回类型是 std::future,不过不影响,这是因为 std::shared_future 有一个 std::future&& 参数的构造函数,转移 std::future 的所有权。\",\"std::promise p; std::shared_future sf{ p.get_future() }; // 隐式转移所有权\",\"就不需要再强调了。\"]},\"58\":{\"h\":\"限时等待\",\"t\":[\"阻塞调用会将线程挂起一段(不确定的)时间,直到对应的事件发生。通常情况下,这样的方式很好,但是在一些情况下,需要限定线程等待的时间,因为无限期地等待事件发生可能会导致性能下降或资源浪费。一个常见的例子是在很多网络库中的 connect 函数,这个函数调用是阻塞的,但是也是限时的,一定时间内没有连接到服务器就不会继续阻塞了,会进行其它处理,比如抛出异常。\",\"介绍两种指定超时的方式,一种是“时间段”,另一种是“时间点”,其实就是先前讲的 std::this::thread::sleep_for 与 std::this_thread::sleep_until 的区别。前者是需要指定等待一段时间(比如 10 毫秒)。而后者是指定等待到一个具体的时间点(比如到 2024-05-07T12:01:10.123)。多数函数都对两种超时方式进行处理。处理持续时间的函数以 _for 作为后缀,处理绝对时间的函数以 _until 作为后缀。\",\"条件变量 std::condition_variable 的等待函数,也有两个超时的版本 wait_for 和 wait_until 。它们和我们先前讲的 wait 成员函数一样有两个重载,可以选择是否传递一个谓词。它们相比于 wait 多了一个解除阻塞的可能,即:超过指定的时长或抵达指定的时间点。\",\"在讲述它的使用细节之前,我们还是要来先聊一下 C++ 中的时间库(chrono),指定时间的方式,它较为麻烦。我们分:时钟(clock)、时间段(duration)、*时间点(time point)*三个阶段稍微介绍一下。\"]},\"59\":{\"h\":\"时钟\",\"t\":[\"在 C++ 标准库中,时钟被视为时间信息的来源。C++ 定义了很多种时间类型,每种时钟类型都提供了四种不同的信息:\",\"当前时间\",\"时间类型\",\"时钟节拍\",\"稳定时钟\",\"当前时间可以通过静态成员函数 now 获取,例如,std::chrono::system_clock::now() 会返回系统的当前时间。特定的时间点则可以通过 time_point 来指定。system_clock::now() 的返回类型就是 time_point。\",\"时钟节拍被指定为 1/x(x 在不同硬件上有不同的值)秒,这是由时间周期所决定。假设一个时钟一秒有 25 个节拍,因此一个周期为 std::ratio<1,25> 。当一个时钟的时钟节拍每 2.5 秒一次,周期就可以表示为 std::ratio<5,2>。\",\"类模板 std::chrono::duration 表示时间间隔。\",\"template> class duration;\",\"std::ratio 是一个分数类模板,它有两个非类型模板参数,也就是分子与分母,分母有默认实参 1,所以 std::ratio<1> 等价于 std::ratio<1,1>。\",\"如你所见,它默认的时钟节拍是 1,这是一个很重要的类,标准库通过它定义了很多的时间类型,比如 std::chrono::minutes 是分钟类型,那么它的 Period 就是 std::ratio<60> ,因为一分钟等于 60 秒。\",\"using minutes = duration>;\",\"稳定时钟(Steady Clock)是指提供稳定、持续递增的时间流逝信息的时钟。它的特点是不受系统时间调整或变化的影响,即使在系统休眠或时钟调整的情况下,它也能保持稳定。在 C++ 标准库中,std::chrono::steady_clock 就是一个稳定时钟。它通常用于测量时间间隔和性能计时等需要高精度和稳定性的场景。可以通过 is_steady 静态常量判断当前时钟是否是稳定时钟。\",\"稳定时钟的主要优点在于,它可以提供相对于起始时间的稳定的递增时间,因此适用于需要保持时间顺序和不受系统时间变化影响的应用场景。相比之下,像 std::chrono::system_clock 这样的系统时钟可能会受到系统时间调整或变化的影响,因此在某些情况下可能不适合对时间间隔进行精确测量。\",\"不管使用哪种时钟获取时间,C++ 都提供了函数,可以将时间点转换为 time_t 类型的值:\",\"auto now = std::chrono::system_clock::now(); time_t now_time = std::chrono::system_clock::to_time_t(now); std::cout << \\\"Current time:\\\\t\\\" << std::put_time(std::localtime(&now_time), \\\"%H:%M:%S\\\\n\\\"); auto now2 = std::chrono::steady_clock::now(); now_time = std::chrono::system_clock::to_time_t(now); std::cout << \\\"Current time:\\\\t\\\" << std::put_time(std::localtime(&now_time), \\\"%H:%M:%S\\\\n\\\");\",\"C++ 的时间库极其繁杂,主要在于类型之多,以及实现之复杂。根据我们的描述,了解基本构成、概念、使用,即可。\"]},\"60\":{\"h\":\"时间段\",\"t\":[\"时间部分最简单的就是时间段,主要的内容就是我们上面讲的类模板 std::chrono::duration ,它用于对时间段进行处理。\",\"它的第一个参数是类型表示,第二个参数就是先前提到的“节拍”,需要传递一个 std::ratio 类型,也就是一个时钟所用的秒数。\",\"标准库在 std::chrono 命名空间内为时间段提供了一系列的类型,它们都是通过 std::chrono::duration 定义的别名:\",\"using nanoseconds = duration; using microseconds = duration; using milliseconds = duration; using seconds = duration; using minutes = duration>; using hours = duration>; // CXX20 using days = duration, hours::period>>; using weeks = duration, days::period>>; using years = duration, days::period>>; using months = duration>>;\",\"如果没有指明 duration 的第二个非类型模板参数,那么代表默认 std::ratio<1>,比如 seconds 也就是一秒。\",\"如上,是 MSVC STL 定义的,看似有一些没有使用 ratio 作为第二个参数,其实也还是别名罢了,见:\",\"using milli = ratio<1, 1000>; // 千分之一秒,也就是一毫秒了\",\"并且为了方便使用,在 C++14 标准库增加了时间字面量,存在于 std::chrono_literals 命名空间中,让我们得以简单的使用:\",\"using namespace std::chrono_literals; auto one_nanosecond = 1ns; auto one_microsecond = 1us; auto one_millisecond = 1ms; auto one_second = 1s; auto one_minute = 1min; auto one_hour = 1h;\",\"当不要求截断值的情况下(时转换为秒时没问题的,但反过来不行)时间段有隐式转换,显式转换可以由 std::chrono::duration_cast<> 来完成。\",\"std::chrono::milliseconds ms{ 3999 }; std::chrono::seconds s = std::chrono::duration_cast(ms); std::cout << s.count() << '\\\\n';\",\"这里的结果是截断的,而不会进行所谓的四舍五入,3999 毫秒,也就是 3.999 秒最终的值是 3。\",\"很多时候这并不是我们想要的,比如我们想要的其实是输出 3.999 秒,而不是 3 秒 或者 3999 毫秒。\",\"seconds 是 duration 这意味着它无法接受浮点数,我们直接改成 duration 即可:\",\"std::chrono::duration s = std::chrono::duration_cast>(ms);\",\"当然了,这样写很冗余,并且这种形式的转换是可以直接隐式的,也就是其实我们可以直接:\",\"std::chrono::duration s = ms;\",\"无需使用 duration_cast,可以直接隐式转换。\",\"另外我们用的 duration 都是省略了 ratio 的,其实默认类型就是 ratio<1>,代表一秒。参见源码声明:\",\"_EXPORT_STD template > class duration;\",\"时间库支持四则运算,可以对两个时间段进行加减乘除。时间段对象可以通过 count() 成员函数获得计次数。例如 std::chrono::milliseconds{123}.count() 的结果就是 123。\",\"基于时间段的等待都是由 std::chrono::duration<> 来完成。例如:等待一个 future 对象在 35 毫秒内变为就绪状态:\",\"std::future future = std::async([] {return 6; }); if (future.wait_for(35ms) == std::future_status::ready) std::cout << future.get() << '\\\\n';\",\"wait_for: 等待结果,如果在指定的超时间隔后仍然无法得到结果,则返回。它的返回类型是一个枚举类 std::future_status ,三个枚举项分别表示三种 future 状态。\",\"deferred\",\"共享状态持有的函数正在延迟运行,结果将仅在明确请求时计算\",\"ready\",\"共享状态就绪\",\"timeout\",\"共享状态在经过指定的等待时间内仍未就绪\",\"timeout 超时,也很好理解,那我们就提一下 deferred :\",\"auto future = std::async(std::launch::deferred, []{}); if (future.wait_for(35ms) == std::future_status::deferred) std::cout << \\\"future_status::deferred \\\" << \\\"正在延迟执行\\\\n\\\"; future.wait(); // 在 wait() 或 get() 调用时执行,不创建线程\"]},\"61\":{\"h\":\"时间点\",\"t\":[\"时间点可用 std::chrono::time_point<> 来表示,第一个模板参数用来指定使用的时钟,第二个模板参数用来表示时间单位(std::chrono::duration<>)。时间点顾名思义就是时间中的一个点,在 C++ 中用于表达当前时间,先前提到的静态成员函数 now() 获取当前时间,它们的返回类型都是 std::chrono::time_point。\",\"template< class Clock, class Duration = typename Clock::duration > class time_point;\",\"如你所见,它的第二个模板参数是时间段,就是时间的间隔,其实也就可以理解为表示时间点的精度,默认是根据第一个参数时钟得到的,所以假设有类型:\",\"std::chrono::time_point\",\"那它等价于:\",\"std::chrono::time_point\",\"也就是说第二个参数的实际类型是:\",\"std::chrono::duration> // // 100 nanoseconds\",\"也就是说 std::chrono::time_point 的精度是 100 纳秒。\",\"更多的问题参见源码都很直观。\",\"注意,这里的精度并非是实际的时间精度。时间和硬件系统等关系极大,以 windows 为例:\",\"Windows 内核中的时间间隔计时器默认每隔 15.6 毫秒触发一次中断。因此,如果你使用基于系统时钟的计时方法,默认情况下精度约为 15.6 毫秒。不可能达到纳秒级别。\",\"由于这个系统时钟的限制,那些基于系统时钟的 API(例如 Sleep()、WaitForSingleObject() 等)的最小睡眠时间默认就是 15.6 毫秒左右。\",\"如:\",\"std::this_thread::sleep_for(std::chrono::milliseconds(1));\",\"不过我们也可以使用系统 API 调整系统时钟的精度,需要链接 windows 多媒体库 winmm.lib ,然后使用 API:\",\"timeBeginPeriod(1); // 设置时钟精度为 1 毫秒 // todo.. timeEndPeriod(1); // 恢复默认精度\",\"同样的,时间点也支持加减以及比较操作。\",\"std::chrono::steady_clock::now() + std::chrono::nanoseconds(500); // 500 纳秒之后的时间\",\"可以减去一个时间点,结果是两个时间点的时间差。这对于代码块的计时是很有用的,如:\",\"auto start = std::chrono::steady_clock::now(); std::this_thread::sleep_for(std::chrono::seconds(1)); auto end = std::chrono::steady_clock::now(); auto result = std::chrono::duration_cast(end - start); std::cout << result.count() << '\\\\n';\",\"运行测试。\",\"我们进行了一个显式的转换,最终输出的是以毫秒作为单位,有可能不会是 1000,没有这么精确。\",\"等待条件变量满足条件——带超时功能\",\"using namespace std::chrono_literals; std::condition_variable cv; bool done{}; std::mutex m; bool wait_loop() { const auto timeout = std::chrono::steady_clock::now() + 500ms; std::unique_lock lk{ m }; while (!done) { if (cv.wait_until(lk, timeout) == std::cv_status::timeout) { std::cout << \\\"超时 500ms\\\\n\\\"; return false; } } return true; }\",\"运行测试。\",\"_until 也就是等待到一个时间点,我们设置的是等待到当前时间往后 500 毫秒。如果超过了这个时间还没有被唤醒,那就打印超时,并退出循环,函数返回 false。\",\"到此,时间点的知识也就足够了。\"]},\"62\":{\"h\":\"异步任务执行\",\"t\":[\"在开发带有 UI 的程序时,主线程用于处理 UI 更新和用户交互,如果在主线程中执行耗时任务会导致界面卡顿。因此,需要使用异步任务来减轻主线程的压力。以下是一个使用 Qt 实现异步任务的示例,展示了如何在不阻塞 UI 线程的情况下执行耗时任务,并更新进度条。\"]},\"63\":{\"h\":\"背景介绍\",\"t\":[\"在 Qt 中,GUI 控件通常只能在创建它们的线程中进行操作,因为它们是线程不安全的。我们可以使用 QMetaObject::invokeMethod 来跨线程调用主线程上的控件方法,从而在其他线程中安全地更新 UI 控件。以下代码示例展示了如何通过 QMetaObject::invokeMethod 确保 UI 控件的更新操作在主线程中执行。\",\"void task(){ future = std::async(std::launch::async, [=] { QMetaObject::invokeMethod(this, [this] { button->setEnabled(false); progressBar->setRange(0, 1000); button->setText(\\\"正在执行...\\\"); }); for (int i = 0; i < 1000; ++i) { std::this_thread::sleep_for(10ms); QMetaObject::invokeMethod(this, [this, i] { progressBar->setValue(i); }); } QMetaObject::invokeMethod(this, [this] { button->setText(\\\"start\\\"); button->setEnabled(true); }); }); }\",\"上面的代码创建了一个异步任务,并指明了执行策略。任务在线程中执行,不会阻塞 UI 线程。如果不这样做,界面将会卡顿(可以尝试将函数的第一行与最后一行注释掉以验证这一点)。\",\"进度条\",\"在启动进度条后,能够正常点击“测试”按钮并触发弹窗,说明 UI 没有被阻塞。相反,如果不使用线程,界面将会卡住,无法点击“测试”按钮或移动窗口。\"]},\"64\":{\"h\":\"项目说明\",\"t\":[\"项目使用 Visual Studio + CMake,可以直接安装 Qt 插件后打开此项目。项目结构简单,所有界面与设置均通过代码控制,无需进行其他 UI 操作。只需关注 async_progress_bar.h、async_progress_bar.cpp 和 main.cpp 这三个文件,它们位于仓库的 code 文件夹中。\"]},\"65\":{\"h\":\"完整代码实现\",\"t\":[\"class async_progress_bar : public QMainWindow{ Q_OBJECT public: async_progress_bar(QWidget *parent = nullptr); ~async_progress_bar(); void task(){ future = std::async(std::launch::async, [=] { QMetaObject::invokeMethod(this, [this] { // 这里显示的线程 ID 就是主线程,代表这些任务就是在主线程,即 UI 线程执行 QMessageBox::information(nullptr, \\\"线程ID\\\", std::to_string(_Thrd_id()).c_str()); button->setEnabled(false); progress_bar->setRange(0, 1000); button->setText(\\\"正在执行...\\\"); }); for (int i = 0; i <= 1000; ++i) { std::this_thread::sleep_for(10ms); QMetaObject::invokeMethod(this, [this, i] { progress_bar->setValue(i); }); } QMetaObject::invokeMethod(this, [this] { button->setText(\\\"start\\\"); button->setEnabled(true); }); // 不在 invokeMethod 中获取线程 ID,这里显示的是子线程的ID auto s = std::to_string(_Thrd_id()); QMetaObject::invokeMethod(this, [=] { QMessageBox::information(nullptr, \\\"线程ID\\\", s.c_str()); }); }); } private: QString progress_bar_style = \\\"QProgressBar {\\\" \\\" border: 2px solid grey;\\\" \\\" border-radius: 5px;\\\" \\\" background-color: lightgrey;\\\" \\\" text-align: center;\\\" // 文本居中 \\\" color: #000000;\\\" // 文本颜色 \\\"}\\\" \\\"QProgressBar::chunk {\\\" \\\" background-color: #7FFF00;\\\" \\\" width: 10px;\\\" // 设置每个进度块的宽度 \\\" font: bold 14px;\\\" // 设置进度条文本字体 \\\"}\\\"; QString button_style = \\\"QPushButton {\\\" \\\" text-align: center;\\\" // 文本居中 \\\"}\\\"; QProgressBar* progress_bar{}; QPushButton* button{}; QPushButton* button2{}; Ui::async_progress_barClass ui{}; std::futurefuture; }; // 创建控件 设置布局、样式 连接信号 async_progress_bar::async_progress_bar(QWidget *parent) : QMainWindow{ parent }, progress_bar{ new QProgressBar(this) }, button{ new QPushButton(\\\"start\\\",this) },button2{ new QPushButton(\\\"测试\\\",this) } { ui.setupUi(this); progress_bar->setStyleSheet(progress_bar_style); progress_bar->setRange(0, 1000); button->setMinimumSize(100, 50); button->setMaximumWidth(100); button->setStyleSheet(button_style); button->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); button2->setMinimumSize(100, 50); button2->setMaximumWidth(100); button2->setStyleSheet(button_style); button2->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); QVBoxLayout* layout = new QVBoxLayout; layout->addWidget(progress_bar); layout->addWidget(button, 0, Qt::AlignHCenter); layout->addWidget(button2, 0, Qt::AlignHCenter); // 设置窗口布局为垂直布局管理器 centralWidget()->setLayout(layout); connect(button, &QPushButton::clicked, this, &async_progress_bar::task); connect(button2, &QPushButton::clicked, []{ QMessageBox::information(nullptr, \\\"测试\\\", \\\"没有卡界面!\\\"); }); }\"]},\"66\":{\"h\":\"注意事项\",\"t\":[\"QMetaObject::invokeMethod 的 lambda 是在主线程运行的,通过显示的线程 ID 可以验证这一点。\",\"使用 std::async 的 std::launch::async 参数强制异步执行任务,以确保任务在新线程中运行。\"]},\"67\":{\"h\":\"跨平台兼容性\",\"t\":[\"C++11 的 std::this_thread::get_id() 返回的内部类 std::thread::id 没办法直接转换为 unsigned int,我们就直接使用了 win32 的 API _Thrd_id() 了。如果您是 Linux 之类的环境,使用 POSIX 接口 pthread_self()。\"]},\"68\":{\"h\":\"实践建议\",\"t\":[\"这个例子其实很好的展示了多线程异步的作用,因为有 UI,所以很直观,毕竟如果你不用线程,那么不就卡界面了,用了就没事。\",\"建议下载并运行此项目,通过实际操作理解代码效果。同时,可以尝试修改代码,观察不同情况下 UI 的响应情况,以加深对异步任务处理的理解。\"]},\"69\":{\"h\":\"C++20 信号量\",\"t\":[\"C++20 引入了信号量,对于那些熟悉操作系统或其它并发支持库的开发者来说,这个同步设施的概念应该不会感到陌生。信号量源自操作系统,是一个古老而广泛应用的同步设施,在各种编程语言中都有自己的抽象实现。然而,C++ 标准库对其的支持却来得很晚,在 C++20 中才得以引入。\",\"信号量是一个非常轻量简单的同步设施,它维护一个计数,这个计数不能小于 0。信号量提供两种基本操作:释放(增加计数)和等待(减少计数)。如果当前信号量的计数值为 0,那么执行“等待”操作的线程将会一直阻塞,直到计数大于 0,也就是其它线程执行了“释放”操作。\",\"C++ 提供了两个信号量类型:std::counting_semaphore 与 std::binary_semaphore,定义在 中。\",\"binary_semaphore[3] 只是 counting_semaphore 的一个特化别名:\",\"using binary_semaphore = counting_semaphore<1>;\",\"好了,我们举一个简单的例子来使用一下:\",\"// 全局二元信号量对象 // 设置对象初始计数为 0 std::binary_semaphore smph_signal_main_to_thread{ 0 }; std::binary_semaphore smph_signal_thread_to_main{ 0 }; void thread_proc() { smph_signal_main_to_thread.acquire(); std::cout << \\\"[线程] 获得信号\\\" << std::endl; std::this_thread::sleep_for(3s); std::cout << \\\"[线程] 发送信号\\\\n\\\"; smph_signal_thread_to_main.release(); } int main() { std::jthread thr_worker{ thread_proc }; std::cout << \\\"[主] 发送信号\\\\n\\\"; smph_signal_main_to_thread.release(); smph_signal_thread_to_main.acquire(); std::cout << \\\"[主] 获得信号\\\\n\\\"; }\",\"运行结果:\",\"[主] 发送信号 [线程] 获得信号 [线程] 发送信号 [主] 获得信号\",\"acquire 函数就是我们先前说的“等待”(原子地减少计数),release 函数就是\\\"释放\\\"(原子地增加计数)。\",\"信号量常用于发信/提醒而非互斥,通过初始化该信号量为 0 从而阻塞尝试 acquire() 的接收者,直至提醒者通过调用 release(n) “发信”。在此方面可把信号量当作条件变量的替代品,通常它有更好的性能。\",\"假设我们有一个 Web 服务器,它只能处理有限数量的并发请求。为了防止服务器过载,我们可以使用信号量来限制并发请求的数量。\",\"// 定义一个信号量,最大并发数为 3 std::counting_semaphore<3> semaphore{ 3 }; void handle_request(int request_id) { // 请求到达,尝试获取信号量 std::cout << \\\"进入 handle_request 尝试获取信号量\\\\n\\\"; semaphore.acquire(); std::cout << \\\"成功获取信号量\\\\n\\\"; // 此处延时三秒可以方便测试,会看到先输出 3 个“成功获取信号量”,因为只有三个线程能成功调用 acquire,剩余的会被阻塞 std::this_thread::sleep_for(3s); // 模拟处理时间 std::random_device rd; std::mt19937 gen{ rd() }; std::uniform_int_distribution<> dis(1, 5); int processing_time = dis(gen); std::this_thread::sleep_for(std::chrono::seconds(processing_time)); std::cout << std::format(\\\"请求 {} 已被处理\\\\n\\\", request_id); semaphore.release(); } int main() { // 模拟 10 个并发请求 std::vector threads; for (int i = 0; i < 10; ++i) { threads.emplace_back(handle_request, i); } }\",\"运行测试。\",\"这段代码很简单,以至于我们可以在这里来再说一条概念:\",\"counting_semaphore 是一个轻量同步原语,能控制对共享资源的访问。不同于 std::mutex,counting_semaphore允许同一资源进行多个并发的访问,至少允许 LeastMaxValue 个同时访问者[4]。\",\"binary_semaphore 是 std::counting_semaphore 的特化的别名,其 LeastMaxValue 为 1。\",\"LeastMaxValue 是我们设置的非类型模板参数,意思是信号量维护的计数最大值。我们这段代码设置的是 3,也就是允许 3 个同时访问者。\",\"虽然说是说有 LeastMaxValue 可能不是最大,但是我们通常不用在意这个事情,MSVC STL 的实现中 max 函数就是直接返回 LeastMaxValue,将它视为信号量维护的计数最大值即可。\",\"牢记信号量的基本的概念不变,计数的值不能小于 0,如果当前信号量的计数值为 0,那么执行“等待”(acquire)操作的线程将会一直阻塞。明白这点,那么就都不存在问题。\",\"通过这种方式,可以有效控制 Web 服务器处理并发请求的数量,防止服务器过载。\"]},\"70\":{\"h\":\"C++20 闩与屏障\",\"t\":[\"闩 (latch) 与屏障 (barrier) 是线程协调机制,允许任何数量的线程阻塞直至期待数量的线程到达。闩不能重复使用,而屏障则可以。\",\"std::latch:单次使用的线程屏障\",\"std::barrier:可复用的线程屏障\",\"它们定义在标头 。\",\"与信号量类似,屏障也是一种古老而广泛应用的同步机制。许多系统 API 提供了对屏障机制的支持,例如 POSIX 和 Win32。此外,OpenMP 也提供了屏障机制来支持多线程编程。\"]},\"71\":{\"h\":\"\",\"t\":[\"“闩” ,中文语境一般说“门闩” 是指门背后用来关门的棍子。不过不用在意,在 C++ 中的意思就是先前说的:单次使用的线程屏障。\",\"latch 类维护着一个 std::ptrdiff_t 类型的计数[5],且只能减少计数,无法增加计数。在创建对象的时候初始化计数器的值。线程可以阻塞,直到 latch 对象的计数减少到零。由于无法增加计数,这使得 latch 成为一种单次使用的屏障。\",\"std::latch work_start{ 3 }; void work(){ std::cout << \\\"等待其它线程执行\\\\n\\\"; work_start.wait(); // 等待计数为 0 std::cout << \\\"任务开始执行\\\\n\\\"; } int main(){ std::jthread thread{ work }; std::this_thread::sleep_for(3s); std::cout << \\\"休眠结束\\\\n\\\"; work_start.count_down(); // 默认值是 1 减少计数 1 work_start.count_down(2); // 传递参数 2 减少计数 2 }\",\"运行结果:\",\"等待其它线程执行 休眠结束 任务开始执行\",\"在这个例子中,通过调用 wait 函数阻塞子线程,直到主线程调用 count_down 函数原子地将计数减至 0,从而解除阻塞。这个例子清楚地展示了 latch 的使用,其逻辑比信号量更简单。\",\"由于 latch 的计数不可增加,它的使用通常非常简单,可以用来划分任务执行的工作区间。例如:\",\"std::latch latch{ 10 }; void f(int id) { //todo.. 脑补任务 std::this_thread::sleep_for(1s); std::cout << std::format(\\\"线程 {} 执行完任务,开始等待其它线程执行到此处\\\\n\\\", id); latch.arrive_and_wait(); std::cout << std::format(\\\"线程 {} 彻底退出函数\\\\n\\\", id); } int main() { std::vector threads; for (int i = 0; i < 10; ++i) { threads.emplace_back(f,i); } }\",\"运行测试。\",\"arrive_and_wait 函数等价于:count_down(n); wait();。也就是减少计数 + 等待。这意味着\",\"必须等待所有线程执行到 latch.arrive_and_wait(); 将 latch 的计数减少至 0 才能继续往下执行。这个示例非常直观地展示了如何使用 latch 来划分任务执行的工作区间。\",\"由于 latch 的功能受限,通常用于简单直接的需求,不少情况很多同步设施都能完成你的需求,在这个时候请考虑使用尽可能功能最少的那一个。\",\"使用功能尽可能少的设施有助于开发者阅读代码理解含义。如果使用的是一个功能丰富的设施,可能就无法直接猜测其意图。\"]},\"72\":{\"h\":\"\",\"t\":[\"上节我们学习了 std::latch ,本节内容也不会对你构成难度。\",\"template< class CompletionFunction = /* 未指定 */ > class barrier;\",\"CompletionFunction - 函数对象类型。\",\"std::barrier 和 std::latch 最大的不同是,前者可以在阶段完成之后将计数重置为构造时传递的值,而后者只能减少计数。我们用一个非常简单直观的示例为你展示:\",\"std::barrier barrier{ 10, [n = 1]()mutable noexcept {std::cout << \\\"\\\\t第\\\" << n++ << \\\"轮结束\\\\n\\\"; } }; void f(int start, int end){ for (int i = start; i <= end; ++i) { std::osyncstream{ std::cout } << i << ' '; barrier.arrive_and_wait(); // 减少计数并等待 解除阻塞时就重置计数并调用函数对象 std::this_thread::sleep_for(300ms); } } int main(){ std::vector threads; for (int i = 0; i < 10; ++i) { threads.emplace_back(f, i * 10 + 1, (i + 1) * 10); } }\",\"可能的运行结果:\",\"1 21 11 31 41 51 61 71 81 91 第1轮结束 12 2 22 32 42 52 62 72 92 82 第2轮结束 13 63 73 33 23 53 83 93 43 3 第3轮结束 14 44 24 34 94 74 64 4 84 54 第4轮结束 5 95 15 45 75 25 55 65 35 85 第5轮结束 6 46 16 26 56 96 86 66 76 36 第6轮结束 47 17 57 97 87 67 77 7 27 37 第7轮结束 38 8 28 78 68 88 98 58 18 48 第8轮结束 9 39 29 69 89 99 59 19 79 49 第9轮结束 30 40 70 10 90 50 60 20 80 100 第10轮结束\",\"注意输出的规律,第一轮每个数字最后一位都是 1,第二轮每个数字最后一位都是 2……以此类推,因为我们分配给每个线程的输出任务就是如此,然后利用了屏障一轮一轮地打印。\",\"arrive_and_wait 等价于 wait(arrive());。原子地将期待计数减少 1,然后在当前阶段的同步点阻塞直至运行当前阶段的阶段完成步骤。\",\"arrive_and_wait() 会在期待计数减少至 0 时调用我们构造 barrier 对象时传入的 lambda 表达式,并解除所有在阶段同步点上阻塞的线程。之后重置期待计数为构造中指定的值。屏障的一个阶段就完成了。\",\"并发调用barrier 除了析构函数外的成员函数不会引起数据竞争。\",\"另外你可能注意到我们使用了 std::osyncstream ,它是 C++20 引入的,此处是确保输出流在多线程环境中同步,避免除数据竞争,而且将不以任何方式穿插或截断。\",\"虽然 std::cout 的 operator<< 调用是线程安全的,不会被打断,但多个 operator<< 的调用在多线程环境中可能会交错,导致输出结果混乱,使用 std::osyncstream 就可以解决这个问题。开发者可以尝试去除 std::osyncstream 直接使用 std::cout,效果会非常明显。\",\"使用 arrive 或 arrive_and_wait 减少的都是当前屏障计数,我们称作“期待计数”。不管如何减少计数,当完成一个阶段,就重置期待计数为构造中指定的值了。\",\"标准库还提供一个函数 arrive_and_drop 可以改变重置的计数值:它将所有后继阶段的初始期待计数减少一,当前阶段的期待计数也减少一。\",\"不用感到难以理解,我们来解释一下这个概念:\",\"std::barrier barrier{ 4 }; // 初始化计数为 4 完成阶段重置计数也是 4 barrier.arrive_and_wait(); // 当前计数减 1,不影响之后重置计数 4 barrier.arrive_and_drop(); // 当前计数与重置之后的计数均减 1 完成阶段会重置计数为 3\",\"arrive_and_drop 可以用来控制在需要的时候,让一些线程退出同步,如:\",\"std::atomic_int active_threads{ 4 }; std::barrier barrier{ 4, [n = 1]() mutable noexcept { std::cout << \\\"\\\\t第\\\" << n++ << \\\"轮结束,活跃线程数: \\\" << active_threads << '\\\\n'; } }; void f(int thread_id) { for (int i = 1; i <= 5; ++i) { std::osyncstream{ std::cout } << \\\"线程 \\\" << thread_id << \\\" 输出: \\\" << i << '\\\\n'; if (i == 3 && thread_id == 2) { // 假设线程 ID 为 2 的线程在完成第三轮同步后退出 std::osyncstream{ std::cout } << \\\"线程 \\\" << thread_id << \\\" 完成并退出\\\\n\\\"; --active_threads; // 减少活跃线程数 barrier.arrive_and_drop(); // 减少当前计数 1,并减少重置计数 1 return; } barrier.arrive_and_wait(); // 减少计数并等待,解除阻塞时重置计数并调用函数对象 } } int main() { std::vector threads; for (int i = 1; i <= 4; ++i) { threads.emplace_back(f, i); } }\",\"运行测试。\",\"初始线程有 4 个,线程 2 在执行了三轮同步便直接退出了,调用 arrive_and_drop 函数,下一个阶段的计数会重置为 3,也就是执行完第三轮同步后只有三个活跃线程继续执行。查看输出结果,非常的直观。\",\"这样,arrive_and_drop 的作用就非常明显了,使用也十分的简单。\",\"最后请注意,我们的 lambda 表达式必须声明为 noexcept ,因为 std::barrier 要求其函数对象类型必须是不抛出异常的。即要求 std::is_nothrow_invocable_v<_Completion_function&> 为 true,见 MSVC STL。\",\"std::barrier barrier{ 1,[] {} };\",\"按照标准规定,这行代码会产生一个编译错误。因为传入的函数对象它不是 noexcept 的。不过,在 gcc 与 clang(即 libstdc++ 和 libc++)均可以通过编译,这是因为它们没有进行相应的检测,存在缺陷,为了代码的可维护性开发者应遵守标准规定,确保传入的函数对象是 noexcept 的。\"]},\"73\":{\"h\":\"总结\",\"t\":[\"在并发编程中,同步操作对于并发编程至关重要。如果没有同步,线程基本上就是独立的,因其任务之间的相关性,才可作为一个整体执行(比如第二章的并行求和)。本章讨论了多种用于同步操作的工具,包括条件变量、future、promise、package_task、信号量。同时,详细介绍了 C++ 时间库的知识,以使用并发支持库中的“限时等待”。还使用 CMake + Qt 构建了一个带有 UI 界面的示例,展示异步多线程的必要性。最后介绍了 C++20 引入的两种新的并发设施,信号量、闩与屏障。\",\"在讨论了 C++ 中的高级工具之后,现在让我们来看看底层工具:C++ 内存模型与原子操作。\",\"此设施来自微软并行模式库(PPL),它返回一个 task 类型,它的使用同样可参见文档。不过这不是我们的重点。 ↩︎\",\"注:多个线程能在不同的 shared_ptr 对象上调用所有成员函数(包含复制构造函数与复制赋值)而不附加同步,即使这些实例是同一对象的副本且共享所有权也是如此。若多个执行线程访问同一 shared_ptr 对象而不同步,且任一线程使用 shared_ptr 的非 const 成员函数,则将出现数据竞争;std::atomic 能用于避免数据竞争。文档。 ↩︎\",\"注:如果信号量只有二进制的 0 或 1,称为二进制信号量(binary semaphore),这就是这个类型名字的由来。 ↩︎\",\"注:如其名所示,LeastMaxValue 是最小 的最大值,而非实际 最大值。静态成员函数 max()可能产生大于 LeastMaxValue 的值。 ↩︎\",\"注:通常的实现是直接保有一个 std::atomic 私有数据成员,以保证计数修改的原子性。原子类型在我们第五章的内容会详细展开。 ↩︎\"]},\"74\":{\"h\":\"内存模型与原子操作\",\"t\":[\"内存模型定义了多线程程序中,读写操作如何在不同线程之间可见,以及这些操作在何种顺序下执行。内存模型确保程序的行为在并发环境下是可预测的。\",\"原子操作即不可分割的操作。系统的所有线程,不可能观察到原子操作完成了一半。\",\"最基础的概念就是如此,这里不再过多赘述,后续还会详细展开内存模型的问题。\"]},\"75\":{\"h\":\"原子操作\",\"t\":[\"int a = 0; void f(){ ++a; }\",\"显然,++a 是非原子操作,也就是说在多线程中可能会被另一个线程观察到只完成一半。\",\"线程 A 和线程 B 同时开始修改变量 a 的值。\",\"线程 A 对 a 执行递增操作,但还未完成。\",\"在线程 A 完成递增操作之前,线程 B 也执行了递增操作。\",\"线程 C 读取 a 的值。\",\"线程 C 到底读取到多少不确定,a 的值是多少也不确定。显然,这构成了数据竞争,出现了未定义行为。\",\"在之前的内容中,我们讲述了使用很多同步设施,如互斥量,来保护共享资源。\",\"std::mutex m; void f() { std::lock_guard lc{ m }; ++a; }\",\"通过互斥量的保护,即使 ++a 本身不是原子操作,逻辑上也可视为原子操作。互斥量确保了对共享资源的读写是线程安全的,避免了数据竞争问题。\",\"不过这显然不是我们的重点。我们想要的是一种原子类型,它的所有操作都直接是原子的,不需要额外的同步设施进行保护。C++11 引入了原子类型 std::atomic,在下节我们会详细讲解。\"]},\"76\":{\"h\":\"原子类型\",\"t\":[\"标准原子类型定义在头文件 中。这些类型的操作都是原子的,语言定义中只有这些类型的操作是原子的,虽然也可以用互斥量来模拟原子操作(见上文)。\",\"标准原子类型的实现通常包括一个 is_lock_free() 成员函数,允许用户查询特定原子类型的操作是否是通过直接的原子指令实现(返回 true),还是通过锁来实现(返回 false)。\",\"如果一个线程写入原子对象,同时另一线程从它读取,那么行为有良好定义(数据竞争的细节见内存模型)。\",\"原子操作可以在一些时候代替互斥量,来进行同步操作,也能带来更高的性能。但是如果它的内部使用互斥量实现,那么不可能有性能的提升。\",\"在 C++17 中,所有原子类型都有一个 static constexpr 的数据成员 is_always_lock_free 。如果当前环境上的原子类型 X 是无锁类型,那么 X::is_always_lock_free 将返回 true 。例如:\",\"std::atomic::is_always_lock_free // true 或 false\",\"标准库还提供了一组宏 ATOMIC_xxx_LOCK_FREE ,在编译时对各种整数原子类型是否无锁进行判断。\",\"// (C++11 起) #define ATOMIC_BOOL_LOCK_FREE /* 未指定 */ #define ATOMIC_CHAR_LOCK_FREE /* 未指定 */ #define ATOMIC_CHAR16_T_LOCK_FREE /* 未指定 */ #define ATOMIC_CHAR32_T_LOCK_FREE /* 未指定 */ #define ATOMIC_WCHAR_T_LOCK_FREE /* 未指定 */ #define ATOMIC_SHORT_LOCK_FREE /* 未指定 */ #define ATOMIC_INT_LOCK_FREE /* 未指定 */ #define ATOMIC_LONG_LOCK_FREE /* 未指定 */ #define ATOMIC_LLONG_LOCK_FREE /* 未指定 */ #define ATOMIC_POINTER_LOCK_FREE /* 未指定 */ // (C++20 起) #define ATOMIC_CHAR8_T_LOCK_FREE /* 未指定 */\",\"对于一定有锁的内建原子类型是 0;\",\"对于有时无锁的内建原子类型是 1;\",\"对于一定无锁的内建原子类型是 2。\",\"我们可以使用这些宏来对代码进行编译时的优化和检查,以确保在特定平台上原子操作的性能。例如,如果我们知道某些操作在目标平台上是无锁的,那么我们可以利用这一点进行性能优化。如果这些操作在目标平台上是有锁的,我们可能会选择其它同步机制。\",\"// 检查 std::atomic 是否总是无锁 if constexpr(std::atomic::is_always_lock_free) { std::cout << \\\"当前环境 std::atomic 始终是无锁\\\" << std::endl; } else { std::cout << \\\"当前环境 std::atomic 并不总是无锁\\\" << std::endl; } // 使用 ATOMIC_INT_LOCK_FREE 宏进行编译时检查 #if ATOMIC_INT_LOCK_FREE == 2 std::cout << \\\"int 类型的原子操作一定无锁的。\\\" << std::endl; #elif ATOMIC_INT_LOCK_FREE == 1 std::cout << \\\"int 类型的原子操作有时是无锁的。\\\" << std::endl; #else std::cout << \\\"int 类型的原子操作一定有锁的。\\\" << std::endl; #endif\",\"运行测试。\",\"如你所见,我们写了一个简单的示例,展示了如何使用 C++17 的静态数据成员 is_always_lock_free 和预处理宏来让程序执行不同的代码。\",\"因为 is_always_lock_free 是编译期常量,所以我们可以使用 C++17 引入的 constexpr if ,它可以在编译阶段进行决策,避免了运行时的判断开销,提高了性能。\",\"宏则更是简单了,最基本的预处理器判断,在预处理阶段就选择编译合适的代码。\",\"在实际应用中,如果一个类型的原子操作总是无锁的,我们可以更放心地在性能关键的代码路径中使用它。例如,在高频交易系统、实时系统或者其它需要高并发性能的场景中,无锁的原子操作可以显著减少锁的开销和竞争,提高系统的吞吐量和响应时间。\",\"另一方面,如果发现某些原子类型在目标平台上是有锁的,我们可以考虑以下优化策略:\",\"使用不同的数据结构:有时可以通过改变数据结构来避免对原子操作的依赖。\",\"减少原子操作的频率:通过批处理等技术,减少对原子操作的调用次数。\",\"使用更高效的同步机制:在一些情况下,其它同步机制(如读写锁)可能比原子操作更高效。\",\"当然,其实很多时候根本没这种性能的担忧,我们很多时候使用原子对象只是为了简单方便,比如 std::atomic 表示状态、std::atomic 进行计数等。即使它们是用了锁,那也是封装好了的,起码用着方便,而不需要在代码中引入额外的互斥量来保护,更加简洁。这也是很正常的需求,各位不但要考虑程序的性能,同时也要考虑代码的简洁性、易用性。即使使用原子类型无法带来效率的提升,那也没有负提升。\",\"除了直接使用 std::atomic 模板外,也可以使用原子类型的别名。这个数量非常之多,见 MSVC STL。\",\"对于标准内建类型的别名,就是在原子类型的类型名前面加上 atomic_ 的前缀:atomic_T。不过 signed 缩写 s、unsigned 缩写 u、long long 缩写 llong。\",\"using atomic_char = atomic; using atomic_schar = atomic; using atomic_uchar = atomic; using atomic_short = atomic; using atomic_ushort = atomic; using atomic_int = atomic; using atomic_uint = atomic; using atomic_long = atomic; using atomic_ulong = atomic; using atomic_llong = atomic; using atomic_ullong = atomic;\",\"通常 std::atomic 对象不可进行复制、移动、赋值,因为它们的复制构造与复制赋值运算符被定义为弃置的。不过可以隐式转换成对应的内置类型,因为它有转换函数。\",\"atomic(const atomic&) = delete; atomic& operator=(const atomic&) = delete; operator T() const noexcept;\",\"可以使用 load()、store()、exchange()、compare_exchange_weak() 和 compare_exchange_strong() 等成员函数对 std::atomic 进行操作。如果是整数类型的特化,还支持 ++、--、+=、-=、&=、|=、^= 、fetch_add、fetch_sub 等操作方式。在后面详细的展开使用。\",\"std::atomic 类模板不仅只能使用标准库为我们定义的特化类型,我们也完全可以自定义类型创建对应的原子对象。不过因为是通用模板,操作仅限 load()、store()、exchange()、compare_exchange_weak() 、 compare_exchange_strong(),以及一个转换函数。\",\"模板 std::atomic 可用任何满足可复制构造 (CopyConstructible)及可复制赋值 (CopyAssignable)的可平凡复制 (TriviallyCopyable)类型 T 实例化。\",\"struct trivial_type { int x{}; float y{}; trivial_type() {} trivial_type(int a, float b) : x{ a }, y{ b } {} trivial_type(const trivial_type& other) = default; trivial_type& operator=(const trivial_type& other) = default; ~trivial_type() = default; };\",\"验证自己的类型是否满足 std::atomic 要求,我们可以使用静态断言:\",\"static_assert(std::is_trivially_copyable::value, \\\"\\\"); static_assert(std::is_copy_constructible::value, \\\"\\\"); static_assert(std::is_move_constructible::value, \\\"\\\"); static_assert(std::is_copy_assignable::value, \\\"\\\"); static_assert(std::is_move_assignable::value, \\\"\\\");\",\"程序能通过编译即代表满足要求。如果不满足要求,静态断言求值中第一个表达式求值为 false,则编译错误。显然我们的类型满足要求,我们可以尝试使用一下它:\",\"// 创建一个 std::atomic 对象 std::atomic atomic_my_type { trivial_type{ 10, 20.5f } }; // 使用 store 和 load 操作来设置和获取值 trivial_type new_value{ 30, 40.5f }; atomic_my_type.store(new_value); trivial_type loadedValue = atomic_my_type.load(); std::cout << \\\"x: \\\" << loadedValue.x << \\\", y: \\\" << loadedValue.y << std::endl; // 使用 exchange 操作 trivial_type exchanged_value = atomic_my_type.exchange(trivial_type{ 50, 60.5f }); std::cout << \\\"交换前的 x: \\\" << exchanged_value.x << \\\", 交换前的 y: \\\" << exchanged_value.y << std::endl; std::cout << \\\"交换后的 x: \\\" << atomic_my_type.load().x << \\\", 交换后的 y: \\\" << atomic_my_type.load().y << std::endl;\",\"运行测试。\",\"没有问题,不过其实我们的 trivial_type 直接改成:\",\"struct trivial_type { int x; float y; };\",\"运行测试。\",\"也是完全可以的,满足要求。先前只是为了展示一下显式写明的情况。\",\"原子类型的每个操作函数,都有一个内存序参数,这个参数可以用来指定执行顺序,在后面的内容会详细讲述,现在只需要知道操作分为三类:\",\"Store 操作(存储操作):可选的内存序包括 memory_order_relaxed、memory_order_release、memory_order_seq_cst。\",\"Load 操作(加载操作):可选的内存序包括 memory_order_relaxed、memory_order_consume、memory_order_acquire、memory_order_seq_cst。\",\"Read-modify-write(读-改-写)操作:可选的内存序包括 memory_order_relaxed、memory_order_consume、memory_order_acquire、memory_order_release、memory_order_acq_rel、memory_order_seq_cst。\",\"本节主要广泛介绍 std::atomic,而未展开具体使用。在后续章节中,我们将更详细地讨论一些版本,如 std::atomic,并介绍其成员函数和使用方法。\",\"最后强调一下:任何 std::atomic 类型,初始化不是原子操作。\"]},\"77\":{\"h\":\"\",\"t\":[\"std::atomic_flag 是最简单的原子类型,这个类型的对象可以在两个状态间切换:设置(true)和清除(false)。它很简单,通常只是用作构建一些库设施,不会单独使用或直接面向普通开发者。\",\"在 C++20 之前,std::atomic_flag 类型的对象需要以 ATOMIC_FLAG_INIT 初始化,可以确保此时对象处于 \\\"清除\\\"(false)状态。\",\"std::atomic_flag f = ATOMIC_FLAG_INIT;\",\"在 C++20 中 std::atomic_flag 的默认构造函数保证对象为“清除”(false)状态,就不再需要使用 ATOMIC_FLAG_INIT。\",\"ATOMIC_FLAG_INIT 其实并不是什么复杂的东西,它在不同的标准库实现中只是简单的初始化:在 MSVC STL 它只是一个 {},在 libstdc++ 与 libc++ 它只是一个 { 0 }。也就是说我们可以这样初始化:\",\"std::atomic_flag f ATOMIC_FLAG_INIT; std::atomic_flag f2 = {}; std::atomic_flag f3{}; std::atomic_flag f4{ 0 };\",\"使用 ATOMIC_FLAG_INIT 宏只是为了统一,我们知道即可。\",\"当标志对象已初始化,它只能做三件事情:销毁、清除、设置。这些操作对应的函数分别是:\",\"clear() (清除):将标志对象的状态原子地更改为清除(false)\",\"test_and_set(测试并设置):将标志对象的状态原子地更改为设置(true),并返回它先前保有的值。\",\"销毁:对象的生命周期结束时,自动调用析构函数进行销毁操作。\",\"每个操作都可以指定内存顺序。clear() 是一个“读-改-写”操作,可以应用任何内存顺序。默认的内存顺序是 memory_order_seq_cst。例如:\",\"f.clear(std::memory_order_release); bool r = f.test_and_set();\",\"将 f 的状态原子地更改为清除(false),指明 memory_order_release 内存序。\",\"将 f 的状态原子地更改为设置(true),并返回它先前保有的值给 r。使用默认的 memory_order_seq_cst 内存序。\",\"不用着急,这里还不是详细展开聊内存序的时候。\",\"std::atomic_flag不可复制不可移动不可赋值。这不是 std::atomic_flag 特有的,而是所有原子类型共有的属性。原子类型的所有操作都是原子的,而赋值和复制涉及两个对象,破坏了操作的原子性。复制构造和复制赋值会先读取第一个对象的值,然后再写入另一个对象。对于两个独立的对象,这里实际上有两个独立的操作,合并这两个操作无法保证其原子性。因此,这些操作是不被允许的。\",\"有限的特性使得 std::atomic_flag 非常适合用作制作自旋锁。\",\"自旋锁可以理解为一种忙等锁,因为它在等待锁的过程中不会主动放弃 CPU,而是持续检查锁的状态。\",\"与此相对,std::mutex 互斥量是一种睡眠锁。当线程请求锁(lock())而未能获取时,它会放弃 CPU 时间片,让其他线程得以执行,从而有效利用系统资源。\",\"从性能上看,自旋锁的响应更快,但是睡眠锁更加节省资源,高效。\",\"class spinlock_mutex { std::atomic_flag flag{}; public: spinlock_mutex()noexcept = default; void lock()noexcept { while (flag.test_and_set(std::memory_order_acquire)); } void unlock()noexcept { flag.clear(std::memory_order_release); } };\",\"我们可以简单的使用测试一下,它是有效的:\",\"spinlock_mutex m; void f(){ std::lock_guard lc{ m }; std::cout << \\\"😅😅\\\" << \\\"❤️❤️\\\\n\\\"; }\",\"运行测试。\",\"稍微聊一下原理,我们的 spinlock_mutex 对象中存储的 flag 对象在默认构造时是清除 (false) 状态。在 lock() 函数中调用 test_and_set 函数,它是原子的,只有一个线程能成功调用并将 flag 的状态原子地更改为设置 (true),并返回它先前的值 (false)。此时,该线程成功获取了锁,退出循环。\",\"当 flag 对象的状态为设置 (true) 时,其它线程调用 test_and_set 函数会返回 true,导致它们继续在循环中自旋,无法退出。直到先前持有锁的线程调用 unlock() 函数,将 flag 对象的状态原子地更改为清除 (false) 状态。此时,等待的线程中会有一个线程成功调用 test_and_set 返回 false,然后退出循环,成功获取锁。\",\"值得注意的是,我们只是稍微的讲一下使用 std::atomic_flag 实现自旋锁。不过并不推荐各位在实践中使用它,具体可参见 Linus Torvalds 的文章。其中有一段话说得很直接:\",\"我再说一遍:不要在用户空间中使用自旋锁,除非你真的知道自己在做什么。请注意,你知道自己在做什么的可能性基本上为零。 I repeat: do not use spinlocks in user space, unless you actually know what you're doing. And be aware that the likelihood that you know what you are doing is basically nil.\",\"然后就是推荐使用 std::mutex、pthread_mutex ,比自旋好的多。\",\"std::atomic_flag 的局限性太强,甚至不能当普通的 bool 标志那样使用。一般最好使用 std::atomic,下节,我们来使用它。\"]},\"78\":{\"h\":\"\",\"t\":[\"std::atomic 是最基本的整数原子类型 ,它相较于 std::atomic_flag 提供了更加完善的布尔标志。虽然同样不可复制不可移动,但可以使用非原子的 bool 类型进行构造,初始化为 true 或 false,并且能从非原子的 bool 对象赋值给 std::atomic:\",\"std::atomic b{ true }; b = false;\",\"不过这个 operator= 不同于通常情况,赋值操作 b = false 返回一个普通的 bool 值。\",\"这个行为不仅仅适用于std::atomic,而是适用于所有std::atomic类型。\",\"如果原子变量的赋值操作返回了一个引用,那么依赖这个结果的代码需要显式地进行加载(load),以确保数据的正确性。例如:\",\"std::atomicb {true}; auto& ref = (b = false); // 假设返回 atomic 引用 bool flag = ref.load(); // 那就必须显式调用 load() 加载\",\"通过返回非原子值进行赋值,可以避免多余的加载(load)过程,得到实际存储的值。\",\"std::atomic b{ true }; bool new_value = (b = false); // new_value 将是 false\",\"使用 store 原子的替换当前对象的值,远好于 std::atomic_flag 的 clear()。test_and_set() 也可以换为更加通用常见的 exchange,它可以原子的使用新的值替换已经存储的值,并返回旧值。\",\"获取 std::atomic 的值有两种方式,调用 load() 函数,或者隐式转换。\",\"store 是一个存储操作、load 是一个加载操作、exchange 是一个“读-改-写”操作:\",\"std::atomic b; bool x = b.load(std::memory_order_acquire); b.store(true); x = b.exchange(false, std::memory_order_acq_rel);\",\"std::atomic 提供多个“读-改-写”的操作,exchange 只是其中之一。它还提供了一种存储方式:当前值与预期一致时,存储新值。\",\"这种操作叫做“比较/交换”,它的形式表现为 compare_exchange_weak() 和 compare_exchang_strong()\",\"compare_exchange_weak:尝试将原子对象的当前值与预期值进行比较[1],如果相等则将其更新为新值并返回 true;否则,将原子对象的值加载进 expected(进行加载操作)并返回 false。此操作可能会由于某些硬件的特性而出现假失败[2],需要在循环中重试。\",\"std::atomic flag{ false }; bool expected = false; while (!flag.compare_exchange_weak(expected, true));\",\"运行测试。\",\"返回 false 即代表出现了假失败,因此需要在循环中重试。。\",\"compare_exchange_strong:类似于 compare_exchange_weak,但不会出现假失败,因此不需要重试。适用于需要确保操作成功的场合。\",\"std::atomic flag{ false }; bool expected = false; void try_set_flag() { // 尝试将 flag 设置为 true,如果当前值为 false if (flag.compare_exchange_strong(expected, true)) { std::cout << \\\"flag 为 false,设为 true。\\\\n\\\"; } else { std::cout << \\\"flag 为 true, expected 设为 true。\\\\n\\\"; } }\",\"运行测试。\",\"假设有两个线程运行 try_set_flag 函数,那么第一个线程调用 compare_exchange_strong 将原子对象 flag 设置为 true。第二个线程调用 compare_exchange_strong,当前原子对象的值为 true,而 expected 为 false,不相等,将原子对象的值设置给 expected。此时 flag 与 expected 均为 true。\",\"与 exchange 的另一个不同是,compare_exchange_weak 和 compare_exchange_strong 允许指定成功和失败情况下的内存序。这意味着你可以根据成功或失败的情况,为原子操作指定不同的内存序。\",\"std::atomic data{ false }; bool expected = false; // 成功时的内存序为 memory_order_release,失败时的内存序为 memory_order_acquire if (data.compare_exchange_weak(expected, true, std::memory_order_release, std::memory_order_acquire)) { // 操作成功 } else { // 操作失败 }\",\"另一个简单的原子类型是特化的原子指针,即:std::atomic,下一节我们来看看它是如何工作的。\"]},\"79\":{\"h\":\"\",\"t\":[\"std::atomic 是一个原子指针类型,T 是指针所指向的对象类型。操作是针对 T 类型的指针进行的。虽然 std::atomic 不能被拷贝和移动,但它可以通过符合类型的指针进行构造和赋值。\",\"std::atomic 拥有以下成员函数:\",\"load():以原子方式读取指针值。\",\"store():以原子方式存储指针值。\",\"exchange():以原子方式交换指针值。\",\"compare_exchange_weak() 和 compare_exchange_strong():以原子方式比较并交换指针值。\",\"这些函数接受并返回的类型都是 T*。此外,std::atomic 还提供了以下操作:\",\"fetch_add:以原子方式增加指针的值。(p.fetch_add(1) 会将指针 p 向前移动一个元素,并返回操作前的指针值)\",\"fetch_sub:以原子方式减少指针的值。返回操作前的指针值。\",\"operator+= 和 operator-=:以原子方式增加或减少指针的值。返回操作前的指针值。\",\"这些操作确保在多线程环境下进行安全的指针操作,避免数据竞争和并发问题。\",\"使用示例如下:\",\"struct Foo {}; Foo array[5]{}; std::atomic p{ array }; // p 加 2,并返回原始值 Foo* x = p.fetch_add(2); assert(x == array); assert(p.load() == &array[2]); // p 减 1,并返回原始值 x = (p -= 1); assert(x == &array[1]); assert(p.load() == &array[1]); // 函数也允许内存序作为给定函数的参数 p.fetch_add(3, std::memory_order_release);\",\"这个特化十分简单,我们无需过多赘述。\"]},\"80\":{\"h\":\"\",\"t\":[\"在前文中,我们多次提到 std::shared_ptr:\",\"第四章中提到:多个线程能在不同的 shared_ptr 对象上调用所有成员函数[3](包含复制构造函数与复制赋值)而不附加同步,即使这些实例是同一对象的副本且共享所有权也是如此。若多个执行线程访问同一 shared_ptr 对象而不同步,且任一线程使用 shared_ptr 的非 const 成员函数,则将出现数据竞争;std::atomic 能用于避免数据竞争。文档。\",\"一个在互联网上非常热门的八股问题是:std::shared_ptr 是不是线程安全?\",\"显然,它并不是完全线程安全的,尽管在多线程环境中有很大的保证,但这还不够。在 C++20 中,原子模板 std::atomic 引入了一个偏特化版本 std::atomic 允许用户原子地操纵 shared_ptr 对象。因为它是 std::atomic 的特化版本,即使我们还没有深入讲述它,也能知道它是原子类型,这意味着它的所有操作都是原子操作。\",\"若多个执行线程不同步地同时访问同一std::shared_ptr 对象,且任何这些访问使用了 shared_ptr 的非 const 成员函数,则将出现数据竞争,除非通过 std::atomic 的实例进行所有访问。\",\"class Data { public: Data(int value = 0) : value_(value) {} int get_value() const { return value_; } void set_value(int new_value) { value_ = new_value; } private: int value_; }; auto data = std::make_shared(); void writer(){ for (int i = 0; i < 10; ++i) { std::shared_ptr new_data = std::make_shared(i); data.swap(new_data); // 调用非 const 成员函数 std::this_thread::sleep_for(100ms); } } void reader(){ for (int i = 0; i < 10; ++i) { if (data) { std::cout << \\\"读取线程值: \\\" << data->get_value() << std::endl; } else { std::cout << \\\"没有读取到数据\\\" << std::endl; } std::this_thread::sleep_for(100ms); } } int main(){ std::thread writer_thread{ writer }; std::thread reader_thread{ reader }; writer_thread.join(); reader_thread.join(); }\",\"运行测试。\",\"以上这段代码是典型的线程不安全,它满足:\",\"多个线程不同步地同时访问同一std::shared_ptr 对象\",\"任一线程使用 shared_ptr 的非 const 成员函数\",\"那么为什么呢?为什么满足这些概念就是线程不安全呢?为了理解这些概念,首先需要了解 shared_ptr 的内部实现:\",\"shared_ptr 的通常实现只保有两个指针\",\"指向底层元素的指针(get()) 所返回的指针)\",\"指向控制块 的指针\",\"控制块是一个动态分配的对象,其中包含:\",\"指向被管理对象的指针或被管理对象本身\",\"删除器(类型擦除)\",\"分配器(类型擦除)\",\"持有被管理对象的 shared_ptr 的数量\",\"涉及被管理对象的 weak_ptr 的数量\",\"控制块是线程安全的,这意味着多个线程可以安全地操作引用计数和访问管理对象,即使这些 shared_ptr 实例是同一对象的副本且共享所有权也是如此。因此,多个线程可以安全地创建、销毁和复制 shared_ptr 对象,因为这些操作仅影响控制块中的引用计数。\",\"然而,shared_ptr 对象实例本身并不是线程安全的。shared_ptr 对象实例包含一个指向控制块的指针和一个指向底层元素的指针。这两个指针的操作在多个线程中并没有同步机制。因此,如果多个线程同时访问同一个 shared_ptr 对象实例并调用非 const 成员函数(如 reset 或 operator=),这些操作会导致对这些指针的并发修改,进而引发数据竞争。\",\"如果不是同一 shared_ptr 对象,每个线程读写的指针也不是同一个,控制块又是线程安全的,那么自然不存在数据竞争,可以安全的调用所有成员函数。\",\"使用 std::atomic 修改:\",\"std::atomic> data = std::make_shared(); void writer() { for (int i = 0; i < 10; ++i) { std::shared_ptr new_data = std::make_shared(i); data.store(new_data); // 原子地替换所保有的值 std::this_thread::sleep_for(10ms); } } void reader() { for (int i = 0; i < 10; ++i) { if (auto sp = data.load()) { std::cout << \\\"读取线程值: \\\" << sp->get_value() << std::endl; } else { std::cout << \\\"没有读取到数据\\\" << std::endl; } std::this_thread::sleep_for(10ms); } }\",\"很显然,这是线程安全的,store 是原子操作,而 sp->get_value() 只是个读取操作。\",\"我知道,你肯定会想着:能不能调用 load() 成员函数原子地返回底层的 std::shared_ptr 再调用 swap 成员函数?\",\"可以,但是没有意义,因为 load() 成员函数返回的是底层 std::shared_ptr 的副本,也就是一个临时对象。对这个临时对象调用 swap 并不会改变 data 本身的值,因此这种操作没有实际意义,尽管这不会引发数据竞争(因为是副本)。\",\"由于我们没有对读写操作进行同步,只是确保了操作的线程安全,所以多次运行时可能会看到一些无序的打印,这是正常的。\",\"不过事实上 std::atomic 的功能相当有限,单看它提供的修改接口(=、store、load、exchang)就能明白。如果要操作其保护的共享指针指向的资源还是得 load() 获取底层共享指针的副本。此时再进行操作时就得考虑 std::shared_ptr 本身在多线程的支持了。\",\"在使用 std::atomic 的时候,我们要注意第三章中关于共享数据的一句话:\",\"切勿将受保护数据的指针或引用传递到互斥量作用域之外,不然保护将形同虚设。\",\"原子类型也有类似的问题,以下是一个例子:\",\"std::atomic> ptr = std::make_shared(10); *ptr.load() = 100;\",\"调用 load() 成员函数,原子地返回底层共享指针的副本std::shared_ptr\",\"解引用,等价 *get(),返回了 int&\",\"直接修改这个引用所指向的资源。\",\"在第一步时,已经脱离了 std::atomic 的保护,第二步就获取了被保护的数据的引用,第三步进行了修改,这导致了数据竞争。当然了,这种做法非常的愚蠢,只是为了表示,所谓的线程安全,也是要靠开发者的正确使用。\",\"正确的用法如下:\",\"std::atomic> ptr = std::make_shared(10); std::atomic_ref ref{ *ptr.load() }; ref = 100; // 原子地赋 100 给被引用的对象\",\"通过使用 std::atomic_ref 我们得以确保在修改共享资源时保持操作的原子性,从而避免了数据竞争。\",\"最后再来稍微聊一聊提供的 wait、notify_one 、notify_all 成员函数。这并非是 std::atomic 专属,C++20 以后任何 atomic 的特化都拥有这些成员函数,使用起来也都十分的简单,我们这里用一个简单的例子为你展示一下:\",\"std::atomic> ptr = std::make_shared(); void wait_for_wake_up(){ std::osyncstream{ std::cout } << \\\"线程 \\\" << std::this_thread::get_id() << \\\" 阻塞,等待更新唤醒\\\\n\\\"; // 等待 ptr 变为其它值 ptr.wait(ptr.load()); std::osyncstream{ std::cout } << \\\"线程 \\\" << std::this_thread::get_id() << \\\" 已被唤醒\\\\n\\\"; } void wake_up(){ std::this_thread::sleep_for(5s); // 更新值并唤醒 ptr.store(std::make_shared(10)); ptr.notify_one(); }\"]},\"81\":{\"h\":\"内存次序\"},\"82\":{\"h\":\"前言\",\"t\":[\"事实上我们在前面就用到了不少的内存次序,只不过一直没详细展开讲解。\",\"在开始学习之前,我们需要强调一些基本的认识:\",\"内存次序是非常底层知识:对于普通开发者来说,了解内存次序并非硬性需求。如果您主要关注业务开发,可以直接跳过本节内容。如果您对内存次序感兴趣,则需要注意其复杂性和难以观察的特性,这将使学习过程具有一定挑战性。\",\"内存次序错误的使用难以察觉:即使通过多次(数以万计)运行也难以发现。这是因为许多内存次序问题是由于极端的、少见的情况下的竞争条件引起的,而这些情况很难被重现。此外,即使程序在某些平台上运行正常,也不能保证它在其他平台上也能表现良好,因为不同的 CPU 和编译器可能对内存操作的顺序有不同的处理(例如 x86 架构内存模型:Total Store Order (TSO),是比较严格的内存模型)。因此,开发者必须依赖自己的知识和经验,以及可能的测试和调试技术,来发现和解决内存次序错误。\",\"错误难以被我们观察到的原因其实可以简单的说:\",\"CPU 与编译器不是神经病,没有好处不会闲的没事给你指令重排。\",\"编译器重排:编译器在编译代码时,为了提高性能,可以按照一定规则重新安排代码的执行顺序。例如,可以将不相关的指令重排,使得 CPU 流水线更加高效地执行指令。编译器优化需要遵守一个“如同规则(as-if rule)”,即不可改变可观察的副作用。\",\"CPU 重排:CPU 在运行程序时,也会对指令进行重排,以提高执行效率,减少等待时间。这种重排通常遵循一些硬件层面的优化规则,如内存访问的优化。\",\"你们可能还有疑问:“单线程能不能指令重排?”\",\"CPU 的指令重排必须遵循一定的规则,以确保程序的可观察副作用不受影响。对于单线程程序,CPU 会保证外部行为的一致性。对于多线程程序,需要开发者使用同步原语来显式地控制内存操作的顺序和可见性,确保多线程环境下的正确性。而标准库中提供的原子对象的原子操作,还可以设置内存次序。\",\"那有没有可能:\",\"“end 重排到 start 前面了!指令重排了!”\",\"这也就是前面说的,把 CPU 与编译器当神经病。各位写代码难道还要考虑下面这段,会不会指令重排导致先输出 end 吗?这显然不现实。\",\"print(\\\"start\\\"); // 1 print(\\\"end\\\"); // 2\",\"不禁止就是有可能,但是我们无需在乎,就算真的 CPU 将 end 重排到 start 前面了,也得在可观测行为发生前回溯了。所以我一直在强调,这些东西,我们无需在意。\",\"好了,到此,基本认识也就足够了,以上的示例更多的是泛指,知道其表达的意思就好,这些还是简单直接且符合直觉的。\"]},\"83\":{\"h\":\"可见\",\"t\":[\"可见 是 C++ 多线程并发编程中的一个重要概念,它描述了一个线程中的数据修改对其他线程的可见程度。具体来说,如果线程 A 对变量 x 进行了修改,那么其他线程 B 是否能够看到线程 A 对 x 的修改,就涉及到可见的问题。\",\"在讨论多线程的内存模型和执行顺序时,虽然经常会提到 CPU 重排、编译器优化、缓存等底层细节,但真正核心的概念是可见,而不是这些底层实现细节。\",\"C++ 标准中的可见:\",\"如果线程 A 对变量 x 进行了修改,而线程 B 能够读取到线程 A 对 x 的修改,那么我们说线程 B 能看到线程 A 对 x 的修改。也就是说,线程 A 的修改对线程 B 是可见的。\",\"C++ 标准通过内存序(memory order)来定义如何确保这种可见,而不必直接关心底层的 CPU 和编译器的具体行为。内存序提供了操作之间的顺序关系,确保即使存在 CPU 重排、编译器优化或缓存问题,线程也能正确地看到其他线程对共享数据的修改。\",\"例如,通过使用合适的内存序(如 memory_order_release 和 memory_order_acquire),可以确保线程 A 的写操作在其他线程 B 中是可见的,从而避免数据竞争问题。\",\"总结:\",\"可见 关注的是线程之间的数据一致性,而不是底层的实现细节。\",\"使用 C++ 的内存序机制可以确保数据修改的可见,而不必过多关注具体的 CPU 和编译器行为。\",\"这种描述方式可以帮助更清楚地理解和描述多线程并发编程中如何通过 C++ 标准的内存模型来确保线程之间的数据一致性,而无需太多关注底层细节。\",\"我知道各位肯定有疑问,我们大多数时候写多线程代码都从来没使用过内存序,一般都是互斥量、条件变量等高级同步设施,这没有可见性的问题吗?\",\"没有,这些设施自动确保数据的可见性。例如: std::mutex 的 unlock() 保证:\",\"此操作同步于任何后继的取得同一互斥体所有权的锁定操作。\",\"也就是 unlock()同步于lock()。\",\"“同步于”:操作 A 的完成会确保操作 B 在其之后的执行中,能够看到操作 A 所做的所有修改。\",\"也就是说:\",\"std::mutex 的 unlock() 操作同步于任何随后的 lock() 操作。这意味着,线程在调用 unlock() 时,对共享数据的修改会对之后调用 lock() 的线程可见。\"]},\"84\":{\"h\":\"\",\"t\":[\"std::memory_order 是一个枚举类型,用来指定原子操作的内存顺序,影响这些操作的行为。\",\"typedef enum memory_order { memory_order_relaxed, memory_order_consume, memory_order_acquire, memory_order_release, memory_order_acq_rel, memory_order_seq_cst } memory_order; // C++20 起则为: enum class memory_order : /* 未指明 */ { relaxed, consume, acquire, release, acq_rel, seq_cst }; inline constexpr memory_order memory_order_relaxed = memory_order::relaxed; inline constexpr memory_order memory_order_consume = memory_order::consume; inline constexpr memory_order memory_order_acquire = memory_order::acquire; inline constexpr memory_order memory_order_release = memory_order::release; inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel; inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;\",\"这 6 个常量,每一个常量都表示不同的内存次序。\",\"大体来说我们可以将它们分为三类。\",\"memory_order_relaxed 宽松定序:不是定序约束,仅对此操作要求原子性。\",\"memory_order_seq_cst 序列一致定序,这是库中所有原子操作的默认行为,也是最严格的内存次序,是绝对安全的。\",\"剩下的就是第三类。\"]},\"85\":{\"h\":\"其它概念\"},\"86\":{\"h\":\"和 的内存模型:强一致性与弱一致性\",\"t\":[\"内存模型是软件与实现之间的一种约定契约。它定义了在多线程或并发环境中,如何对内存操作的顺序和一致性进行规范,以确保程序的正确性和可靠性。\",\"C++ 标准为我们定义了 C++ 标准内存模型,使我们能够无需关心底层硬件环境就编写出跨平台的应用程序。不过,了解底层硬件架构的内存模型对扩展知识面和深入理解编程细节也非常有帮助。\",\"最经典与常见的两种 CPU 指令集架构就是:x86 与 ARM。\",\"x86 架构:是一种复杂指令集计算(CISC)架构,因其强大的性能被广泛应用于桌面电脑、笔记本电脑和服务器中。x86 架构采用的是 TSO(Total Store Order)内存一致性模型,是一种强一致性模型,简化了多线程编程中的内存同步问题(后文中会提到)。\",\"ARM 架构:是一种精简指令集计算(RISC)架构,因其高能效和低功耗特点广泛应用于移动设备、嵌入式系统和物联网设备中。ARM 架构采用的是弱序内存模型(weakly-ordered memory),允许更灵活的内存优化,但这需要程序员使用内存屏障等机制来确保正确性。\",\"这两种架构在设计理念和应用领域上存在显著差异,这也是它们在不同应用场景中表现出色的原因。\",\"如果你从事嵌入式系统或者学术研究等,可能也听说过 RISC-V 架构,它目前在国内的应用也逐渐增多。\",\"RISC-V 是一种开源的精简指令集计算(RISC)架构,旨在提供一种高效、模块化且开放的指令集。与 x86 和 ARM 架构不同,RISC-V 的设计目标是简化指令集,同时保持高度的灵活性和扩展性。它在内存模型方面也有自己独特的特性。\",\"RISC-V 采用的也是弱序内存模型(weakly-ordered memory model),这与 x86 的强一致性模型(TSO)和 ARM 的弱一致性模型有所不同。你可能会有疑问:\",\"ARM 和 RISC-V 都是弱序内存模型,为什么不同?\",\"各位一定要区分,这种强弱其实也只是一种分类而已,不同的指令集架构大多都还是有所不同的,并不会完全一样。例如: x86 的 TSO(Total Store Order)是强一致性模型的一种,但并不是所有强一致性模型都是 TSO。\"]},\"87\":{\"h\":\"宽松定序\"},\"88\":{\"h\":\"释放-获取定序\"},\"89\":{\"h\":\"释放-消费定序\"},\"90\":{\"h\":\"序列一致定序\"},\"91\":{\"h\":\"与 的关系\",\"t\":[\"注: 比较和复制是逐位的(类似 std::memcmp 和 std::memcpy);不使用构造函数、赋值运算符或比较运算符。 ↩︎\",\"注:即使 expected 与原子对象的值相等,表现如同 *this != expected↩︎\",\"不用感到奇怪,之所以多个线程通过 shared_ptr 的副本可以调用一切成员函数,甚至包括非 const 的成员函数 operator=、reset,是因为 shared_ptr 的控制块是线程安全的。 ↩︎\"]},\"92\":{\"h\":\"协程\",\"t\":[\"既然是“现代” C++ 并发编程教程,怎么能不聊协程呢?\",\"C++20 引入了协程语法,新增了三个用作协程的关键字:co_await、co_yield、co_return。但并未给出标准协程库,协程库在 C++23 被引入。\",\"希望您拥有 gcc14、clang18,最新的 MSVC。\",\"C++ 20 协程的使用尚不成熟,等待后续更新讲解.....\"]},\"93\":{\"h\":\"阅读须知\",\"t\":[\" 本套教程侧重点在于使用 C++ 并发支持库进行多线程编程。我们假设读者最低水平为:C++11 + STL + template,可能没有接触过 C++ 标准并发库,假设略微了解操作系统基本知识。\",\" 我们强调了模板,因为并发支持库的很多设施其实现是较为简单的,概念与使用,再结合源码讲解会更加简单直观,然而要想阅读学习源码,模板的知识必不可少。不需要模板的水平有多高,也不需要会什么元编程,但是基本的需求得能做到,得会,这里推荐一下:《现代C++模板教程》。\",\" 本教程不保证你学习之后的成果,不过依然可以自信地说:本教程在中文社区的同类型教程中是绝对的第一。事实上只需要一句话就可以表达了——伟大无需多言。\"]},\"94\":{\"h\":\"学习注意事项\",\"t\":[\" 我们的教程中常包含许多外部链接,这并非当前描述不足或者不够严谨,而是为了考虑读者的水平和可能的扩展学习需求。同时,也希望能让读者避免获取二手知识与理解,我们提供的链接基本都是较为专业的文档或官方网站。\",\" 虽然教程名为《现代 C++ 并发编程教程》,但我们也扩展涉及了许多其他知识,包括但不限于:Win32、POSIX API;MSVC STL、libstdc++、libc++ 对标准库的实现;GCC 与 MSVC 的编译器扩展,以及 Clang 对它们的兼容;使用 CMake + Qt 构建带 UI 的程序,展示多线程异步的必要性;不同架构的内存模型(例如 x86 架构内存模型:Total Store Order (TSO),较为严格的内存模型)。\",\" 既然强调了“现代”,那自然是全方面的,具体的读者会在学习中感受到的。\",\" 另外我们的代码都会测试三大编译器 Clang、GCC、MSVC。通常都会是最新的,Clang18、GCC14。我们的教程中常常会提供 Complier Explorer 的运行测试链接以确保正确性,以及方便读者的测试与学习。如果你对此网站的使用不熟悉,可以阅读使用文档。\"]},\"95\":{\"h\":\"代码风格\",\"t\":[\" 我们的代码风格较为简洁明了,命名全部使用下划线连接,而不是驼峰命名法。花括号通常只占一行,简短的代码可以不额外占行。一般初始化时使用 {},而非 () 或者 = 。这样简单直观,避免歧义和许多问题。#include 引入头文件时需要在尖括号或引号前后加空格。\",\"#include struct move_only{ move_only() { std::puts(\\\"默认构造\\\"); } move_only(move_only&&)noexcept { std::puts(\\\"移动构造\\\"); } move_only& operator=(move_only&&) noexcept { std::puts(\\\"移动赋值\\\"); return *this; } move_only(const move_only&) = delete; }; int main(){ move_only m{}; char buffer[1024]{} // 全部初始化为 0 }\",\"如果是标量类型,可能考虑使用复制初始化,而非 {},如:int n = 0;。\"]},\"96\":{\"h\":\"总结\",\"t\":[\" 本教程长期维护,接受 pr 与 issue。\",\" 好了,稍微了解了一下,我们可以开始进入正式的学习内容了。\"]},\"97\":{\"h\":\"\",\"t\":[\" 我们会收集捐赠者进行感谢,所以请您捐赠了可以选择备注,或者联系我,或者直接在捐赠初始记录名单中进行评论。\"]},\"98\":{\"h\":\"std::thread 的构造-源码解析\",\"t\":[\"我们这单章是为了专门解释一下 C++11 引入的 std::thread 是如何构造的,是如何创建线程传递参数的,让你彻底了解这个类。\",\"我们以 MSVC 实现的 std::thread 代码进行讲解,MSVC STL 很早之前就不支持 C++11 了,它的实现完全基于 C++14,出于某些原因 C++17 的一些库(如 invoke, _v 变量模板)被向后移植到了 C++14 模式,所以即使是 C++11 标准库设施,实现中可能也是使用到了 C++14、17 的东西。\"]},\"99\":{\"h\":\"的数据成员\",\"t\":[\"了解一个庞大的类,最简单的方式就是先看它的数据成员有什么。\",\"std::thread 只保有一个私有数据成员 _Thr:\",\"private: _Thrd_t _Thr;\",\"_Thrd_t 是一个结构体,它保有两个数据成员:\",\"using _Thrd_id_t = unsigned int; struct _Thrd_t { // thread identifier for Win32 void* _Hnd; // Win32 HANDLE _Thrd_id_t _Id; };\",\"结构很明确,这个结构体的 _Hnd 成员是指向线程的句柄,_Id 成员就是保有线程的 ID。\",\"在64 位操作系统,因为内存对齐,指针 8 ,无符号 int 4,这个结构体 _Thrd_t 就是占据 16 个字节。也就是说 sizeof(std::thread) 的结果应该为 16。\"]},\"100\":{\"h\":\"的构造函数\",\"t\":[\"std::thread 有四个构造函数,分别是:\",\"默认构造函数,构造不关联线程的新 std::thread 对象。\",\"thread() noexcept : _Thr{} {}\",\"值初始化了数据成员 _Thr ,这里的效果相当于给其成员 _Hnd 和 _Id 都进行零初始化。\",\"移动构造函数,转移线程的所有权,构造 other 关联的执行线程的 std::thread 对象。此调用后 other 不再表示执行线程失去了线程的所有权。\",\"thread(thread&& _Other) noexcept : _Thr(_STD exchange(_Other._Thr, {})) {}\",\"_STD 是一个宏,展开就是 ::std::,也就是 ::std::exchange,将 _Other._Thr 赋为 {} (也就是置空),返回 _Other._Thr 的旧值用以初始化当前对象的数据成员 _Thr。\",\"复制构造函数被定义为弃置的,std::thread 不可复制。两个 std::thread 不可表示一个线程,std::thread 对线程资源是独占所有权。\",\"thread(const thread&) = delete;\",\"构造新的 std::thread 对象并将它与执行线程关联。表示新的执行线程开始执行。\",\"template , thread>, int> = 0> _NODISCARD_CTOR_THREAD explicit thread(_Fn&& _Fx, _Args&&... _Ax) { _Start(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...); }\",\"前三个构造函数都没啥要特别聊的,非常简单,只有第四个构造函数较为复杂,且是我们本章重点,需要详细讲解。(注意 MSVC 使用标准库的内容很多时候不加 std::,脑补一下就行)\",\"如你所见,这个构造函数本身并没有做什么,它只是一个可变参数成员函数模板,增加了一些 SFINAE 进行约束我们传入的可调用对象的类型不能是 std::thread。关于这个约束你可能有问题,因为 std::thread 他并没有 operator() 的重载,不是可调用类型,这个 enable_if_t 的意义是什么呢?其实很简单,如下:\",\"struct X{ X(X&& x)noexcept{} template X(Fn&& f,Args&&...args){} X(const X&) = delete; }; X x{ [] {} }; X x2{ x }; // 选择到了有参构造函数,不导致编译错误\",\"以上这段代码可以正常的通过编译。这是重载决议的事情,我们知道,std::thread 是不可复制的,这种代码自然不应该让它通过编译,选择到我们的有参构造,所以我们添加一个约束让其不能选择到我们的有参构造:\",\"template , X>, int> = 0>\",\"这样,这段代码就会正常的出现编译错误,信息如下:\",\"error C2280: “X::X(const X &)”: 尝试引用已删除的函数 note: 参见“X::X”的声明 note: “X::X(const X &)”: 已隐式删除函数\",\"也就满足了我们的要求,重载决议选择到了弃置复制构造函数产生编译错误,这也就是源码中添加约束的目的。\",\"而构造函数体中调用了一个函数 _Start,将我们构造函数的参数全部完美转发,去调用它,这个函数才是我们的重点,如下:\",\"template void _Start(_Fn&& _Fx, _Args&&... _Ax) { using _Tuple = tuple, decay_t<_Args>...>; auto _Decay_copied = _STD make_unique<_Tuple>(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...); constexpr auto _Invoker_proc = _Get_invoke<_Tuple>(make_index_sequence<1 + sizeof...(_Args)>{}); _Thr._Hnd = reinterpret_cast(_CSTD _beginthreadex(nullptr, 0, _Invoker_proc, _Decay_copied.get(), 0, &_Thr._Id)); if (_Thr._Hnd) { // ownership transferred to the thread (void) _Decay_copied.release(); } else { // failed to start thread _Thr._Id = 0; _Throw_Cpp_error(_RESOURCE_UNAVAILABLE_TRY_AGAIN); } }\",\"它也是一个可变参数成员函数模板,接受一个可调用对象 _Fn 和一系列参数 _Args... ,这些东西用来创建一个线程。\",\"using _Tuple = tuple, decay_t<_Args>...>\",\"定义了一个元组类型 _Tuple ,它包含了可调用对象和参数的类型,这里使用了 decay_t 来去除了类型的引用和 cv 限定。\",\"auto _Decay_copied = _STD make_unique<_Tuple>(_STD forward<_Fn>(_Fx), _STD forward<_Args>(_Ax)...)\",\"使用 make_unique 创建了一个独占指针,指向的是 _Tuple 类型的对象,存储了传入的函数对象和参数的副本。\",\"constexpr auto _Invoker_proc = _Get_invoke<_Tuple>(make_index_sequence<1 + sizeof...(_Args)>{})\",\"调用 _Get_invoke 函数,传入 _Tuple 类型和一个参数序列的索引序列(为了遍历形参包)。这个函数用于获取一个函数指针,指向了一个静态成员函数 _Invoke,它是线程实际执行的函数。这两个函数都非常的简单,我们来看看:\",\" template _NODISCARD static constexpr auto _Get_invoke(index_sequence<_Indices...>) noexcept { return &_Invoke<_Tuple, _Indices...>; } template static unsigned int __stdcall _Invoke(void* _RawVals) noexcept /* terminates */ { // adapt invoke of user's callable object to _beginthreadex's thread procedure const unique_ptr<_Tuple> _FnVals(static_cast<_Tuple*>(_RawVals)); _Tuple& _Tup = *_FnVals.get(); // avoid ADL, handle incomplete types _STD invoke(_STD move(_STD get<_Indices>(_Tup))...); _Cnd_do_broadcast_at_thread_exit(); // TRANSITION, ABI return 0; }\",\"_Get_invoke 函数很简单,就是接受一个元组类型,和形参包的索引,传递给 _Invoke 静态成员函数模板,实例化,获取它的函数指针。\",\"它的形参类型我们不再过多介绍,你只需要知道 index_sequence 这个东西可以用来接收一个由 make_index_sequence 创建的索引形参包,帮助我们进行遍历元组即可。示例代码。\",\"_Invoke 是重中之重,它是线程实际执行的函数,如你所见它的形参类型是 void* ,这是必须的,要符合 _beginthreadex 执行函数的类型要求。虽然是 void*,但是我可以将它转换为 _Tuple* 类型,构造一个独占智能指针,然后调用 get() 成员函数获取底层指针,解引用指针,得到元组的引用初始化_Tup 。\",\"此时,我们就可以进行调用了,使用 std::invoke + std::move(默认移动) ,这里有一个形参包展开,_STD get<_Indices>(_Tup))...,_Tup 就是 std::tuple 的引用,我们使用 std::get<> 获取元组存储的数据,需要传入一个索引,这里就用到了 _Indices。展开之后,就等于 invoke 就接受了我们构造 std::thread 传入的可调用对象,调用可调用对象的参数,invoke 就可以执行了。\",\"_Thr._Hnd = reinterpret_cast(_CSTD _beginthreadex(nullptr, 0, _Invoker_proc, _Decay_copied.get(), 0, &_Thr._Id))\",\"调用 _beginthreadex 函数来启动一个线程,并将线程句柄存储到 _Thr._Hnd 中。传递给线程的参数为 _Invoker_proc(一个静态函数指针,就是我们前面讲的 _Invoke)和 _Decay_copied.get()(存储了函数对象和参数的副本的指针)。\",\"if (_Thr._Hnd) {\",\"如果线程句柄 _Thr._Hnd 不为空,则表示线程已成功启动,将独占指针的所有权转移给线程。\",\"(void) _Decay_copied.release()\",\"释放独占指针的所有权,因为已经将参数传递给了线程。\",\"} else { // failed to start thread\",\"如果线程启动失败,则进入这个分支\",\"_Thr._Id = 0;\",\"将线程ID设置为0。\",\"_Throw_Cpp_error(_RESOURCE_UNAVAILABLE_TRY_AGAIN);\",\"抛出一个 C++ 错误,表示资源不可用,请再次尝试。\"]},\"101\":{\"h\":\"总结\",\"t\":[\"需要注意,libstdc++ 和 libc++ 可能不同,就比如它们 64 位环境下 sizeof(std::thread) 的结果就可能是 8。libstdc++ 的实现只保有一个 std::thread::id。参见。不过实测 gcc 不管是 win32 还是 POSIX 线程模型,线程对象的大小都是 8,宏 _GLIBCXX_HAS_GTHREADS 的值都为 1(GThread)。\",\" class thread { public: #ifdef _GLIBCXX_HAS_GTHREADS using native_handle_type = __gthread_t; #else using native_handle_type = int; #endif\",\"__gthread_t 即 void*。\",\"我们这里的源码解析涉及到的 C++ 技术很多,我们也没办法每一个都单独讲,那会显得文章很冗长,而且也不是重点。\",\"相信你也感受到了,不会模板,你阅读标准库源码,是无稽之谈,市面上很多教程教学,教导一些实现容器,过度简化了,真要去出错了去看标准库的代码,那是不现实的。不需要模板的水平有多高,也不需要会什么元编程,但是基本的需求得能做到,得会,这里推荐一下:现代C++模板教程。\",\"学习完了也不要忘记了回答最初的问题:\",\"如何做到的默认按值复制?\",\"_Start 的第一行代码展示了这一点。我们将传入的所有参数包装成一个元组类型,这些类型先经过 decay_t 处理,去除了引用与 cv 限定,自然就实现了默认复制。\",\"using _Tuple = tuple, decay_t<_Args>...>;\",\"为什么需要 std::ref ?\",\"实现中将类型先经过 decay 处理,如果要传递引用,则必须用类包装一下才行,使用 std::ref 函数就会返回一个包装对象。\",\"如何支持只能移动的对象?\",\"参数通过完美转发,最终调用时使用 std::move,这在线程实际执行的函数 _Invoke 中体现出来:\",\"_STD invoke(_STD move(_STD get<_Indices>(_Tup))...);\",\"如何做到接受任意可调用对象?\",\"源码的实现很简单,主要是通过两层包装,最终将 void* 指针转换到原类型,然后使用 std::invoke 进行调用。\",\"如何创建的线程?\",\"MSVC STL 调用 Win32 API _beginthreadex 创建线程;libstdc++ 调用 __gthread_create 函数创建线程,在 Windows 上实际上就是调用 CreateThread。_beginthreadex 和 CreateThread 都是微软提供的用于创建线程的 C 风格接口,它们的主要区别在于前者依赖于 C 运行时库,而后者更适合纯 Windows API 的情况。使用 _beginthreadex 可以确保正确初始化和清理 C 运行时库资源,而 CreateThread 则适用于不依赖于 C 运行时库的环境。\",\"传递参数一节中的:“std::thread 内部会将保有的参数副本转换为右值表达式进行传递”到底是如何做到的?\",\"这就是第三个问题,差不多,无非是最后调用 std::invoke 函数之前,先 std::move 了。\"]},\"102\":{\"h\":\"std::scoped_lock 的源码实现与解析\",\"t\":[\"本单章专门介绍标准库在 C++17 引入的类模板 std::scoped_lock 的实现,让你对它再无疑问。\",\"这会涉及到不少的模板技术,这没办法,就如同我们先前聊 std::thread 的构造与源码分析最后说的:“不会模板,你阅读标准库源码,是无稽之谈”。建议学习现代C++模板教程。\",\"我们还是一样的,以 MSVC STL 实现的 std::scoped_lock 代码进行讲解,不用担心,我们也查看了 libstdc++ 、libc++的实现,并没有太多区别,更多的是一些风格上的。而且个人觉得 MSVC 的实现是最简单直观的。\"]},\"103\":{\"h\":\"的数据成员\",\"t\":[\"std::scoped_lock 是一个类模板,它有两个特化,也就是有三个版本,其中的数据成员也是不同的。并且它们都不可移动不可复制,“管理类”应该如此。\",\"主模板,是一个可变参数类模板,声明了一个类型形参包 _Mutexes,存储了一个 std::tuple,具体类型根据类型形参包决定。\",\"_EXPORT_STD template class _NODISCARD_LOCK scoped_lock { // class with destructor that unlocks mutexes public: explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock _STD lock(_Mtxes...); } explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) noexcept // strengthened : _MyMutexes(_Mtxes...) {} // construct but don't lock ~scoped_lock() noexcept { _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes); } scoped_lock(const scoped_lock&) = delete; scoped_lock& operator=(const scoped_lock&) = delete; private: tuple<_Mutexes&...> _MyMutexes; };\",\"对模板类型形参包只有一个类型情况的偏特化,是不是很熟悉,和 lock_guard 几乎没有任何区别,保有一个互斥量的引用,构造上锁,析构解锁,提供一个额外的构造函数让构造的时候不上锁。所以用 scoped_lock 替代 lock_guard 不会造成任何额外开销。\",\"template class _NODISCARD_LOCK scoped_lock<_Mutex> { public: using mutex_type = _Mutex; explicit scoped_lock(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock _MyMutex.lock(); } explicit scoped_lock(adopt_lock_t, _Mutex& _Mtx) noexcept // strengthened : _MyMutex(_Mtx) {} // construct but don't lock ~scoped_lock() noexcept { _MyMutex.unlock(); } scoped_lock(const scoped_lock&) = delete; scoped_lock& operator=(const scoped_lock&) = delete; private: _Mutex& _MyMutex; };\",\"对类型形参包为空的情况的全特化,没有数据成员。\",\"template <> class scoped_lock<> { public: explicit scoped_lock() = default; explicit scoped_lock(adopt_lock_t) noexcept /* strengthened */ {} scoped_lock(const scoped_lock&) = delete; scoped_lock& operator=(const scoped_lock&) = delete; };\",\"std::mutex m1,m2; std::scoped_lock lc{ m1 }; // 匹配到偏特化版本 保有一个 std::mutex& std::scoped_lock lc2{ m1,m2 }; // 匹配到主模板 保有一个 std::tuple std::scoped_lock<> lc3; // 匹配到全特化版本 空\"]},\"104\":{\"h\":\"的构造与析构\",\"t\":[\"在上一节讲 scoped_lock 的数据成员的时候已经把这个模板类的全部源码,三个版本的代码都展示了,就不再重复。\",\"这三个版本中,只有两个版本需要介绍,也就是\",\"形参包元素数量为一的偏特化,只管理一个互斥量的。\",\"主模板,可以管理任意个数的互斥量。\",\"那这两个的共同点是什么呢?构造上锁,析构解锁。这很明显,明确这一点我们就开始讲吧。\",\"std::mutex m; void f(){ m.lock(); std::lock_guard lc{ m, std::adopt_lock }; } void f2(){ m.lock(); std::scoped_locksp{ std::adopt_lock,m }; }\",\"这段代码为你展示了 std::lock_guard 和 std::scoped_lock 形参包元素数量为一的偏特化的唯一区别:调用不会上锁的构造函数的参数顺序不同。那么到此也就够了。\",\"接下来我们进入 std::scoped_lock 主模板的讲解:\",\"explicit scoped_lock(_Mutexes&... _Mtxes) : _MyMutexes(_Mtxes...) { // construct and lock _STD lock(_Mtxes...); }\",\"这个构造函数做了两件事情,初始化数据成员 _MyMutexes让它保有这些互斥量的引用,以及给所有互斥量上锁,使用了 std::lock 帮助我们完成这件事情。\",\"explicit scoped_lock(adopt_lock_t, _Mutexes&... _Mtxes) noexcept // strengthened : _MyMutexes(_Mtxes...) {} // construct but don't lock\",\"这个构造函数不上锁,只是初始化数据成员 _MyMutexes让它保有这些互斥量的引用。\",\"~scoped_lock() noexcept { _STD apply([](_Mutexes&... _Mtxes) { (..., (void) _Mtxes.unlock()); }, _MyMutexes); }\",\"析构函数就要稍微聊一下了,主要是用 std::apply 去遍历 std::tuple ,让元组保有的互斥量引用都进行解锁。简单来说是 std::apply 可以将元组存储的参数全部拿出,用于调用这个可变参数的可调用对象,我们就能利用折叠表达式展开形参包并对其调用 unlock()。\",\"不在乎其返回类型只用来实施它的副作用,显式转换为 (void) 也就是弃值表达式。在我们之前讲的 std::thread 源码中也有这种用法。\",\"不过你可能有疑问:“我们的标准库的那些互斥量unlock() 返回类型都是 void 呀,为什么要这样?”\",\"的确,这是个好问题,libstdc++ 和 libc++ 都没这样做,或许 MSVC STL 想着会有人设计的互斥量让它的 unlock() 返回类型不为 void,毕竟 互斥体(Mutex) 没有要求 unlock() 的返回类型。\",\"template< class F, class Tuple > constexpr decltype(auto) apply( F&& f, Tuple&& t );\",\"这个函数模板接受两个参数,一个可调用(Callable)对象 f,以及一个元组 t,用做调用 f 。我们可以自己简单实现一下它,其实不算难,这种遍历元组的方式在之前讲 std::thread 的源码的时候也提到过。\",\"template constexpr decltype(auto) Apply_impl(Callable&& obj,Tuple&& tuple,std::index_sequence){ return std::invoke(std::forward(obj), std::get(std::forward(tuple))...); } template constexpr decltype(auto) apply(Callable&& obj, Tuple&& tuple){ return Apply_impl(std::forward(obj), std::forward(tuple), std::make_index_sequence>>{}); }\",\"其实就是把元组给解包了,利用了 std::index_sequence + std::make_index_sequence 然后就用 std::get 形参包展开用 std::invoke 调用可调用对象即可,非常经典的处理可变参数做法,这个非常重要,一定要会使用。\",\"举一个简单的调用例子:\",\"std::tuple tuple{ 66,\\\"😅\\\",'c' }; ::apply([](const auto&... t) { ((std::cout << t << ' '), ...); }, tuple);\",\"运行测试。\",\"使用了折叠表达式展开形参包,打印了元组所有的元素。\"]},\"105\":{\"h\":\"总结\",\"t\":[\"如你所见,其实这很简单。至少使用与了解其设计原理是很简单的。唯一的难度或许只有那点源码,处理可变参数,这会涉及不少模板技术,既常见也通用。还是那句话:“不会模板,你阅读标准库源码,是无稽之谈”。\",\"相对于 std::thread 的源码解析,std::scoped_lock 还是简单的多。\"]},\"106\":{\"h\":\"st::async 与 std::future 源码解析\"},\"107\":{\"h\":\"前言\",\"t\":[\"和之前一样的,我们以 MSVC STL 的实现进行讲解。\",\"std::future,即未来体,是用来管理一个共享状态的类模板,用于等待关联任务的完成并获取其返回值。它自身不包含状态,需要通过如 std::async 之类的函数进行初始化。std::async 函数模板返回一个已经初始化且具有共享状态的 std::future 对象。\",\"因此,所有操作的开始应从 std::async 开始讲述。\",\"需要注意的是,它们的实现彼此之间会共用不少设施,在讲述 std::async 源码的时候,对于 std::future 的内容同样重要。\",\"MSVC STL 很早之前就不支持 C++11 了,它的实现完全基于 C++14,出于某些原因 C++17 的一些库(如 invoke, _v 变量模板)被向后移植到了 C++14 模式,所以即使是 C++11 标准库设施,实现中可能也是使用到了 C++14、17 的东西。\",\"注意,不用感到奇怪。\"]},\"108\":{\"h\":\"\",\"t\":[\"_EXPORT_STD template _NODISCARD_ASYNC future<_Invoke_result_t, decay_t<_ArgTypes>...>> async( launch _Policy, _Fty&& _Fnarg, _ArgTypes&&... _Args) { // manages a callable object launched with supplied policy using _Ret = _Invoke_result_t, decay_t<_ArgTypes>...>; using _Ptype = typename _P_arg_type<_Ret>::type; _Promise<_Ptype> _Pr( _Get_associated_state<_Ret>(_Policy, _Fake_no_copy_callable_adapter<_Fty, _ArgTypes...>( _STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...))); return future<_Ret>(_From_raw_state_tag{}, _Pr._Get_state_for_future()); } _EXPORT_STD template _NODISCARD_ASYNC future<_Invoke_result_t, decay_t<_ArgTypes>...>> async( _Fty&& _Fnarg, _ArgTypes&&... _Args) { // manages a callable object launched with default policy return _STD async(launch::async | launch::deferred, _STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...); }\",\"这段代码最直观的信息是,函数模板 std::async 有两个重载,其中第二个重载只是给了一个执行策略并将参数全部转发,调用第一个重载。也就是不指明执行策略的时候就会匹配到第二个重载版本。因此我们也只需要关注第二个版本了。\",\"模板参数和函数体外部信息:\",\"_EXPOPT_STD 是一个宏,当 _BUILD_STD_MODULE 宏定义且启用了 C++20 时,会被定义为 export,以便导出模块;否则它为空。\",\"_Fty 表示可调用对象的类型。\",\"_ArgTypes 是一个类型形参包,表示调用该可调用对象所需的参数类型。\",\"_NODISCARD_ASYNC 是一个宏,表示属性 [[nodiscard]],用于标记此函数的返回值不应被忽略。\",\"函数返回类型:\",\"future<_Invoke_result_t, decay_t<_ArgTypes>...>>\",\"虽然看起来复杂,但实际上是通过 _Invoke_result_t 获取可调用对象的返回类型。与标准库中的 std::invoke_result_t 基本相同。\",\"可以举一个使用 std::invoke_result_t 的例子:\",\"template std::future,std::decay_t...>> test_fun(Fty&& f,ArgTypes&&... args){ return std::async(std::launch::async, std::forward(f), std::forward(args)...); } auto result = test_fun([](int) {return 1; }, 1); // std::future\",\"值得注意的是,所有类型在传递前都进行了 decay 处理,也就是说不存在引用类型,是默认按值传递与 std::thread 的行为一致。\",\"函数形参:\",\"async(launch _Policy, _Fty&& _Fnarg, _ArgTypes&&... _Args)\",\"launch _Policy: 表示任务的执行策略,可以是 launch::async(表示异步执行)或 launch::deferred(表示延迟执行),或者两者的组合。\",\"_Fty&& _Fnarg: 可调用对象,通过完美转发机制将其转发给实际的异步任务。\",\"_ArgTypes&&... _Args: 调用该可调用对象时所需的参数,同样通过完美转发机制进行转发。\",\"using _Ret = _Invoke_result_t, decay_t<_ArgTypes>...>;\",\"using _Ptype = typename _P_arg_type<_Ret>::type;\",\"定义 _Ret 类型别名,它是使用 _ArgTypes 类型参数调用 _Fty 类型的可调用对象后得到的结果类型。也就是我们传入的可调用对象的返回类型;同样使用了 _Invoke_result_t(等价于 std::invoke_result_t ) 与 decay_t。\",\"其实 _Ptype 的定义确实在大多数情况下和 _Ret 是相同的,类模板 _P_arg_type 只是为了处理引用类型以及 void 的情况,参见 _P_arg_type 的实现:\",\"template struct _P_arg_type { // type for functions returning T using type = _Fret; }; template struct _P_arg_type<_Fret&> { // type for functions returning reference to T using type = _Fret*; }; template <> struct _P_arg_type { // type for functions returning void using type = int; };\",\"_Ptype:处理异步任务返回值的方式类型,它在语义上强调了异步任务返回值的处理方式,具有不同的实现逻辑和使用场景。在当前我们难以直接展示它的作用,不过可以推测,这个“P” 表示的是后文将使用的 _Promise 类模板。也就是说,定义 _Ptype 是为了配合 _Promise 的使用。我们将会在后文详细探讨 _Promise 类型的内部实现,并进一步解释 _Ptype 的具体作用。\",\"_Promise<_Ptype> _Pr\",\"_Promise 类型本身不重要,很简单,关键还在于其存储的数据成员。\",\"template class _Promise { public: _Promise(_Associated_state<_Ty>* _State_ptr) noexcept : _State(_State_ptr, false), _Future_retrieved(false) {} _Promise(_Promise&&) = default; _Promise& operator=(_Promise&&) = default; void _Swap(_Promise& _Other) noexcept { _State._Swap(_Other._State); _STD swap(_Future_retrieved, _Other._Future_retrieved); } const _State_manager<_Ty>& _Get_state() const noexcept { return _State; } _State_manager<_Ty>& _Get_state() noexcept { return _State; } _State_manager<_Ty>& _Get_state_for_set() { if (!_State.valid()) { _Throw_future_error2(future_errc::no_state); } return _State; } _State_manager<_Ty>& _Get_state_for_future() { if (!_State.valid()) { _Throw_future_error2(future_errc::no_state); } if (_Future_retrieved) { _Throw_future_error2(future_errc::future_already_retrieved); } _Future_retrieved = true; return _State; } bool _Is_valid() const noexcept { return _State.valid(); } bool _Is_ready() const noexcept { return _State._Is_ready(); } _Promise(const _Promise&) = delete; _Promise& operator=(const _Promise&) = delete; private: _State_manager<_Ty> _State; bool _Future_retrieved; };\",\"_Promise 类模板是对 _State_manager 类模板的包装,并增加了一个表示状态的成员 _Future_retrieved。\",\"状态成员用于跟踪 _Promise 是否已经调用过 _Get_state_for_future() 成员函数;它默认为 false,在第一次调用 _Get_state_for_future() 成员函数时被置为 true,如果二次调用,就会抛出 future_errc::future_already_retrieved 异常。\",\"这类似于 std::promise 调用 get_future() 成员函数。测试。\",\"_Promise 的构造函数接受的却不是 _State_manager 类型的对象,而是 _Associated_state 类型的指针,用来初始化数据成员 _State。\",\"_State(_State_ptr, false)\",\"这是因为实际上 _State_manager 类型的实现就是保有了 Associated_state 指针,以及一个状态成员:\",\"private: _Associated_state<_Ty>* _Assoc_state = nullptr; bool _Get_only_once = false;\",\"也可以简单理解 _State_manager 又是对 Associated_state 的包装,其中的大部分接口实际上是调用 _Assoc_state 的成员函数,如:\",\"void wait() const { // wait for signal if (!valid()) { _Throw_future_error2(future_errc::no_state); } _Assoc_state->_Wait(); }\",\"一切的重点,最终在 Associated_state 上。\",\"然而它也是最为复杂的,我们在讲 std::thread-构造源码解析 中提到过一句话:\",\"了解一个庞大的类,最简单的方式就是先看它的数据成员有什么。\",\"public: conditional_t, _Ty, _Result_holder<_Ty>> _Result; exception_ptr _Exception; mutex _Mtx; condition_variable _Cond; bool _Retrieved; int _Ready; bool _Ready_at_thread_exit; // TRANSITION, ABI bool _Has_stored_result; bool _Running;\",\"这是 Associated_state 的数据成员,其中有许多的 bool 类型的状态成员,同时最为明显重要的三个设施是:异常指针、互斥量、条件变量。\",\"根据这些数据成员我们就能很轻松的猜测出 Associated_state 模板类的作用和工作方式。\",\"异常指针:用于存储异步任务中可能发生的异常,以便在调用 future::get 时能够重新抛出异常。\",\"互斥量和条件变量:用于在异步任务和等待任务之间进行同步。当异步任务完成时,条件变量会通知等待的任务。\",\"_Associated_state 模板类负责管理异步任务的状态,包括结果的存储、异常的处理以及任务完成的通知。它是实现 std::future 和 std::promise 的核心组件之一,通过 _State_manager 和 _Promise 类模板对其进行封装和管理,提供更高级别的接口和功能。\",\"+---------------------+ | _Promise<_Ty> | |---------------------| | - _State | -----> +---------------------+ | - _Future_retrieved | | _State_manager<_Ty> | +---------------------+ |----------------------| | - _Assoc_state | -----> +-------------------------+ | - _Get_only_once | | _Associated_state<_Ty>* | +----------------------+ +-------------------------+\",\"上图是 _Promise、_State_manager、_Associated_state 之间的包含关系示意图,理解这个关系对我们后面非常重要。\",\"到此就可以了,我们不需要在此处就详细介绍这三个类,但是你需要大概的看一下,这非常重要。\",\"初始化 _Promie 对象:\",\"_Get_associated_state<_Ret>(_Policy, _Fake_no_copy_callable_adapter<_Fty, _ArgTypes...>(_STD forward<_Fty>(_Fnarg), _STD forward<_ArgTypes>(_Args)...))\",\"很明显,这是一个函数调用,将我们 std::async 的参数全部转发给它,它是重要而直观的。\",\"_Get_associated_state 函数根据启动模式(launch)来决定创建的异步任务状态对象类型:\",\"template _Associated_state::type>* _Get_associated_state(launch _Psync, _Fty&& _Fnarg) { // construct associated asynchronous state object for the launch type switch (_Psync) { // select launch type case launch::deferred: return new _Deferred_async_state<_Ret>(_STD forward<_Fty>(_Fnarg)); case launch::async: // TRANSITION, fixed in vMajorNext, should create a new thread here default: return new _Task_async_state<_Ret>(_STD forward<_Fty>(_Fnarg)); } }\",\"_Get_associated_state 函数返回一个 _Associated_state 指针,该指针指向一个新的 _Deferred_async_state 或 _Task_async_state 对象。这两个类分别对应于异步任务的两种不同执行策略:延迟执行和异步执行。\",\"其实就是父类指针指向了子类对象,注意 _Associated_state 是有虚函数的,子类进行覆盖,这很重要。比如在后续聊 std::future 的 get() 成员函数的时候就会讲到\",\"这段代码也很好的说明在 MSVC STL 中,launch::async | launch::deferred 和 launch::async 的行为是相同的,即都是异步执行。\",\"_Task_async_state 与 _Deferred_async_state 类型\",\"template class _Task_async_state : public _Packaged_state<_Rx()> template class _Deferred_async_state : public _Packaged_state<_Rx()>\",\"_Task_async_state 与 _Deferred_async_state 都继承自 _Packaged_state,用于异步执行任务。它们的构造函数都接受一个函数对象,并将其转发给基类 _Packaged_state 的构造函数。\",\"_Packaged_state 类型只有一个数据成员 std::function 类型的对象 _Fn,它用来存储需要执行的异步任务,而它又继承自 _Associated_state。\",\"template class _Packaged_state<_Ret(_ArgTypes...)> : public _Associated_state<_Ret>\",\"我们直接先看 _Task_async_state 与 _Deferred_async_state 类型的构造函数实现即可:\",\"template _Task_async_state(_Fty2&& _Fnarg) : _Mybase(_STD forward<_Fty2>(_Fnarg)) { _Task = ::Concurrency::create_task([this]() { // do it now this->_Call_immediate(); }); this->_Running = true; } template _Deferred_async_state(const _Fty2& _Fnarg) : _Packaged_state<_Rx()>(_Fnarg) {} template _Deferred_async_state(_Fty2&& _Fnarg) : _Packaged_state<_Rx()>(_STD forward<_Fty2>(_Fnarg)) {}\",\"_Task_async_state 它的数据成员:\",\"private: ::Concurrency::task _Task;\",\"_Task_async_state 的实现使用到了微软自己实现的 并行模式库(PPL),简而言之 launch::async 策略并不是单纯的创建线程让任务执行,而是使用了微软的 ::Concurrency::create_task ,它从线程池中获取线程并执行任务返回包装对象。\",\"this->_Call_immediate(); 是调用 _Task_async_state 的父类 _Packaged_state 的成员函数 _Call_immediate 。\",\"_Packaged_state 有三个偏特化,_Call_immediate 自然也拥有三个不同版本,用来应对我们传入的函数对象返回类型的三种情况:\",\"返回普通类型 _Packaged_state<_Ret(_ArgTypes...)>\",\"void _Call_immediate(_ArgTypes... _Args) { _TRY_BEGIN // 调用函数对象并捕获异常 传递返回值 this->_Set_value(_Fn(_STD forward<_ArgTypes>(_Args)...), false); _CATCH_ALL // 函数对象抛出异常就记录 this->_Set_exception(_STD current_exception(), false); _CATCH_END }\",\"返回引用类型 _Packaged_state<_Ret&(_ArgTypes...)>\",\"void _Call_immediate(_ArgTypes... _Args) { _TRY_BEGIN // 调用函数对象并捕获异常 传递返回值的地址 this->_Set_value(_STD addressof(_Fn(_STD forward<_ArgTypes>(_Args)...)), false); _CATCH_ALL // 函数对象抛出异常就记录 this->_Set_exception(_STD current_exception(), false); _CATCH_END }\",\"返回 void 类型 _Packaged_state\",\"void _Call_immediate(_ArgTypes... _Args) { // call function object _TRY_BEGIN // 调用函数对象并捕获异常 因为返回 void 不获取返回值 而是直接 _Set_value 传递一个 1 _Fn(_STD forward<_ArgTypes>(_Args)...); this->_Set_value(1, false); _CATCH_ALL // 函数对象抛出异常就记录 this->_Set_exception(_STD current_exception(), false); _CATCH_END }\",\"说白了,无非是把返回引用类型的可调用对象返回的引用获取地址传递给 _Set_value,把返回 void 类型的可调用对象传递一个 1 表示正确执行的状态给 _Set_value。\",\"_Call_immediate 则又调用了父类 _Associated_state 的成员函数(_Set_value、_set_exception),传递的可调用对象执行结果,以及可能的异常,将结果或异常存储在 _Associated_state 中。\",\"_Deferred_async_state 并不会在线程中执行任务,但它同样调用 _Call_immediate 函数执行保有的函数对象,它有一个 _Run_deferred_function 函数:\",\"void _Run_deferred_function(unique_lock& _Lock) override { // run the deferred function _Lock.unlock(); _Packaged_state<_Rx()>::_Call_immediate(); _Lock.lock(); }\",\"然后也就和上面说的没什么区别了 。\",\"返回 std::future\",\"return future<_Ret>(_From_raw_state_tag{}, _Pr._Get_state_for_future());\",\"它选择到了 std::future 的构造函数是:\",\"future(_From_raw_state_tag, const _Mybase& _State) noexcept : _Mybase(_State, true) {}\",\"using _Mybase = _State_manager<_Ty*>;\",\"_From_raw_state_tag 是一个空类,并没有什么特殊作用,只是为了区分重载。\",\"_Get_state_for_future 代码如下:\",\"_State_manager<_Ty>& _Get_state_for_future() { if (!_State.valid()) { _Throw_future_error2(future_errc::no_state); } if (_Future_retrieved) { _Throw_future_error2(future_errc::future_already_retrieved); } _Future_retrieved = true; return _State; }\",\"检查状态,修改状态,返回底层 _State ,完成转移状态。\",\"总而言之这行代码通过调用 std::future 的特定构造函数,将 _Promise 对象中的 _State_manager 状态转移到 std::future 对象中,从而创建并返回一个 std::future 对象。这使得 std::future 可以访问并管理异步任务的状态,包括获取任务的结果或异常,并等待任务的完成。\"]},\"109\":{\"h\":\"\",\"t\":[\"先前的 std::async 的内容非常之多,希望各位开发者不要搞晕了,其实重中之重主要是那几个类,关系图如下:\",\"+---------------------+ | _Promise<_Ty> | |---------------------| | - _State | -----> +---------------------+ | - _Future_retrieved | | _State_manager<_Ty> | +---------------------+ |----------------------| | - _Assoc_state | -----> +-------------------------+ | - _Get_only_once | | _Associated_state<_Ty>* | +----------------------+ +-------------------------+\",\"_Promise、_State_manager、_Associated_state 之间的包含关系示意图。\",\"_Asscociated_state、_Packaged_state、_Task_async_state、_Deferred_async_state继承关系示意图。\",\"这其中的 _Associated_state、_State_manager 类型是我们的核心,它在后续 std::future 乃至其它并发设施都有众多使用。\",\"介绍 std::future 的源码我认为无需过多篇幅或者示例,引入过多的源码实现等等从头讲解,只会让各位开发者感觉复杂难。\",\"我们直接从它的最重要、常见的 get()、wait() 成员函数开始即可。\",\"std::future future = std::async([] { return 0; }); future.get();\",\"我们先前已经详细介绍过了 std::async 返回 std::future 的步骤。以上这段代码,唯一的问题是:future.get() 做了什么?\",\"_EXPORT_STD template class future : public _State_manager<_Ty> { // class that defines a non-copyable asynchronous return object that holds a value private: using _Mybase = _State_manager<_Ty>; public: static_assert(!is_array_v<_Ty> && is_object_v<_Ty> && is_destructible_v<_Ty>, \\\"T in future must meet the Cpp17Destructible requirements (N4950 [futures.unique.future]/4).\\\"); future() = default; future(future&& _Other) noexcept : _Mybase(_STD move(_Other), true) {} future& operator=(future&&) = default; future(_From_raw_state_tag, const _Mybase& _State) noexcept : _Mybase(_State, true) {} _Ty get() { // block until ready then return the stored result or throw the stored exception future _Local{_STD move(*this)}; return _STD move(_Local._Get_value()); } _NODISCARD shared_future<_Ty> share() noexcept { return shared_future<_Ty>(_STD move(*this)); } future(const future&) = delete; future& operator=(const future&) = delete; };\",\"std::future 其实还有两种特化,不过整体大差不差。\",\"template class future<_Ty&> : public _State_manager<_Ty*>\",\"template <> class future : public _State_manager\",\"也就是对返回类型为引用和 void 的情况了。其实先前已经聊过很多次了,无非就是内部的返回引用实际按指针操作,返回 void,那么也得给个 1。参见前面的 _Call_immediate 实现。\",\"可以看到 std::future 整体代码实现很少,很简单,那是因为其实现细节都在其父类 _State_manager 。然而 _State_manager 又保有一个 _Associated_state<_Ty>* 类型的成员。而 _Associated_state 又是一切的核心,之前已经详细描述过了。\",\"阅读 std::future 的源码你可能注意到了一个问题:*没有 wait()成员函数?\",\"它的定义来自于父类 _State_manager :\",\"void wait() const { // wait for signal if (!valid()) { _Throw_future_error2(future_errc::no_state); } _Assoc_state->_Wait(); }\",\"然而这还不够,实际上还需要调用了 _Associated_state 的 wait() 成员函数:\",\"virtual void _Wait() { // wait for signal unique_lock _Lock(_Mtx); _Maybe_run_deferred_function(_Lock); while (!_Ready) { _Cond.wait(_Lock); } }\",\"先使用锁进行保护,然后调用函数,再循环等待任务执行完毕。_Maybe_run_deferred_function:\",\"void _Maybe_run_deferred_function(unique_lock& _Lock) { // run a deferred function if not already done if (!_Running) { // run the function _Running = true; _Run_deferred_function(_Lock); } }\",\"_Run_deferred_function 相信你不会陌生,在讲述 std::async 源码中其实已经提到了,就是解锁然后调用 _Call_immediate 罢了。\",\"void _Run_deferred_function(unique_lock& _Lock) override { // run the deferred function _Lock.unlock(); _Packaged_state<_Rx()>::_Call_immediate(); _Lock.lock(); }\",\"_Call_immediate 就是执行我们实际传入的函数对象,先前已经提过。\",\"在 _Wait 函数中调用 _Maybe_run_deferred_function 是为了确保延迟执行(launch::deferred)的任务能够在等待前被启动并执行完毕。这样,在调用 wait 时可以正确地等待任务完成。\",\"至于下面的循环等待部分:\",\"while (!_Ready) { _Cond.wait(_Lock); }\",\"这段代码使用了条件变量、互斥量、以及一个状态对象,主要目的有两个:\",\"避免虚假唤醒: \",\"条件变量的 wait 函数在被唤醒后,会重新检查条件(即 _Ready 是否为 true),确保只有在条件满足时才会继续执行。这防止了由于虚假唤醒导致的错误行为。\",\"等待 launch::async 的任务在其它线程执行完毕: \",\"对于 launch::async 模式的任务,这段代码确保当前线程会等待任务在另一个线程中执行完毕,并接收到任务完成的信号。只有当任务完成并设置 _Ready 为 true 后,条件变量才会被通知,从而结束等待。\",\"这样,当调用 wait 函数时,可以保证无论任务是 launch::deferred 还是 launch::async 模式,当前线程都会正确地等待任务的完成信号,然后继续执行。\",\"wait() 介绍完了,那么接下来就是 get() :\",\"// std::future void get() { // block until ready then return or throw the stored exception future _Local{_STD move(*this)}; _Local._Get_value(); } // std::future _Ty get() { // block until ready then return the stored result or throw the stored exception future _Local{_STD move(*this)}; return _STD move(_Local._Get_value()); } // std::future _Ty& get() { // block until ready then return the stored result or throw the stored exception future _Local{_STD move(*this)}; return *_Local._Get_value(); }\",\"在第四章的 “future 的状态变化”一节中我们也详细聊过 get() 成员函数。由于 future 本身有三个特化,get() 成员函数自然那也有三个版本,不过总体并无多大区别。\",\"它们都是将当前对象(*this)的共享状态转移给了这个局部对象 _Local,然后再去调用父类_State_manager 的成员函数 _Get_value() 获取值并返回。而局部对象 _Local 在函数结束时析构。这意味着当前对象(*this)失去共享状态,并且状态被完全销毁。\",\"_Get_value() :\",\"_Ty& _Get_value() const { if (!valid()) { _Throw_future_error2(future_errc::no_state); } return _Assoc_state->_Get_value(_Get_only_once); }\",\"先进行一下状态判断,如果拥有共享状态则继续,调用 _Assoc_state 的成员函数 _Get_value ,传递 _Get_only_once 参数,其实就是代表这个成员函数只能调用一次,次参数是里面进行状态判断的而已。\",\"_Assoc_state 的类型是 _Associated_state<_Ty>* ,是一个指针类型,它实际会指向自己的子类对象,我们在讲 std::async 源码的时候提到了,它必然指向 _Deferred_async_state 或者 _Task_async_state。\",\"_Assoc_state->_Get_value 这其实是个多态调用,父类有这个虚函数:\",\"virtual _Ty& _Get_value(bool _Get_only_once) { unique_lock _Lock(_Mtx); if (_Get_only_once && _Retrieved) { _Throw_future_error2(future_errc::future_already_retrieved); } if (_Exception) { _STD rethrow_exception(_Exception); } // TRANSITION: `_Retrieved` should be assigned before `_Exception` is thrown so that a `future::get` // that throws a stored exception invalidates the future (N4950 [futures.unique.future]/17) _Retrieved = true; _Maybe_run_deferred_function(_Lock); while (!_Ready) { _Cond.wait(_Lock); } if (_Exception) { _STD rethrow_exception(_Exception); } if constexpr (is_default_constructible_v<_Ty>) { return _Result; } else { return _Result._Held_value; } }\",\"但是子类 _Task_async_state 进行了重写,以 launch::async 策略创建的 future,那么实际会调用 _Task_async_state::_Get_value :\",\"_State_type& _Get_value(bool _Get_only_once) override { // return the stored result or throw stored exception _Task.wait(); return _Mybase::_Get_value(_Get_only_once); }\",\"_Deferred_async_state 则没有进行重写,就是直接调用父类虚函数。\",\"_Task 就是 ::Concurrency::task _Task;,调用 wait() 成员函数确保任务执行完毕。\",\"_Mybase::_Get_value(_Get_only_once) 其实又是回去调用父类的虚函数了。\"]},\"110\":{\"h\":\"方法详细解释\",\"t\":[\"状态检查: \",\"如果_Get_only_once为真并且结果已被检索过,则抛出future_already_retrieved异常。\",\"异常处理: \",\"如果存在存储的异常,重新抛出该异常。\",\"标记结果已被检索: \",\"将_Retrieved设置为true。\",\"执行延迟函数: \",\"调用_Maybe_run_deferred_function来运行可能的延迟任务。这个函数很简单,就是单纯的执行延时任务而已,在讲述 wait 成员函数的时候已经讲完了。\",\"等待结果就绪: \",\"如果结果尚未准备好,等待条件变量通知结果已就绪。(这里和 std::async 和 std::future 的组合无关,因为如果是 launch::async 模式创建的任务,重写的 _Get_value 是先调用了 _Task.wait(); 确保异步任务执行完毕,此处根本无需等待它)\",\"再次检查异常: \",\"再次检查是否有存储的异常,并重新抛出它。\",\"返回结果: \",\"如果_Ty是默认可构造的,返回结果_Result。\",\"否则,返回_Result._Held_value。\",\"_Result 是通过执行 _Call_immediate 函数,然后 _Call_immediate 再执行 _Set_value ,_Set_value 再执行 _Emplace_result,_Emplace_result 再执行 _Emplace_result 获取到我们执行任务的值的。以 Ty 的偏特化为例:\",\"// _Packaged_state void _Call_immediate(_ArgTypes... _Args) { _TRY_BEGIN // 调用函数对象并捕获异常 传递返回值 this->_Set_value(_Fn(_STD forward<_ArgTypes>(_Args)...), false); _CATCH_ALL // 函数对象抛出异常就记录 this->_Set_exception(_STD current_exception(), false); _CATCH_END } // _Asscoiated_state void _Set_value(const _Ty& _Val, bool _At_thread_exit) { // store a result unique_lock _Lock(_Mtx); _Set_value_raw(_Val, &_Lock, _At_thread_exit); } void _Set_value_raw(const _Ty& _Val, unique_lock* _Lock, bool _At_thread_exit) { // store a result while inside a locked block if (_Already_has_stored_result()) { _Throw_future_error2(future_errc::promise_already_satisfied); } _Emplace_result(_Val); _Do_notify(_Lock, _At_thread_exit); } template void _Emplace_result(_Ty2&& _Val) { // TRANSITION, incorrectly assigns _Result when _Ty is default constructible if constexpr (is_default_constructible_v<_Ty>) { _Result = _STD forward<_Ty2>(_Val); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } else { ::new (static_cast(_STD addressof(_Result._Held_value))) _Ty(_STD forward<_Ty2>(_Val)); _Has_stored_result = true; } }\"]},\"111\":{\"h\":\"总结\",\"t\":[\"好了,到此也就可以了。\",\"你不会期待我们将每一个成员函数都分析一遍吧?首先是没有必要,其次是篇幅限制。\",\"std::future 的继承关系让人感到头疼,但是如果耐心的看了一遍,全部搞明白了继承关系, std::async 如何创建的 std::future 也就没有问题了。\",\"其实各位不用着急完全理解,可以慢慢看,至少有许多的显著的信息,比如:\",\"sttd::future 的很多部分,如 get() 成员函数实现中,实际使用了虚函数。\",\"std::async 创建 std::future 对象中,内部其实也有父类指针指向子类对象,以及多态调用。\",\"std::async 的非延迟执行策略,使用到了自家的 PPL 库。\",\"微软的 std::async 策略实现并不符合标准,不区分 launch::async | launch::deferred 和 launch::async。\",\"std::future 内部使用到了互斥量、条件变量、异常指针等设施。\"]},\"112\":{\"h\":\"线程池\"},\"113\":{\"h\":\"前言\",\"t\":[\"我相信,已经阅读到这里的各位,不会对“线程池”这个词感到陌生。大部分开发者早就自己使用、学习,乃至实现过线程池。那不如我们先来进行一下基础的名词解释。\",\"什么叫线程池?\",\"“线程”没什么好说的,是 CPU 调度的最小单位,也是操作系统的一种抽象资源。\",\"“池”?水池装着水,线程池则是装着线程,是一种抽象的指代。\",\"抽象的来说,可以当做是一个池子中存放了一堆线程,故称作线程池。简而言之,线程池是指代一组预先创建的、可以复用的线程集合。这些线程由线程池管理,用于执行多个任务而无需频繁地创建和销毁线程。\",\"这是一个典型的线程池结构。线程池包含一个任务队列,当有新任务加入时,调度器会将任务分配给线程池中的空闲线程进行执行。线程在执行完任务后会进入休眠状态,等待调度器的下一次唤醒。当有新的任务加入队列,并且有线程处于休眠状态时,调度器会唤醒休眠的线程,并分配新的任务给它们执行。线程执行完新任务后,会再次进入休眠状态,直到有新的任务到来,调度器才可能会再次唤醒它们。\",\"图中线程1 就是被调度器分配了任务1,执行完毕后休眠,然而新任务的到来让调度器再次将它唤醒,去执行任务6,执行完毕后继续休眠。\",\"使用线程池的益处我们已经加粗了,然而这其实并不是“线程池”独有的,任何创建和销毁存在较大开销的设施,都可以进行所谓的“池化”。\",\"常见的还有:套接字连接池、数据库连接池、内存池、对象池。\",\"了解以上这些基础概念是第一步也是最后一步,随着水平的提升,对这些概念的理解也会逐渐提升。\"]},\"114\":{\"h\":\"市面上常见的线程池\",\"t\":[\"在了解了线程池的基本概念与运行逻辑后,我们不用着急就尝试实现。我们可以先来聊一聊,使用一下市面上常见的那些 C++ 线程池设施,了解它们提供的功能,接口设计的方式。\"]},\"115\":{\"h\":\"\",\"t\":[\"boost::asio::thread_pool 是 Boost.Asio 库提供的一种线程池实现。\",\"Asio 是一个跨平台的 C++ 库,用于网络和低级 I/O 编程,使用 现代C++ 方法为开发人员提供一致的异步模型。\",\"使用方法:\",\"创建线程池对象,指定或让 Asio 自动决定线程数量。\",\"提交任务:通过 boost::asio::post 函数模板提交任务到线程池中。\",\"阻塞,直到池中的线程完成任务。\",\"#include #include std::mutex m; void print_task(int n) { std::lock_guard lc{ m }; std::cout << \\\"Task \\\" << n << \\\" is running on thr: \\\" << std::this_thread::get_id() << '\\\\n'; } int main() { boost::asio::thread_pool pool{ 4 }; // 创建一个包含 4 个线程的线程池 for (int i = 0; i < 10; ++i) { boost::asio::post(pool, [i] { print_task(i); }); } pool.join(); // 等待所有任务执行完成 }\",\"运行测试。\",\"创建线程池时,指定线程数量,线程池会创建对应数量的线程。\",\"使用 boost::asio::post 提交任务,任务会被添加到任务队列中。\",\"线程池中的线程会从任务队列中取出任务并执行,任务执行完毕后,线程继续取下一个任务或者休眠。\",\"调用 join 方法等待所有任务执行完毕并关闭线程池。\",\"如果我们不自己指明线程池的线程数量,那么 Asio 会根据函数 default_thread_pool_size 计算并返回一个线程池的默认线程数量。它根据系统的硬件并发能力来决定使用的线程数,通常是硬件并发能力的两倍。\",\"inline long default_thread_pool_size() { std::size_t num_threads = thread::hardware_concurrency() * 2; num_threads = num_threads == 0 ? 2 : num_threads; return static_cast(num_threads); } thread_pool::thread_pool() : scheduler_(add_scheduler(new detail::scheduler(*this, 0, false))), num_threads_(detail::default_thread_pool_size())\",\"代码很简单,就是 thread::hardware_concurrency() * 2 而已,至于下面的判断是因为 std::thread::hardware_concurrency() 在某些特殊情况下可能返回 0(例如硬件并发能力无法被检测时),那那将 num_threads 设置为 2,确保线程池至少有 2 个线程。\",\"Boost.Asio 的线程池对象在析构时会自动调用相关的清理方法,但你也可以手动进行控制。\",\"thread_pool::~thread_pool() { stop(); // 停止接收新任务 join(); // 等待所有线程完成 shutdown(); // 最终清理,释放资源 }\",\"stop :修改内部的标志位存在使得线程池能够识别何时需要停止接收新的任务,以及关闭还没开始执行的任务,然后唤醒所有线程。\",\"join() :等待所有线程完成它们的工作,确保所有线程都已终止。\",\"shutdown() :进行最终的清理,释放资源,确保线程池的完全清理和资源的正确释放\",\"此处可阅读部分源码,帮助理解与记忆\",\"析构函数先调用了 stop() ,然后再进行 join() 。那如果我们没有提前显式调用 join() 成员函数,可能导致一些任务没有执行,析构函数并不会等待所有任务执行完毕:\",\"boost::asio::thread_pool pool{ 4 }; for (int i = 0; i < 10; ++i) { boost::asio::post(pool, [i] { print_task(i); }); }\",\"运行测试。\",\"因为析构函数并不是阻塞直到执行完所有任务,而是先停止,再 join() 以及 shutdown()。\",\"Boost.Asio 提供的线程池使用十分简单,接口高度封装,几乎无需关心底层具体实现,易于使用。\",\"我们的操作几乎只需创建线程池对象、将任务加入线程池、在需要时调用 join()。\",\"boost::asio::thread_pool pool{4}; // 创建线程池 boost::asio::post(pool, task); // 将任务加入线程池 pool.join(); // 等待任务完成 (或者析构自动调用)\"]},\"116\":{\"h\":\"\",\"t\":[\"QThreadPool 是 Qt 提供的线程池实现,它是用来管理自家的 QThreads 的集合。\",\"#include #include #include #include struct MyTask : public QRunnable{ void run() override { qDebug() << \\\"🐢🐢🐢🐢🐢\\\"; } }; int main(int argc, char *argv[]){ QCoreApplication app(argc, argv); QThreadPool *threadPool = QThreadPool::globalInstance(); // 线程池最大线程数 qDebug()<< threadPool->maxThreadCount(); for (int i = 0; i < 10; ++i) { MyTask *task = new MyTask{}; threadPool->start(task); } // 当前活跃线程数 10 qDebug()<activeThreadCount(); app.exec(); }\",\"与 Asio.thread_pool 不同,QThreadPool 采用单例模式,通过静态成员函数 QThreadPool::globalInstance() 获取对象实例(不过也可以自己创建)。默认情况下,QThreadPool 线程池的最大线程数为当前硬件支持的并发线程数,例如在我的硬件上为 20,这点也和 Asio.thread_pool 不同。\",\"QThreadPool 依赖于 Qt 的事件循环,因此我们使用了 QCoreApplication。\",\"而将任务添加到线程池中的做法非常古老原始,我们需要自定义一个类型继承并重写虚函数 run,创建任务对象,然后将任务对象传递给线程池的 start 方法。\",\"这种方法过于原始,如果读者学过 java 相信也不会陌生。我们实现的线程池不会是如此。\",\"在 Qt6,引入了一个 start 的重载版本:\",\"template > void QThreadPool::start(Callable &&functionToRun, int priority) { start(QRunnable::create(std::forward(functionToRun)), priority); }\",\"它相当于是对start 原始版本的:\",\"void start(QRunnable *runnable, int priority = 0);\",\"源码。\",\"进行的一个包装,以支持任何的可调用(Callable)类型,而无需再繁琐的继承重写 run 函数。\",\"threadPool->start([=]{ qDebug()< stop_; std::atomic num_threads_; std::queue tasks_; std::vector pool_; };\",\"std::mutex mutex_\",\"用于保护共享资源(如任务队列)在多线程环境中的访问,避免数据竞争。\",\"std::condition_variable cv_\",\"用于线程间的同步,允许线程等待特定条件(如新任务加入队列)并在条件满足时唤醒线程。\",\"std::atomic stop_\",\"指示线程池是否停止。\",\"std::atomic num_threads_\",\"表示线程池中的线程数量。\",\"std::queue tasks_\",\"任务队列,存储等待执行的任务,任务按提交顺序执行。\",\"std::vector pool_\",\"线程容器,存储管理线程对象,每个线程从任务队列中获取任务并执行。\",\"标头依赖:\",\"#include #include #include #include #include #include #include #include #include #include \",\"提供构造析构函数,以及一些外部接口:submit()、start()、stop()、join(),也就完成了:\",\"inline std::size_t default_thread_pool_size()noexcept { std::size_t num_threads = std::thread::hardware_concurrency() * 2; num_threads = num_threads == 0 ? 2 : num_threads; return num_threads; } class ThreadPool { public: using Task = std::packaged_task; ThreadPool(const ThreadPool&) = delete; ThreadPool& operator=(const ThreadPool&) = delete; ThreadPool(std::size_t num_thread = default_thread_pool_size()) : stop_{ false }, num_threads_{ num_thread } { start(); } ~ThreadPool() { stop(); } void stop() { stop_.store(true); cv_.notify_all(); for (auto& thread : pool_) { if (thread.joinable()) { thread.join(); } } pool_.clear(); } template std::future, std::decay_t...>> submit(F&& f, Args&&...args) { using RetType = std::invoke_result_t, std::decay_t...>; if (stop_.load()) { throw std::runtime_error(\\\"ThreadPool is stopped\\\"); } auto task = std::make_shared>( std::bind(std::forward(f), std::forward(args)...)); std::future ret = task->get_future(); { std::lock_guard lc{ mutex_ }; tasks_.emplace([task] {(*task)(); }); } cv_.notify_one(); return ret; } void start() { for (std::size_t i = 0; i < num_threads_; ++i) { pool_.emplace_back([this] { while (!stop_) { Task task; { std::unique_lock lc{ mutex_ }; cv_.wait(lc, [this] {return stop_ || !tasks_.empty(); }); if (tasks_.empty()) return; task = std::move(tasks_.front()); tasks_.pop(); } task(); } }); } } private: std::mutex mutex_; std::condition_variable cv_; std::atomic stop_; std::atomic num_threads_; std::queue tasks_; std::vector pool_; };\",\"测试 demo:\",\"int main() { ThreadPool pool{ 4 }; // 创建一个有 4 个线程的线程池 std::vector> futures; // future 集合,获取返回值 for (int i = 0; i < 10; ++i) { futures.emplace_back(pool.submit(print_task, i)); } for (int i = 0; i < 10; ++i) { futures.emplace_back(pool.submit(print_task2, i)); } int sum = 0; for (auto& future : futures) { sum += future.get(); // get() 成员函数 阻塞到任务执行完毕,获取返回值 } std::cout << \\\"sum: \\\" << sum << '\\\\n'; } // 析构自动 stop()\",\"可能的运行结果:\",\"Task 0 is running on thr: 6900 Task 1 is running on thr: 36304 Task 5 is running on thr: 36304 Task 3 is running on thr: 6900 Task 7 is running on thr: 6900 Task 2 is running on thr: 29376 Task 6 is running on thr: 36304 Task 4 is running on thr: 31416 🐢🐢🐢 1 🐉🐉🐉 Task 9 is running on thr: 29376 🐢🐢🐢 0 🐉🐉🐉 Task 8 is running on thr: 6900 🐢🐢🐢 2 🐉🐉🐉 🐢🐢🐢 6 🐉🐉🐉 🐢🐢🐢 4 🐉🐉🐉 🐢🐢🐢 5 🐉🐉🐉 🐢🐢🐢 3 🐉🐉🐉 🐢🐢🐢 7 🐉🐉🐉 🐢🐢🐢 8 🐉🐉🐉 🐢🐢🐢 9 🐉🐉🐉 sum: 90\",\"如果等待线程池对象调用析构函数,那么效果如同 asio::thread_pool,会先进行 stop,这可能导致一些任务无法执行。不过我们在最后循环遍历了 futures,调用 get() 成员函数,不存在这个问题。\",\"它支持任意可调用类型,当然也包括非静态成员函数。我们使用了 std::decay_t,所以参数的传递其实是按值复制,而不是引用传递,这一点和大部分库的设计一致。示例如下:\",\"struct X { void f(const int& n) const { std::osyncstream{ std::cout } << &n << '\\\\n'; } }; int main() { ThreadPool pool{ 4 }; // 创建一个有 4 个线程的线程池 X x; int n = 6; std::cout << &n << '\\\\n'; auto t = pool.submit(&X::f, &x, n); // 默认复制,地址不同 auto t2 = pool.submit(&X::f, &x, std::ref(n)); t.wait(); t2.wait(); } // 析构自动 stop()\",\"运行测试。\",\"我们的线程池的 submit 成员函数在传递参数的行为上,与先前介绍的 std::thread 和 std::async 等设施基本一致。\",\"我们稍微介绍线程池的接口:\",\"构造函数和析构函数:\",\"构造函数:初始化线程池并启动线程。\",\"析构函数:停止线程池并等待所有线程结束。\",\"外部接口:\",\"stop():停止线程池,通知所有线程退出(不会等待所有任务执行完毕)。\",\"submit():将任务提交到任务队列,并返回一个std::future对象用于获取任务结果以及确保任务执行完毕。\",\"start():启动线程池,创建并启动指定数量的线程。\",\"我们并没有提供一个功能强大的所谓的“调度器”,我们只是利用条件变量和互斥量,让操作系统自行调度而已,它并不具备设置任务优先级之类的调度功能。\",\"当然,你可能还希望我们的线程池具备更多功能或改进,比如控制任务优先级、设置最大线程数量、返回当前活跃线程数等。此外,异常处理也是一个值得考虑的方面。\",\"有些功能实现起来非常简单,而有些则需要更多的思考和设计。不过,这些功能超出了本次讲解的范围。如果有兴趣,可以尝试自行优化我们提供的线程池实现,添加更多的功能。我们给出的线程池实现简单完善且直观,用来学习再好不过。\"]},\"118\":{\"h\":\"总结\",\"t\":[\"在本章中我们详细的介绍了:\",\"线程池的基本概念。\",\"市面上常见的线程池的设计与使用, boost::asio::thread_pool、QThreadPool。\",\"实现一个简易的线程池。\",\"总体而言,内容并不构成太大的难度。\",\"课后作业:自己实现一个线程池,可以参考我们给出的线程池实现增加功能,提交到 homework 文件夹中。\"]},\"119\":{\"h\":\"详细分析\",\"t\":[\"存放一些源码分析,以及一些其它非知识点,而是应用的造轮子(如线程池),或者其它扩展讲解。\"]},\"120\":{\"h\":\"\",\"t\":[\"404 Not Found\"]},\"121\":{\"h\":\"Image\"}},\"dirtCount\":0,\"index\":[[\"课后作业\",{\"1\":{\"118\":1}}],[\"外部接口\",{\"1\":{\"117\":1}}],[\"外部程序可能做任何事情\",{\"1\":{\"31\":1}}],[\"地址不同\",{\"1\":{\"117\":1}}],[\"集合\",{\"1\":{\"117\":1}}],[\"普通的能够满足日常开发需求的\",{\"1\":{\"117\":1}}],[\"尽可能频繁地调度\",{\"1\":{\"116\":1}}],[\"尽管这不会引发数据竞争\",{\"1\":{\"80\":1}}],[\"尽管在多线程环境中有很大的保证\",{\"1\":{\"80\":1}}],[\"尽管我们可能不了解移动构造函数的具体实现\",{\"1\":{\"56\":1}}],[\"仅在没有其他线程运行时调度\",{\"1\":{\"116\":1}}],[\"仅对此操作要求原子性\",{\"1\":{\"84\":1}}],[\"描述\",{\"1\":{\"116\":1}}],[\"常量\",{\"1\":{\"116\":1}}],[\"常见的还有\",{\"1\":{\"113\":1}}],[\"常见的\",{\"1\":{\"109\":1}}],[\"枚举类型表示操作系统应如何调度新创建的线程\",{\"1\":{\"116\":1}}],[\"采用单例模式\",{\"1\":{\"116\":1}}],[\"采用的也是弱序内存模型\",{\"1\":{\"86\":1}}],[\"易于使用\",{\"1\":{\"115\":1}}],[\"易用性\",{\"1\":{\"76\":1}}],[\"市面上常见的线程池的设计与使用\",{\"1\":{\"118\":1}}],[\"市面上常见的线程池\",{\"0\":{\"114\":1}}],[\"市面上很多教程教学\",{\"1\":{\"101\":1}}],[\"套接字连接池\",{\"1\":{\"113\":1}}],[\"独有的\",{\"1\":{\"113\":1}}],[\"独占的\",{\"1\":{\"52\":1}}],[\"图中线程1\",{\"1\":{\"113\":1}}],[\"故称作线程池\",{\"1\":{\"113\":1}}],[\"故所有\",{\"1\":{\"33\":1}}],[\"抽象的来说\",{\"1\":{\"113\":1}}],[\"水池装着水\",{\"1\":{\"113\":1}}],[\"池化\",{\"1\":{\"113\":1}}],[\"池\",{\"1\":{\"113\":1}}],[\"什么叫线程池\",{\"1\":{\"113\":1}}],[\"什么时候不该使用多线程\",{\"1\":{\"8\":1}}],[\"什么时候你该使用多线程\",{\"1\":{\"8\":1}}],[\"乃至实现过线程池\",{\"1\":{\"113\":1}}],[\"乃至其它并发设施都有众多使用\",{\"1\":{\"109\":1}}],[\"微软的\",{\"1\":{\"111\":1}}],[\"库提供的一种线程池实现\",{\"1\":{\"115\":1}}],[\"库\",{\"1\":{\"111\":1,\"115\":1}}],[\"方法\",{\"1\":{\"116\":1}}],[\"方法等待所有任务执行完毕并关闭线程池\",{\"1\":{\"115\":1}}],[\"方法为开发人员提供一致的异步模型\",{\"1\":{\"115\":1}}],[\"方法详细解释\",{\"0\":{\"110\":1}}],[\"方法时\",{\"1\":{\"22\":1}}],[\"`future\",{\"1\":{\"109\":1}}],[\"`\",{\"1\":{\"109\":2}}],[\"父类有这个虚函数\",{\"1\":{\"109\":1}}],[\"整体代码实现很少\",{\"1\":{\"109\":1}}],[\"做了什么\",{\"1\":{\"109\":1}}],[\"做的一样\",{\"1\":{\"35\":1}}],[\"子类进行覆盖\",{\"1\":{\"108\":1}}],[\"延迟执行和异步执行\",{\"1\":{\"108\":1}}],[\"延时\",{\"1\":{\"16\":1}}],[\"既常见也通用\",{\"1\":{\"105\":1}}],[\"既然强调了\",{\"1\":{\"94\":1}}],[\"既然是\",{\"1\":{\"92\":1}}],[\"唯一的问题是\",{\"1\":{\"109\":1}}],[\"唯一的难度或许只有那点源码\",{\"1\":{\"105\":1}}],[\"唯一需要注意的是我们使用了\",{\"1\":{\"54\":1}}],[\"利用了\",{\"1\":{\"104\":1}}],[\"想着会有人设计的互斥量让它的\",{\"1\":{\"104\":1}}],[\"想要在线程中执行异步任务\",{\"1\":{\"54\":1}}],[\"想要解决这个问题很简单\",{\"1\":{\"15\":1}}],[\"呀\",{\"1\":{\"104\":1}}],[\"空\",{\"1\":{\"103\":1}}],[\"空才需要初始化\",{\"1\":{\"34\":1}}],[\"匹配到全特化版本\",{\"1\":{\"103\":1}}],[\"匹配到主模板\",{\"1\":{\"103\":1}}],[\"匹配到偏特化版本\",{\"1\":{\"103\":1}}],[\"匹配次数后\",{\"1\":{\"36\":1}}],[\"替代\",{\"1\":{\"103\":1}}],[\"替换了库的版本\",{\"1\":{\"37\":1}}],[\"替换了库的全局版本\",{\"1\":{\"37\":1}}],[\"替换掉\",{\"1\":{\"31\":1}}],[\"替换为\",{\"1\":{\"13\":1,\"15\":1}}],[\"差不多\",{\"1\":{\"101\":1}}],[\"风格接口\",{\"1\":{\"101\":1}}],[\"去执行任务6\",{\"1\":{\"113\":1}}],[\"去遍历\",{\"1\":{\"104\":1}}],[\"去除了引用与\",{\"1\":{\"101\":1}}],[\"去调用它\",{\"1\":{\"100\":1}}],[\"真要去出错了去看标准库的代码\",{\"1\":{\"101\":1}}],[\"教导一些实现容器\",{\"1\":{\"101\":1}}],[\"教程\",{\"1\":{\"34\":1}}],[\"技术很多\",{\"1\":{\"101\":1}}],[\"示例代码\",{\"1\":{\"100\":1}}],[\"示例如下\",{\"1\":{\"55\":1,\"117\":1}}],[\"信息如下\",{\"1\":{\"100\":1}}],[\"信号量常用于发信\",{\"1\":{\"69\":1}}],[\"信号量提供两种基本操作\",{\"1\":{\"69\":1}}],[\"信号量是一个非常轻量简单的同步设施\",{\"1\":{\"69\":1}}],[\"信号量源自操作系统\",{\"1\":{\"69\":1}}],[\"信号量\",{\"0\":{\"69\":1},\"1\":{\"47\":1,\"73\":2}}],[\"选择到我们的有参构造\",{\"1\":{\"100\":1}}],[\"选择到了有参构造函数\",{\"1\":{\"100\":1}}],[\"选择到了移动构造转移线程资源的所有权\",{\"1\":{\"17\":1}}],[\"选择到了移动构造\",{\"1\":{\"17\":1}}],[\"脑补一下就行\",{\"1\":{\"100\":1}}],[\"脑补任务\",{\"1\":{\"71\":1}}],[\"赋为\",{\"1\":{\"100\":1}}],[\"赋值运算符或比较运算符\",{\"1\":{\"91\":1}}],[\"赋值操作\",{\"1\":{\"78\":1}}],[\"赋值\",{\"1\":{\"49\":1,\"76\":1}}],[\"出于某些原因\",{\"1\":{\"98\":1,\"107\":1}}],[\"出现了未定义行为\",{\"1\":{\"75\":1}}],[\"花括号通常只占一行\",{\"1\":{\"95\":1}}],[\"命名全部使用下划线连接\",{\"1\":{\"95\":1}}],[\"命名空间内为时间段提供了一系列的类型\",{\"1\":{\"60\":1}}],[\"命名空间中的四个函数的基本用法\",{\"1\":{\"16\":1}}],[\"命名空间中的时间对象\",{\"1\":{\"16\":1}}],[\"命名空间中\",{\"1\":{\"16\":1,\"60\":1}}],[\"学习\",{\"1\":{\"113\":1}}],[\"学习完了也不要忘记了回答最初的问题\",{\"1\":{\"101\":1}}],[\"学习注意事项\",{\"0\":{\"94\":1}}],[\"学完本章后\",{\"1\":{\"24\":1}}],[\"伟大无需多言\",{\"1\":{\"93\":1}}],[\"怎么能不聊协程呢\",{\"1\":{\"92\":1}}],[\"旨在提供一种高效\",{\"1\":{\"86\":1}}],[\"旨在减少多处理器访问共享数据时的同步开销\",{\"1\":{\"40\":1}}],[\"嵌入式系统和物联网设备中\",{\"1\":{\"86\":1}}],[\"笔记本电脑和服务器中\",{\"1\":{\"86\":1}}],[\"架构不同\",{\"1\":{\"86\":1}}],[\"架构采用的是弱序内存模型\",{\"1\":{\"86\":1}}],[\"架构采用的是\",{\"1\":{\"86\":1}}],[\"架构\",{\"1\":{\"86\":6}}],[\"架构内存模型\",{\"1\":{\"82\":1,\"94\":1}}],[\"强一致性与弱一致性\",{\"0\":{\"86\":1}}],[\"强制的复制消除\",{\"1\":{\"17\":1}}],[\"剩下的就是第三类\",{\"1\":{\"84\":1}}],[\"剩余的会被阻塞\",{\"1\":{\"69\":1}}],[\"序列一致定序\",{\"0\":{\"90\":1},\"1\":{\"84\":1}}],[\"宽松定序\",{\"0\":{\"87\":1},\"1\":{\"84\":1}}],[\"影响这些操作的行为\",{\"1\":{\"84\":1}}],[\"缓存等底层细节\",{\"1\":{\"83\":1}}],[\"知道其表达的意思就好\",{\"1\":{\"82\":1}}],[\"吗\",{\"1\":{\"82\":1}}],[\"把返回\",{\"1\":{\"108\":1}}],[\"把\",{\"1\":{\"82\":1}}],[\"把这四种变量拿出来进行对比\",{\"1\":{\"45\":1}}],[\"重写的\",{\"1\":{\"110\":1}}],[\"重新抛出该异常\",{\"1\":{\"110\":1}}],[\"重载决议选择到了弃置复制构造函数产生编译错误\",{\"1\":{\"100\":1}}],[\"重载决议简单来说就是编译器必须要根据规则选择最合适的函数重载进行调用\",{\"1\":{\"24\":1}}],[\"重排到\",{\"1\":{\"82\":2}}],[\"重排\",{\"1\":{\"82\":1,\"83\":2}}],[\"流水线更加高效地执行指令\",{\"1\":{\"82\":1}}],[\"流保证是线程安全的\",{\"1\":{\"26\":1}}],[\"少见的情况下的竞争条件引起的\",{\"1\":{\"82\":1}}],[\"专属\",{\"1\":{\"80\":1}}],[\"持有被管理对象的\",{\"1\":{\"80\":1}}],[\"持续递增的时间流逝信息的时钟\",{\"1\":{\"59\":1}}],[\"删除器\",{\"1\":{\"80\":1}}],[\"减\",{\"1\":{\"79\":1}}],[\"减少等待时间\",{\"1\":{\"82\":1}}],[\"减少对原子操作的调用次数\",{\"1\":{\"76\":1}}],[\"减少原子操作的频率\",{\"1\":{\"76\":1}}],[\"减少当前计数\",{\"1\":{\"72\":1}}],[\"减少活跃线程数\",{\"1\":{\"72\":1}}],[\"减少的都是当前屏障计数\",{\"1\":{\"72\":1}}],[\"减少计数并等待\",{\"1\":{\"72\":2}}],[\"减少计数\",{\"1\":{\"69\":1,\"71\":2}}],[\"减少浪费的执行时间\",{\"1\":{\"48\":1}}],[\"减少错误发生\",{\"1\":{\"31\":1}}],[\"减少\",{\"1\":{\"16\":1,\"45\":1}}],[\"适用于需要确保操作成功的场合\",{\"1\":{\"78\":1}}],[\"远好于\",{\"1\":{\"78\":1}}],[\"得到元组的引用初始化\",{\"1\":{\"100\":1}}],[\"得到实际存储的值\",{\"1\":{\"78\":1}}],[\"得会\",{\"1\":{\"93\":1,\"101\":1}}],[\"得不到正确的结果\",{\"1\":{\"34\":1}}],[\"过度简化了\",{\"1\":{\"101\":1}}],[\"过程\",{\"1\":{\"78\":1}}],[\"过一会儿再来判断是否完成\",{\"1\":{\"16\":1}}],[\"know\",{\"1\":{\"77\":2}}],[\"key\",{\"1\":{\"35\":4,\"38\":3}}],[\"稍微了解了一下\",{\"1\":{\"96\":1}}],[\"稍微聊一下原理\",{\"1\":{\"77\":1}}],[\"稍微注意一下构造函数和赋值运算符的实现即可\",{\"1\":{\"19\":1}}],[\"高效\",{\"1\":{\"77\":1}}],[\"高度封装\",{\"1\":{\"10\":1}}],[\"破坏了操作的原子性\",{\"1\":{\"77\":1}}],[\"销毁和复制\",{\"1\":{\"80\":1}}],[\"销毁\",{\"1\":{\"77\":2}}],[\"清除\",{\"1\":{\"77\":4}}],[\"写\",{\"1\":{\"76\":1,\"77\":1,\"78\":2}}],[\"写入到标准输出流\",{\"1\":{\"10\":1}}],[\"满足要求\",{\"1\":{\"76\":1}}],[\"满足第二个\",{\"1\":{\"32\":1}}],[\"验证自己的类型是否满足\",{\"1\":{\"76\":1}}],[\"及可复制赋值\",{\"1\":{\"76\":1}}],[\"^=\",{\"1\":{\"76\":1}}],[\"缩写\",{\"1\":{\"76\":3}}],[\"各位一定要区分\",{\"1\":{\"86\":1}}],[\"各位写代码难道还要考虑下面这段\",{\"1\":{\"82\":1}}],[\"各位不但要考虑程序的性能\",{\"1\":{\"76\":1}}],[\"各个任务通常需要通过同步设施进行相互协调和等待\",{\"1\":{\"47\":1}}],[\"宏定义且启用了\",{\"1\":{\"108\":1}}],[\"宏\",{\"1\":{\"101\":1}}],[\"宏只是为了统一\",{\"1\":{\"77\":1}}],[\"宏则更是简单了\",{\"1\":{\"76\":1}}],[\"宏进行编译时检查\",{\"1\":{\"76\":1}}],[\"始终是无锁\",{\"1\":{\"76\":1}}],[\"检查状态\",{\"1\":{\"108\":1}}],[\"检查\",{\"1\":{\"76\":1}}],[\"检查是否已经收到停止请求\",{\"1\":{\"22\":1}}],[\"数据库连接池\",{\"1\":{\"113\":1}}],[\"数据竞争的细节见内存模型\",{\"1\":{\"76\":1}}],[\"数以万计\",{\"1\":{\"82\":1}}],[\"数组以外\",{\"1\":{\"51\":1}}],[\"逻辑上也可视为原子操作\",{\"1\":{\"75\":1}}],[\"读\",{\"1\":{\"76\":1,\"77\":1,\"78\":2}}],[\"读取线程值\",{\"1\":{\"80\":2}}],[\"读取\",{\"1\":{\"75\":1}}],[\"读写操作如何在不同线程之间可见\",{\"1\":{\"74\":1}}],[\"读写锁\",{\"1\":{\"35\":1}}],[\"系统的所有线程\",{\"1\":{\"74\":1}}],[\"系统上的每个\",{\"1\":{\"40\":1}}],[\"私有数据成员\",{\"1\":{\"73\":1}}],[\"称为二进制信号量\",{\"1\":{\"73\":1}}],[\"称这些表达式冲突\",{\"1\":{\"26\":1}}],[\"现在只需要知道操作分为三类\",{\"1\":{\"76\":1}}],[\"现在让我们来看看底层工具\",{\"1\":{\"73\":1}}],[\"现代c++\",{\"1\":{\"115\":1}}],[\"现代c++模板教程\",{\"1\":{\"0\":1,\"93\":1,\"101\":1}}],[\"现代c++并发编程教程\",{\"0\":{\"0\":1}}],[\"现代\",{\"1\":{\"0\":1,\"92\":1,\"94\":2}}],[\"界面的示例\",{\"1\":{\"73\":1}}],[\"界面将会卡住\",{\"1\":{\"63\":1}}],[\"界面将会卡顿\",{\"1\":{\"63\":1}}],[\"详细介绍了\",{\"1\":{\"73\":1}}],[\"详细分析\",{\"0\":{\"119\":1},\"1\":{\"1\":1}}],[\"查看输出结果\",{\"1\":{\"72\":1}}],[\"活跃线程数\",{\"1\":{\"72\":1}}],[\"期待计数\",{\"1\":{\"72\":1}}],[\"效果会非常明显\",{\"1\":{\"72\":1}}],[\"效果相同\",{\"1\":{\"48\":1}}],[\"开发者必须依赖自己的知识和经验\",{\"1\":{\"82\":1}}],[\"开发者可以尝试去除\",{\"1\":{\"72\":1}}],[\"开始讲述\",{\"1\":{\"107\":1}}],[\"开始等待其它线程执行到此处\",{\"1\":{\"71\":1}}],[\"开始是线程安全\",{\"1\":{\"34\":1}}],[\"开始迭代器不断向前\",{\"1\":{\"11\":1,\"54\":1}}],[\"导致它们继续在循环中自旋\",{\"1\":{\"77\":1}}],[\"导致输出结果混乱\",{\"1\":{\"72\":1}}],[\"导致抛出异常\",{\"1\":{\"26\":1}}],[\"屏障的一个阶段就完成了\",{\"1\":{\"72\":1}}],[\"屏障也是一种古老而广泛应用的同步机制\",{\"1\":{\"70\":1}}],[\"90\",{\"1\":{\"72\":1,\"117\":1}}],[\"99\",{\"1\":{\"72\":1}}],[\"999\",{\"1\":{\"60\":2}}],[\"9\",{\"1\":{\"72\":1,\"117\":2}}],[\"98\",{\"1\":{\"72\":1}}],[\"97\",{\"1\":{\"72\":1}}],[\"96\",{\"1\":{\"72\":1}}],[\"95\",{\"1\":{\"72\":1}}],[\"94\",{\"1\":{\"72\":1}}],[\"93\",{\"1\":{\"72\":1}}],[\"92\",{\"1\":{\"72\":1}}],[\"91\",{\"1\":{\"72\":1}}],[\"轮结束\",{\"1\":{\"72\":2}}],[\"彻底退出函数\",{\"1\":{\"71\":1}}],[\"门闩\",{\"1\":{\"71\":1}}],[\"许多系统\",{\"1\":{\"70\":1}}],[\"闩不能重复使用\",{\"1\":{\"70\":1}}],[\"闩\",{\"1\":{\"70\":1,\"71\":1}}],[\"闩与屏障\",{\"0\":{\"70\":1},\"1\":{\"47\":1,\"73\":1}}],[\"防止服务器过载\",{\"1\":{\"69\":1}}],[\"防止在对象为空时析构出错\",{\"1\":{\"50\":1}}],[\"明白这点\",{\"1\":{\"69\":1}}],[\"明确这一点我们就开始讲吧\",{\"1\":{\"104\":1}}],[\"明确这一点\",{\"1\":{\"54\":1}}],[\"计数的值不能小于\",{\"1\":{\"69\":1}}],[\"计算并返回一个线程池的默认线程数量\",{\"1\":{\"115\":1}}],[\"计算平方并设置值到\",{\"1\":{\"55\":1}}],[\"计算函数\",{\"1\":{\"55\":1}}],[\"计算每个线程处理的元素数量\",{\"1\":{\"11\":1,\"54\":1}}],[\"计算机中的并发有两种方式\",{\"1\":{\"6\":1}}],[\"牢记信号量的基本的概念不变\",{\"1\":{\"69\":1}}],[\"尝试引用已删除的函数\",{\"1\":{\"100\":1}}],[\"尝试将\",{\"1\":{\"78\":1}}],[\"尝试将原子对象的当前值与预期值进行比较\",{\"1\":{\"78\":1}}],[\"尝试获取信号量\",{\"1\":{\"69\":2}}],[\"尝试加锁\",{\"1\":{\"29\":1}}],[\"服务器处理并发请求的数量\",{\"1\":{\"69\":1}}],[\"服务器\",{\"1\":{\"69\":1}}],[\"发信\",{\"1\":{\"69\":1}}],[\"发送信号\",{\"1\":{\"69\":4}}],[\"好了\",{\"1\":{\"69\":1,\"82\":1,\"96\":1,\"111\":1}}],[\"好像这些任务都在同时执行\",{\"1\":{\"6\":1}}],[\"观察不同情况下\",{\"1\":{\"68\":1}}],[\"观看\",{\"1\":{\"52\":1}}],[\"毕竟\",{\"1\":{\"104\":1}}],[\"毕竟如果你不用线程\",{\"1\":{\"68\":1}}],[\"毕竟是初学\",{\"1\":{\"11\":1}}],[\"跨平台兼容性\",{\"0\":{\"67\":1}}],[\"连接信号\",{\"1\":{\"65\":1}}],[\"样式\",{\"1\":{\"65\":1}}],[\"插件后打开此项目\",{\"1\":{\"64\":1}}],[\"项目结构简单\",{\"1\":{\"64\":1}}],[\"项目使用\",{\"1\":{\"64\":1}}],[\"项目说明\",{\"0\":{\"64\":1}}],[\"按照标准规定\",{\"1\":{\"72\":1}}],[\"按钮或移动窗口\",{\"1\":{\"63\":1}}],[\"按钮并触发弹窗\",{\"1\":{\"63\":1}}],[\"按复制捕获\",{\"1\":{\"57\":1}}],[\"控件的更新操作在主线程中执行\",{\"1\":{\"63\":1}}],[\"控件\",{\"1\":{\"63\":1}}],[\"控件通常只能在创建它们的线程中进行操作\",{\"1\":{\"63\":1}}],[\"控制块又是线程安全的\",{\"1\":{\"80\":1}}],[\"控制块是线程安全的\",{\"1\":{\"80\":1}}],[\"控制块是一个动态分配的对象\",{\"1\":{\"80\":1}}],[\"控制线程等待和唤醒\",{\"1\":{\"50\":1}}],[\"控制线程的停止与退出\",{\"1\":{\"50\":1}}],[\"控制流首次经过它的声明时才会被初始化\",{\"1\":{\"44\":1}}],[\"背景介绍\",{\"0\":{\"63\":1}}],[\"带超时功能\",{\"1\":{\"61\":1}}],[\"恢复默认精度\",{\"1\":{\"61\":1}}],[\"调度频率高于\",{\"1\":{\"116\":2}}],[\"调度频率低于\",{\"1\":{\"116\":2}}],[\"调度器\",{\"1\":{\"117\":1}}],[\"调度器才可能会再次唤醒它们\",{\"1\":{\"113\":1}}],[\"调度器会唤醒休眠的线程\",{\"1\":{\"113\":1}}],[\"调度器会将任务分配给线程池中的空闲线程进行执行\",{\"1\":{\"113\":1}}],[\"调度的最小单位\",{\"1\":{\"113\":1}}],[\"调整系统时钟的精度\",{\"1\":{\"61\":1}}],[\"调用函数对象并捕获异常\",{\"1\":{\"108\":3,\"110\":1}}],[\"调用该可调用对象时所需的参数\",{\"1\":{\"108\":1}}],[\"调用第一个重载\",{\"1\":{\"108\":1}}],[\"调用可调用对象即可\",{\"1\":{\"104\":1}}],[\"调用可调用对象的参数\",{\"1\":{\"100\":1}}],[\"调用不会上锁的构造函数的参数顺序不同\",{\"1\":{\"104\":1}}],[\"调用非\",{\"1\":{\"80\":1}}],[\"调用时执行\",{\"1\":{\"53\":1,\"60\":1}}],[\"调用另一个重载版本\",{\"1\":{\"53\":1}}],[\"调用就阻塞了\",{\"1\":{\"28\":1}}],[\"调用了\",{\"1\":{\"26\":1,\"32\":1,\"53\":1}}],[\"调用是线程安全的\",{\"1\":{\"26\":1,\"72\":1}}],[\"调用和执行\",{\"1\":{\"15\":1}}],[\"调用成员函数的参数\",{\"1\":{\"15\":1}}],[\"调用析构函数\",{\"1\":{\"14\":1}}],[\"调用之前\",{\"1\":{\"13\":1}}],[\"调用\",{\"1\":{\"10\":1,\"13\":1,\"28\":1,\"33\":1,\"39\":1,\"55\":1,\"56\":3,\"72\":1,\"78\":1,\"80\":1,\"100\":2,\"101\":2,\"108\":1,\"109\":2,\"110\":1,\"115\":1,\"117\":1}}],[\"纳秒之后的时间\",{\"1\":{\"61\":1}}],[\"纳秒\",{\"1\":{\"61\":1}}],[\"千分之一秒\",{\"1\":{\"60\":1}}],[\"节拍\",{\"1\":{\"60\":1}}],[\"概念与使用\",{\"1\":{\"93\":1}}],[\"概念\",{\"1\":{\"59\":1}}],[\"概念从来不是我们的重点\",{\"1\":{\"8\":1,\"27\":1}}],[\"像\",{\"1\":{\"59\":1}}],[\"分别是\",{\"1\":{\"100\":1}}],[\"分配器\",{\"1\":{\"80\":1}}],[\"分母有默认实参\",{\"1\":{\"59\":1}}],[\"分离的线程可能还在运行\",{\"1\":{\"13\":1}}],[\"分离\",{\"1\":{\"13\":2}}],[\"周期就可以表示为\",{\"1\":{\"59\":1}}],[\"稳定时钟的主要优点在于\",{\"1\":{\"59\":1}}],[\"稳定时钟\",{\"1\":{\"59\":2}}],[\"三个版本的代码都展示了\",{\"1\":{\"104\":1}}],[\"三个枚举项分别表示三种\",{\"1\":{\"60\":1}}],[\"三个阶段稍微介绍一下\",{\"1\":{\"58\":1}}],[\"三方库进行声音播放\",{\"1\":{\"50\":1}}],[\"超时\",{\"1\":{\"60\":1,\"61\":1}}],[\"超过指定的时长或抵达指定的时间点\",{\"1\":{\"58\":1}}],[\"超线程技术被称为\",{\"1\":{\"11\":1}}],[\"超线程技术是一项硬件创新\",{\"1\":{\"11\":1}}],[\"超线程技术\",{\"1\":{\"11\":1}}],[\"处理异步任务返回值的方式类型\",{\"1\":{\"108\":1}}],[\"处理可变参数\",{\"1\":{\"105\":1}}],[\"处理\",{\"1\":{\"101\":2,\"108\":1}}],[\"处理绝对时间的函数以\",{\"1\":{\"58\":1}}],[\"处理持续时间的函数以\",{\"1\":{\"58\":1}}],[\"处理步骤\",{\"1\":{\"29\":2}}],[\"毫秒左右\",{\"1\":{\"61\":1}}],[\"毫秒触发一次中断\",{\"1\":{\"61\":1}}],[\"毫秒内变为就绪状态\",{\"1\":{\"60\":1}}],[\"毫秒\",{\"1\":{\"58\":1,\"60\":2,\"61\":3}}],[\"限定\",{\"1\":{\"100\":1,\"101\":1}}],[\"限时等待\",{\"0\":{\"58\":1},\"1\":{\"73\":1}}],[\"限制了对象\",{\"1\":{\"28\":1}}],[\"隐式转移所有权\",{\"1\":{\"57\":1}}],[\"隐式转换为了指向这个数组的指针\",{\"1\":{\"15\":1}}],[\"隐式转换为\",{\"1\":{\"15\":2}}],[\"收到数据\",{\"1\":{\"57\":4}}],[\"于是我们将与其关联的\",{\"1\":{\"57\":2}}],[\"于是就想让我们的程序也增加\",{\"1\":{\"50\":1}}],[\"参见前面的\",{\"1\":{\"109\":1}}],[\"参见前文的\",{\"1\":{\"56\":1}}],[\"参见\",{\"1\":{\"100\":1,\"101\":1,\"108\":1}}],[\"参见源码声明\",{\"1\":{\"60\":1}}],[\"参数通过完美转发\",{\"1\":{\"101\":1}}],[\"参数强制异步执行任务\",{\"1\":{\"66\":1}}],[\"参数的构造函数\",{\"1\":{\"57\":1}}],[\"参数传递的事\",{\"1\":{\"53\":1}}],[\"参数\",{\"1\":{\"31\":1,\"109\":1}}],[\"意思是信号量维护的计数最大值\",{\"1\":{\"69\":1}}],[\"意思也很简单\",{\"1\":{\"15\":1}}],[\"意味着\",{\"1\":{\"56\":1}}],[\"值初始化了数据成员\",{\"1\":{\"100\":1}}],[\"值\",{\"1\":{\"55\":2,\"78\":1,\"116\":1}}],[\"值得注意的是\",{\"1\":{\"37\":1,\"54\":1,\"77\":1,\"108\":1}}],[\"产生异常\",{\"1\":{\"55\":1}}],[\"产生线程\",{\"1\":{\"19\":1}}],[\"反之亦然\",{\"1\":{\"55\":1}}],[\"反面示例\",{\"1\":{\"31\":1}}],[\"二选一\",{\"1\":{\"55\":1}}],[\"制作任务\",{\"1\":{\"54\":1}}],[\"改\",{\"1\":{\"76\":1,\"77\":1,\"78\":2}}],[\"改成\",{\"1\":{\"54\":1}}],[\"改写一下\",{\"1\":{\"32\":1}}],[\"老老实实执行我们传递的任务\",{\"1\":{\"54\":1}}],[\"幻想还有许多耗时的代码\",{\"1\":{\"54\":1}}],[\"目标\",{\"1\":{\"54\":1}}],[\"目标线程的可取消性状态和类型决定了取消何时生效\",{\"1\":{\"22\":1}}],[\"失败时的内存序为\",{\"1\":{\"78\":1}}],[\"失败就返回\",{\"1\":{\"29\":1}}],[\"失去共享状态\",{\"1\":{\"53\":1,\"109\":1}}],[\"策略实现并不符合标准\",{\"1\":{\"111\":1}}],[\"策略创建的\",{\"1\":{\"109\":1}}],[\"策略并不是单纯的创建线程让任务执行\",{\"1\":{\"108\":1}}],[\"策略\",{\"1\":{\"53\":1}}],[\"策略为\",{\"1\":{\"39\":1}}],[\"典型情况是\",{\"1\":{\"53\":1}}],[\"惰性求值\",{\"1\":{\"53\":1}}],[\"移动\",{\"1\":{\"76\":1}}],[\"移动语义\",{\"1\":{\"56\":1}}],[\"移动赋值\",{\"1\":{\"53\":1,\"95\":1}}],[\"移动构造函数\",{\"1\":{\"100\":1}}],[\"移动构造转移线程资源的所有权到\",{\"1\":{\"17\":1}}],[\"移动构造\",{\"1\":{\"15\":1,\"53\":1,\"95\":1}}],[\"you\",{\"1\":{\"77\":4}}],[\"years\",{\"1\":{\"60\":1}}],[\"y\",{\"1\":{\"53\":5,\"76\":9}}],[\"yield\",{\"1\":{\"16\":5,\"92\":1}}],[\"异步任务执行\",{\"0\":{\"62\":1}}],[\"异步任务\",{\"1\":{\"53\":2}}],[\"异常处理也是一个值得考虑的方面\",{\"1\":{\"117\":1}}],[\"异常处理\",{\"1\":{\"110\":1}}],[\"异常的处理以及任务完成的通知\",{\"1\":{\"108\":1}}],[\"异常指针等设施\",{\"1\":{\"111\":1}}],[\"异常指针\",{\"1\":{\"108\":2}}],[\"异常之类的是例外\",{\"1\":{\"34\":1}}],[\"异常\",{\"1\":{\"34\":1,\"55\":1,\"56\":1,\"108\":1}}],[\"头文件\",{\"1\":{\"53\":1}}],[\"头文件中\",{\"1\":{\"48\":1,\"52\":1}}],[\"若多个执行线程不同步地同时访问同一std\",{\"1\":{\"80\":1}}],[\"若多个执行线程访问同一\",{\"1\":{\"73\":1,\"80\":1}}],[\"若每个线程都是通过其自身的\",{\"1\":{\"52\":1,\"57\":1}}],[\"若所有权层数为\",{\"1\":{\"36\":1}}],[\"能看到线程\",{\"1\":{\"83\":1}}],[\"能够看到操作\",{\"1\":{\"83\":1}}],[\"能够读取到线程\",{\"1\":{\"83\":1}}],[\"能够正常点击\",{\"1\":{\"63\":1}}],[\"能不能调用\",{\"1\":{\"80\":1}}],[\"能用于避免数据竞争\",{\"1\":{\"73\":1,\"80\":1}}],[\"能控制对共享资源的访问\",{\"1\":{\"69\":1}}],[\"能关联多个事件\",{\"1\":{\"52\":1}}],[\"能在任何满足可基本锁定\",{\"1\":{\"48\":1}}],[\"共享状态在经过指定的等待时间内仍未就绪\",{\"1\":{\"60\":1}}],[\"共享状态就绪\",{\"1\":{\"60\":1}}],[\"共享状态持有的函数正在延迟运行\",{\"1\":{\"60\":1}}],[\"共享状态失效\",{\"1\":{\"56\":1}}],[\"共享状态的\",{\"1\":{\"55\":2}}],[\"共享的\",{\"1\":{\"52\":1}}],[\"共享数据\",{\"0\":{\"25\":1},\"1\":{\"1\":1}}],[\"车到站\",{\"1\":{\"52\":1}}],[\"玩手机等\",{\"1\":{\"52\":1}}],[\"格式的音频文件\",{\"1\":{\"51\":1}}],[\"便于使用\",{\"1\":{\"51\":2}}],[\"资源影响主程序的运行\",{\"1\":{\"50\":1}}],[\"资源获取即初始化\",{\"1\":{\"14\":1}}],[\"音频播放器\",{\"1\":{\"50\":1}}],[\"音频任务队列\",{\"1\":{\"50\":1}}],[\"继续播放下一个音频\",{\"1\":{\"50\":1}}],[\"取出后就删除元素\",{\"1\":{\"50\":1}}],[\"取决于操作系统的调度\",{\"1\":{\"15\":1}}],[\"队列\",{\"1\":{\"50\":1}}],[\"队列为空\",{\"1\":{\"49\":2}}],[\"该指针指向一个新的\",{\"1\":{\"108\":1}}],[\"该线程成功获取了锁\",{\"1\":{\"77\":1}}],[\"该线程会一直处于等待状态\",{\"1\":{\"50\":1}}],[\"该代码实现了一个简单的后台音频播放类型\",{\"1\":{\"50\":1}}],[\"该函数需要通过互斥量来保护数据一致性\",{\"1\":{\"50\":1}}],[\"向前移动一个元素\",{\"1\":{\"79\":1}}],[\"向队列添加播放任务时\",{\"1\":{\"50\":1}}],[\"向队列添加新的元素\",{\"1\":{\"50\":1}}],[\"向可调用对象传递参数很简单\",{\"1\":{\"15\":1}}],[\"语音提示\",{\"1\":{\"50\":1}}],[\"语言定义中只有这些类型的操作是原子的\",{\"1\":{\"76\":1}}],[\"语言层面也并未提供此抽象\",{\"1\":{\"40\":1}}],[\"语言层面没有进程的概念\",{\"1\":{\"4\":1}}],[\"语言特性\",{\"1\":{\"38\":1}}],[\"领导可能突然要求添加一些竞争对手产品的功能\",{\"1\":{\"50\":1}}],[\"|=\",{\"1\":{\"76\":1}}],[\"||\",{\"1\":{\"50\":1,\"117\":1}}],[\"|\",{\"1\":{\"49\":60,\"53\":3,\"108\":20,\"109\":18,\"111\":1}}],[\"初始线程有\",{\"1\":{\"72\":1}}],[\"初始状态\",{\"1\":{\"49\":1}}],[\"初始化线程池并启动线程\",{\"1\":{\"117\":1}}],[\"初始化数据成员\",{\"1\":{\"104\":1}}],[\"初始化为\",{\"1\":{\"78\":1}}],[\"初始化不是原子操作\",{\"1\":{\"76\":1}}],[\"初始化计数为\",{\"1\":{\"72\":1}}],[\"初始化严格发生一次\",{\"1\":{\"34\":1}}],[\"初始化\",{\"1\":{\"34\":2,\"77\":1,\"108\":1}}],[\"初始化函数f\",{\"1\":{\"17\":2}}],[\"消费定序\",{\"0\":{\"89\":1}}],[\"消费\",{\"1\":{\"49\":1}}],[\"生产\",{\"1\":{\"49\":1}}],[\"生产者消费者模型\",{\"1\":{\"49\":1}}],[\"生存期结束\",{\"1\":{\"13\":1}}],[\"光写好了肯定不够\",{\"1\":{\"49\":1}}],[\"交换后的\",{\"1\":{\"76\":2}}],[\"交换前的\",{\"1\":{\"76\":2}}],[\"交换\",{\"1\":{\"49\":1,\"78\":1}}],[\"交出\",{\"1\":{\"16\":1}}],[\"qcoreapplication\",{\"1\":{\"116\":2}}],[\"qdebug\",{\"1\":{\"116\":4}}],[\"qrunnable\",{\"1\":{\"116\":4}}],[\"qvboxlayout\",{\"1\":{\"65\":2}}],[\"qsizepolicy\",{\"1\":{\"65\":4}}],[\"qstring\",{\"1\":{\"65\":2}}],[\"qpushbutton\",{\"1\":{\"65\":7}}],[\"qprogressbar\",{\"1\":{\"65\":4}}],[\"qwidget\",{\"1\":{\"65\":2}}],[\"qmessagebox\",{\"1\":{\"65\":3}}],[\"qmetaobject\",{\"1\":{\"63\":5,\"65\":4,\"66\":1}}],[\"qmainwindow\",{\"1\":{\"65\":2}}],[\"q\",{\"1\":{\"49\":4,\"65\":1}}],[\"queue\",{\"1\":{\"117\":3}}],[\"queue\",{\"1\":{\"49\":1}}],[\"queue\",{\"1\":{\"49\":2}}],[\"queue\",{\"1\":{\"49\":12,\"50\":7}}],[\"qthradpool\",{\"1\":{\"116\":1}}],[\"qthread\",{\"1\":{\"116\":9}}],[\"qthreads\",{\"1\":{\"116\":1}}],[\"qthreadpool\",{\"1\":{\"116\":8,\"118\":1}}],[\"qt6\",{\"1\":{\"116\":1}}],[\"qt\",{\"1\":{\"47\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":2,\"73\":1,\"94\":1,\"116\":2}}],[\"基于时间段的等待都是由\",{\"1\":{\"60\":1}}],[\"基于以上思考\",{\"1\":{\"49\":1}}],[\"基本相同\",{\"1\":{\"108\":1}}],[\"基本认识也就足够了\",{\"1\":{\"82\":1}}],[\"基本都是多核\",{\"1\":{\"6\":1}}],[\"基本上是二者都有\",{\"1\":{\"6\":1}}],[\"基本概念与线程变量类似\",{\"1\":{\"45\":1}}],[\"基本概念\",{\"0\":{\"3\":1},\"1\":{\"1\":1}}],[\"操作系统的默认优先级\",{\"1\":{\"116\":1}}],[\"操作同步于任何随后的\",{\"1\":{\"83\":1}}],[\"操作是针对\",{\"1\":{\"79\":1}}],[\"操作失败\",{\"1\":{\"78\":1}}],[\"操作成功\",{\"1\":{\"78\":1}}],[\"操作来设置和获取值\",{\"1\":{\"76\":1}}],[\"操作仅限\",{\"1\":{\"76\":1}}],[\"操作的线程将会一直阻塞\",{\"1\":{\"69\":2}}],[\"操作\",{\"1\":{\"49\":4,\"64\":1,\"69\":1,\"76\":4,\"77\":1,\"78\":1,\"83\":2}}],[\"操作时队列不为空\",{\"1\":{\"49\":1}}],[\"操作时\",{\"1\":{\"49\":2}}],[\"操作受保护的数据\",{\"1\":{\"30\":1}}],[\"虚假唤醒\",{\"1\":{\"48\":1}}],[\"②等价于\",{\"1\":{\"48\":1}}],[\"唤醒了等待在条件变量上的线程\",{\"1\":{\"48\":1}}],[\"唤醒一个等待条件变量的线程\",{\"1\":{\"48\":1}}],[\"暂停当前线程\",{\"1\":{\"48\":1}}],[\"变为其它值\",{\"1\":{\"80\":1}}],[\"变为\",{\"1\":{\"48\":2}}],[\"变量模板\",{\"1\":{\"98\":1,\"107\":1}}],[\"变量的使用是少见的\",{\"1\":{\"45\":1}}],[\"变量的概念对于系统编程和内核开发非常重要\",{\"1\":{\"40\":1}}],[\"变量的概念很好理解\",{\"1\":{\"40\":1}}],[\"变量机制\",{\"1\":{\"40\":1}}],[\"变量是为每个处理器单独分配的变量副本\",{\"1\":{\"40\":1,\"45\":1}}],[\"变量时\",{\"1\":{\"40\":1}}],[\"变量也是如此\",{\"1\":{\"40\":1}}],[\"变量\",{\"0\":{\"40\":1},\"1\":{\"38\":1,\"40\":1,\"46\":1}}],[\"版本已包含这些依赖\",{\"1\":{\"51\":1}}],[\"版本开始引入了\",{\"1\":{\"40\":1}}],[\"版更加通用但是却有更多的性能开销\",{\"1\":{\"48\":1}}],[\"休眠结束\",{\"1\":{\"71\":2}}],[\"休眠\",{\"1\":{\"48\":1}}],[\"休眠②前函数对互斥量解锁①\",{\"1\":{\"48\":1}}],[\"循环中\",{\"1\":{\"48\":1}}],[\"忙等待\",{\"1\":{\"48\":1}}],[\"估算一下地铁到达目的地的时间\",{\"1\":{\"48\":1}}],[\"构建带\",{\"1\":{\"94\":1}}],[\"构建了一个带有\",{\"1\":{\"73\":1}}],[\"构建一个项目展示多线程的必要性\",{\"1\":{\"47\":1}}],[\"构造源码解析\",{\"1\":{\"108\":1}}],[\"构造上锁\",{\"1\":{\"103\":1,\"104\":1}}],[\"构造一个独占智能指针\",{\"1\":{\"100\":1}}],[\"构造新的\",{\"1\":{\"100\":1}}],[\"构造不关联线程的新\",{\"1\":{\"100\":1}}],[\"构造不表示线程的新\",{\"1\":{\"13\":1}}],[\"构造和析构不涉及共享资源\",{\"1\":{\"37\":1}}],[\"构造都额外传递了一个\",{\"1\":{\"31\":1}}],[\"构造了一个临时对象\",{\"1\":{\"17\":1}}],[\"构造\",{\"1\":{\"17\":1,\"32\":1,\"100\":1}}],[\"构造是代表\",{\"1\":{\"15\":1}}],[\"构造参数的传递的时候会decay\",{\"1\":{\"15\":1}}],[\"构造出一个临时的\",{\"1\":{\"15\":1}}],[\"构造线程对象\",{\"1\":{\"15\":1}}],[\"构造函数和析构函数\",{\"1\":{\"117\":1}}],[\"构造函数\",{\"1\":{\"37\":1,\"117\":1}}],[\"构造函数不上锁\",{\"1\":{\"32\":2}}],[\"构造函数中初始化这个引用\",{\"1\":{\"28\":1}}],[\"构造函数中初始化副本\",{\"1\":{\"15\":1}}],[\"构造函数的源码即可\",{\"1\":{\"17\":1}}],[\"构造函数申请资源\",{\"1\":{\"14\":1}}],[\"介绍完了\",{\"1\":{\"109\":1}}],[\"介绍两种指定超时的方式\",{\"1\":{\"58\":1}}],[\"介绍\",{\"1\":{\"47\":2,\"109\":1}}],[\"介绍了一下\",{\"1\":{\"16\":1}}],[\"某类型\",{\"1\":{\"46\":1}}],[\"条件变量才会被通知\",{\"1\":{\"109\":1}}],[\"条件变量会通知等待的任务\",{\"1\":{\"108\":1}}],[\"条件变量等高级同步设施\",{\"1\":{\"83\":1}}],[\"条件变量等设施\",{\"1\":{\"46\":1}}],[\"条件变量虚假唤醒是指在使用条件变量进行线程同步时\",{\"1\":{\"48\":1}}],[\"条件变量的\",{\"1\":{\"48\":1,\"109\":1}}],[\"条件变量\",{\"1\":{\"47\":1,\"48\":1,\"49\":1,\"58\":1,\"108\":1,\"111\":1}}],[\"条件竞争\",{\"0\":{\"26\":1}}],[\"加\",{\"1\":{\"79\":1}}],[\"加载\",{\"1\":{\"78\":1}}],[\"加载操作\",{\"1\":{\"76\":1}}],[\"加深印象\",{\"1\":{\"45\":1}}],[\"加上\",{\"1\":{\"15\":1}}],[\"结构很明确\",{\"1\":{\"99\":1}}],[\"结果是两个时间点的时间差\",{\"1\":{\"61\":1}}],[\"结果将仅在明确请求时计算\",{\"1\":{\"60\":1}}],[\"结合实际使用即可\",{\"1\":{\"45\":1}}],[\"结束时释放\",{\"1\":{\"42\":1}}],[\"作函数形参\",{\"1\":{\"54\":1}}],[\"作用域结束自动释放\",{\"1\":{\"45\":1}}],[\"作为第二个参数\",{\"1\":{\"60\":1}}],[\"作为后缀\",{\"1\":{\"58\":2}}],[\"作为底层数据成员\",{\"1\":{\"19\":1}}],[\"作为\",{\"1\":{\"15\":1}}],[\"作为构造参数\",{\"1\":{\"15\":1}}],[\"作为它的可调用\",{\"1\":{\"10\":1}}],[\"非常经典的处理可变参数做法\",{\"1\":{\"104\":1}}],[\"非常简单\",{\"1\":{\"100\":1}}],[\"非常适合用作制作自旋锁\",{\"1\":{\"77\":1}}],[\"非常的直观\",{\"1\":{\"72\":1}}],[\"非局部变量\",{\"1\":{\"44\":1}}],[\"非静态成员\",{\"1\":{\"15\":1}}],[\"静态断言求值中第一个表达式求值为\",{\"1\":{\"76\":1}}],[\"静态成员函数模板\",{\"1\":{\"100\":1}}],[\"静态成员函数\",{\"1\":{\"73\":1}}],[\"静态常量判断当前时钟是否是稳定时钟\",{\"1\":{\"59\":1}}],[\"静态局部变量\",{\"1\":{\"44\":1,\"46\":1}}],[\"静态局部变量初始化在\",{\"1\":{\"34\":1}}],[\"静态局部变量初始化从\",{\"1\":{\"34\":1}}],[\"静态\",{\"1\":{\"43\":1}}],[\"拥有以下成员函数\",{\"1\":{\"79\":1}}],[\"拥有\",{\"1\":{\"43\":1,\"44\":1}}],[\"拥有两个冲突的求值的程序就有数据竞争\",{\"1\":{\"26\":1}}],[\"几乎无需关心底层具体实现\",{\"1\":{\"115\":1}}],[\"几乎无需同步\",{\"1\":{\"42\":1}}],[\"几乎没有任何区别\",{\"1\":{\"103\":1}}],[\"几乎\",{\"1\":{\"45\":1,\"46\":1}}],[\"几乎完全相同\",{\"1\":{\"28\":1}}],[\"随着水平的提升\",{\"1\":{\"113\":1}}],[\"随作用域开始分配\",{\"1\":{\"42\":1}}],[\"随意\",{\"1\":{\"2\":2}}],[\"局部变量适合临时数据\",{\"1\":{\"45\":1}}],[\"局部变量\",{\"0\":{\"42\":1}}],[\"局部对象就要逆序销毁了\",{\"1\":{\"14\":1}}],[\"局部对象\",{\"1\":{\"13\":2}}],[\"掌握这些知识不仅有助于应对面试问题\",{\"1\":{\"40\":1}}],[\"理解这个关系对我们后面非常重要\",{\"1\":{\"108\":1}}],[\"理解\",{\"1\":{\"40\":1}}],[\"增加了一些\",{\"1\":{\"100\":1}}],[\"增加计数\",{\"1\":{\"69\":1}}],[\"增加这两个功能\",{\"1\":{\"21\":1}}],[\"增进理解\",{\"1\":{\"45\":1}}],[\"增强了并行处理能力\",{\"1\":{\"40\":1}}],[\"功能\",{\"1\":{\"40\":1}}],[\"虽然还有不少接口没有介绍\",{\"1\":{\"116\":1}}],[\"虽然还没有讲\",{\"1\":{\"39\":1}}],[\"虽然看起来复杂\",{\"1\":{\"108\":1}}],[\"虽然是\",{\"1\":{\"100\":1}}],[\"虽然教程名为\",{\"1\":{\"94\":1}}],[\"虽然经常会提到\",{\"1\":{\"83\":1}}],[\"虽然同样不可复制不可移动\",{\"1\":{\"78\":1}}],[\"虽然也可以用互斥量来模拟原子操作\",{\"1\":{\"76\":1}}],[\"虽然\",{\"1\":{\"72\":1,\"79\":1}}],[\"虽然说是说有\",{\"1\":{\"69\":1}}],[\"虽然它的返回类型是\",{\"1\":{\"57\":1}}],[\"虽强调现代\",{\"1\":{\"0\":1}}],[\"默认复制\",{\"1\":{\"117\":1}}],[\"默认移动\",{\"1\":{\"100\":1}}],[\"默认的内存顺序是\",{\"1\":{\"77\":1}}],[\"默认值是\",{\"1\":{\"71\":1}}],[\"默认情况下\",{\"1\":{\"116\":1}}],[\"默认情况下精度约为\",{\"1\":{\"61\":1}}],[\"默认情况就支持\",{\"1\":{\"38\":1}}],[\"默认是根据第一个参数时钟得到的\",{\"1\":{\"61\":1}}],[\"默认构造函数\",{\"1\":{\"100\":1}}],[\"默认构造会上锁\",{\"1\":{\"32\":1}}],[\"默认构造\",{\"1\":{\"15\":1,\"17\":1,\"53\":1,\"95\":1}}],[\"两种\",{\"1\":{\"38\":1}}],[\"两个线程分别运行\",{\"1\":{\"49\":1}}],[\"两个线程需要对它们所有的互斥量做一些操作\",{\"1\":{\"31\":1}}],[\"两个线程共享一个\",{\"1\":{\"26\":1}}],[\"两个函数共享了一个锁\",{\"1\":{\"28\":1}}],[\"两个冲突的求值都是原子操作\",{\"1\":{\"26\":1}}],[\"两个求值都在同一线程上\",{\"1\":{\"26\":1}}],[\"两个\",{\"1\":{\"17\":1,\"100\":1}}],[\"机制\",{\"1\":{\"38\":1}}],[\"来决定创建的异步任务状态对象类型\",{\"1\":{\"108\":1}}],[\"来去除了类型的引用和\",{\"1\":{\"100\":1}}],[\"来定义如何确保这种可见\",{\"1\":{\"83\":1}}],[\"来发现和解决内存次序错误\",{\"1\":{\"82\":1}}],[\"来进行同步操作\",{\"1\":{\"76\":1}}],[\"来保护共享资源\",{\"1\":{\"75\":1}}],[\"来划分任务执行的工作区间\",{\"1\":{\"71\":1}}],[\"来跨线程调用主线程上的控件方法\",{\"1\":{\"63\":1}}],[\"来表示\",{\"1\":{\"61\":1}}],[\"来完成\",{\"1\":{\"60\":2}}],[\"来指定\",{\"1\":{\"59\":1}}],[\"来替代\",{\"1\":{\"57\":1}}],[\"来自\",{\"1\":{\"55\":2}}],[\"来自线程的异常\",{\"1\":{\"55\":2}}],[\"来实现线程局部存储\",{\"1\":{\"38\":1}}],[\"来管理线程局部存储\",{\"1\":{\"38\":1}}],[\"来处理这种情况\",{\"1\":{\"34\":1}}],[\"展示多线程异步的必要性\",{\"1\":{\"94\":1}}],[\"展示异步多线程的必要性\",{\"1\":{\"73\":1}}],[\"展示可以使用\",{\"1\":{\"54\":1}}],[\"展示了如何使用\",{\"1\":{\"76\":1}}],[\"展示了如何在不阻塞\",{\"1\":{\"62\":1}}],[\"展示了\",{\"1\":{\"38\":1}}],[\"展开之后\",{\"1\":{\"100\":1}}],[\"展开就是\",{\"1\":{\"100\":1}}],[\"展开\",{\"1\":{\"24\":1}}],[\"互不干扰一样\",{\"1\":{\"40\":1}}],[\"互不干扰\",{\"1\":{\"38\":1}}],[\"互斥体\",{\"1\":{\"27\":1,\"104\":1}}],[\"互斥量和条件变量\",{\"1\":{\"108\":1}}],[\"互斥量是一种睡眠锁\",{\"1\":{\"77\":1}}],[\"互斥量确保了对共享资源的读写是线程安全的\",{\"1\":{\"75\":1}}],[\"互斥量确保了同一时间不会有其它地方在操作共享资源\",{\"1\":{\"50\":1}}],[\"互斥量确保共享资源的同步\",{\"1\":{\"50\":1}}],[\"互斥量才会真正释放\",{\"1\":{\"36\":1}}],[\"互斥量只是其中一种常见的方式而已\",{\"1\":{\"34\":1}}],[\"互斥量满足互斥体\",{\"1\":{\"33\":1}}],[\"互斥量主要也就是为了保护共享数据\",{\"1\":{\"30\":1}}],[\"互斥量\",{\"1\":{\"27\":1,\"49\":1,\"108\":1,\"109\":1,\"117\":1}}],[\"广泛应用于各种编程语言\",{\"1\":{\"38\":1}}],[\"例如在我的硬件上为\",{\"1\":{\"116\":1}}],[\"例如硬件并发能力无法被检测时\",{\"1\":{\"115\":1}}],[\"例如有一个全局的指针指向了一个线程局部变量\",{\"1\":{\"46\":1}}],[\"例如前文提到的\",{\"1\":{\"46\":1}}],[\"例如\",{\"1\":{\"38\":1,\"46\":1,\"59\":1,\"60\":2,\"61\":1,\"70\":1,\"71\":1,\"76\":3,\"77\":1,\"78\":1,\"82\":2,\"83\":2,\"86\":1,\"94\":1}}],[\"例如现在是\",{\"1\":{\"2\":1}}],[\"例子\",{\"1\":{\"37\":1}}],[\"存放一些源码分析\",{\"1\":{\"119\":1}}],[\"存在缺陷\",{\"1\":{\"72\":1}}],[\"存在于\",{\"1\":{\"60\":1}}],[\"存在条件竞争\",{\"1\":{\"57\":2}}],[\"存在数据竞争\",{\"1\":{\"37\":2}}],[\"存储管理线程对象\",{\"1\":{\"117\":1}}],[\"存储等待执行的任务\",{\"1\":{\"117\":1}}],[\"存储了一个\",{\"1\":{\"103\":1}}],[\"存储了函数对象和参数的副本的指针\",{\"1\":{\"100\":1}}],[\"存储了传入的函数对象和参数的副本\",{\"1\":{\"100\":1}}],[\"存储新值\",{\"1\":{\"78\":1}}],[\"存储操作\",{\"1\":{\"76\":1}}],[\"存储每个线程要执行的任务\",{\"1\":{\"54\":1}}],[\"存储每个线程的结果\",{\"1\":{\"11\":1}}],[\"存储待播放的音频文件路径\",{\"1\":{\"50\":1}}],[\"存储期\",{\"1\":{\"43\":1,\"44\":1}}],[\"存储关联线程的线程对象\",{\"1\":{\"11\":1,\"54\":1}}],[\"换句话说\",{\"1\":{\"37\":1}}],[\"换行并刷新\",{\"1\":{\"10\":1}}],[\"起则为\",{\"1\":{\"84\":1}}],[\"起码用着方便\",{\"1\":{\"76\":1}}],[\"起\",{\"1\":{\"37\":1,\"76\":2}}],[\"全部搞明白了继承关系\",{\"1\":{\"111\":1}}],[\"全部初始化为\",{\"1\":{\"95\":1}}],[\"全局二元信号量对象\",{\"1\":{\"69\":1}}],[\"全局状态\",{\"1\":{\"46\":1}}],[\"全局变量适合整个程序的共享状态\",{\"1\":{\"45\":1}}],[\"全局变量\",{\"0\":{\"43\":1},\"1\":{\"41\":1}}],[\"全局的\",{\"1\":{\"37\":1}}],[\"全局\",{\"1\":{\"37\":1}}],[\"全是\",{\"1\":{\"26\":1}}],[\"运算符\",{\"1\":{\"37\":1}}],[\"运算符的库函数实际是线程安全的\",{\"1\":{\"46\":1}}],[\"运算符的库版本\",{\"1\":{\"37\":2}}],[\"运算符的用户替换版本\",{\"1\":{\"37\":1}}],[\"运算符和\",{\"1\":{\"37\":2}}],[\"运行时库的环境\",{\"1\":{\"101\":1}}],[\"运行时库资源\",{\"1\":{\"101\":1}}],[\"运行时库\",{\"1\":{\"101\":1}}],[\"运行也难以发现\",{\"1\":{\"82\":1}}],[\"运行结果\",{\"1\":{\"16\":1,\"38\":1,\"55\":2,\"69\":1,\"71\":1}}],[\"运行代码\",{\"1\":{\"15\":2}}],[\"运行测试\",{\"1\":{\"11\":2,\"15\":1,\"19\":2,\"22\":1,\"36\":2,\"38\":2,\"48\":1,\"53\":4,\"54\":4,\"55\":1,\"56\":1,\"61\":2,\"69\":1,\"71\":1,\"72\":1,\"76\":3,\"77\":1,\"78\":2,\"80\":1,\"104\":1,\"115\":2,\"117\":1}}],[\"帮助理解与记忆\",{\"1\":{\"115\":1}}],[\"帮助我们完成这件事情\",{\"1\":{\"104\":1}}],[\"帮助我们进行遍历元组即可\",{\"1\":{\"100\":1}}],[\"帮助写出\",{\"1\":{\"31\":1}}],[\"帮我们管理\",{\"1\":{\"36\":1}}],[\"递归锁\",{\"1\":{\"46\":1}}],[\"递归调用\",{\"1\":{\"36\":1}}],[\"递归函数\",{\"1\":{\"36\":1}}],[\"规则\",{\"1\":{\"35\":1}}],[\"符合语义和设计\",{\"1\":{\"34\":1}}],[\"符合零开销原则\",{\"1\":{\"21\":1}}],[\"测试并设置\",{\"1\":{\"77\":1}}],[\"测试\",{\"1\":{\"63\":2,\"65\":2,\"108\":1,\"117\":1}}],[\"测试链接\",{\"1\":{\"34\":1,\"35\":1}}],[\"测试代码\",{\"1\":{\"13\":1,\"14\":1,\"31\":2}}],[\"次参数是里面进行状态判断的而已\",{\"1\":{\"109\":1}}],[\"次调用\",{\"1\":{\"34\":1}}],[\"次都是执行函数\",{\"1\":{\"28\":1}}],[\"第三步进行了修改\",{\"1\":{\"80\":1}}],[\"第三种方式\",{\"1\":{\"48\":1}}],[\"第四章中提到\",{\"1\":{\"80\":1}}],[\"第一轮每个数字最后一位都是\",{\"1\":{\"72\":1}}],[\"第一个模板参数用来指定使用的时钟\",{\"1\":{\"61\":1}}],[\"第一个线程等待结果并访问数据\",{\"1\":{\"57\":1}}],[\"第一个调用\",{\"1\":{\"27\":1}}],[\"第一个功能很简单\",{\"1\":{\"22\":1}}],[\"第10轮结束\",{\"1\":{\"72\":1}}],[\"第1轮结束\",{\"1\":{\"72\":1}}],[\"第9轮结束\",{\"1\":{\"72\":1}}],[\"第8轮结束\",{\"1\":{\"72\":1}}],[\"第7轮结束\",{\"1\":{\"72\":1}}],[\"第6轮结束\",{\"1\":{\"72\":1}}],[\"第5轮结束\",{\"1\":{\"72\":1}}],[\"第4轮结束\",{\"1\":{\"72\":1}}],[\"第3轮结束\",{\"1\":{\"72\":1}}],[\"第2轮结束\",{\"1\":{\"72\":1}}],[\"第二步就获取了被保护的数据的引用\",{\"1\":{\"80\":1}}],[\"第二轮每个数字最后一位都是\",{\"1\":{\"72\":1}}],[\"第二个线程调用\",{\"1\":{\"78\":1}}],[\"第二个线程等待结果并访问数据\",{\"1\":{\"57\":1}}],[\"第二个模板参数用来表示时间单位\",{\"1\":{\"61\":1}}],[\"第二个参数就是先前提到的\",{\"1\":{\"60\":1}}],[\"第二个版本只是对第一个版本的包装\",{\"1\":{\"48\":1}}],[\"第二种方法就是加个延时\",{\"1\":{\"48\":1}}],[\"第\",{\"1\":{\"34\":1}}],[\"比较和复制是逐位的\",{\"1\":{\"91\":1}}],[\"比较\",{\"1\":{\"78\":1}}],[\"比自旋好的多\",{\"1\":{\"77\":1}}],[\"比显式使用互斥量消耗的资源更少\",{\"1\":{\"34\":1}}],[\"比起锁住互斥量并显式检查指针\",{\"1\":{\"34\":1}}],[\"比如控制任务优先级\",{\"1\":{\"117\":1}}],[\"比如在后续聊\",{\"1\":{\"108\":1}}],[\"比如第二章的并行求和\",{\"1\":{\"73\":1}}],[\"比如到\",{\"1\":{\"58\":1}}],[\"比如抛出异常\",{\"1\":{\"58\":1}}],[\"比如学习现代\",{\"1\":{\"52\":1}}],[\"比如领导看到了人家的设备跑起来总是有一些播报\",{\"1\":{\"50\":1}}],[\"比如手机的地图\",{\"1\":{\"48\":1}}],[\"比如我们想要的其实是输出\",{\"1\":{\"60\":1}}],[\"比如我们要讲的互斥量\",{\"1\":{\"46\":1}}],[\"比如我的\",{\"1\":{\"11\":1}}],[\"比如互斥量或原子操作\",{\"1\":{\"37\":1}}],[\"比如异常\",{\"1\":{\"34\":1}}],[\"比如对于共享数据的初始化过程的保护\",{\"1\":{\"34\":1}}],[\"比如当函数返回std\",{\"1\":{\"33\":1}}],[\"比如前面提到的\",{\"1\":{\"33\":1}}],[\"比如保护共享数据中的\",{\"1\":{\"31\":1}}],[\"比如一个遥控汽车\",{\"1\":{\"31\":1}}],[\"比如这段代码就是典型的恶性条件竞争\",{\"1\":{\"26\":1}}],[\"比如两个线程都要往标准输出输出一段字符\",{\"1\":{\"26\":1}}],[\"比如函数结束\",{\"1\":{\"13\":1}}],[\"比如重载了\",{\"1\":{\"13\":1}}],[\"比如\",{\"1\":{\"11\":2,\"26\":1,\"31\":1,\"58\":1,\"59\":1,\"60\":1,\"76\":1,\"111\":1}}],[\"④\",{\"1\":{\"34\":1}}],[\"①\",{\"1\":{\"34\":1}}],[\"错误难以被我们观察到的原因其实可以简单的说\",{\"1\":{\"82\":1}}],[\"错误\",{\"1\":{\"34\":2,\"100\":1}}],[\"双检锁\",{\"1\":{\"34\":2}}],[\"举一个简单的调用例子\",{\"1\":{\"104\":1}}],[\"举一个使用\",{\"1\":{\"33\":1}}],[\"举个例子\",{\"1\":{\"11\":1,\"13\":1,\"52\":1}}],[\"除了直接使用\",{\"1\":{\"76\":1}}],[\"除了析构函数外的成员函数不会引起数据竞争\",{\"1\":{\"72\":1}}],[\"除了\",{\"1\":{\"51\":1,\"55\":1}}],[\"除了类成员或函数形参\",{\"1\":{\"33\":1}}],[\"除非通过\",{\"1\":{\"80\":1}}],[\"除非你真的知道自己在做什么\",{\"1\":{\"77\":1}}],[\"除非它被零初始化或常量初始化\",{\"1\":{\"44\":1}}],[\"除非我们写成\",{\"1\":{\"32\":1}}],[\"除非其中一个孩子决定让另一个先玩\",{\"1\":{\"31\":1}}],[\"除非\",{\"1\":{\"26\":1}}],[\"除非给参数\",{\"1\":{\"15\":1}}],[\"说白了\",{\"1\":{\"108\":1}}],[\"说明\",{\"1\":{\"63\":1}}],[\"说明当前的情况\",{\"1\":{\"50\":1}}],[\"说明符只能搭配变量声明和函数声明\",{\"1\":{\"33\":1}}],[\"说实话挺麻烦的\",{\"1\":{\"16\":1}}],[\"切勿被词语迷惑\",{\"1\":{\"33\":1}}],[\"切勿将受保护数据的指针或引用传递到互斥量作用域之外\",{\"1\":{\"30\":1,\"80\":1}}],[\"原始版本的\",{\"1\":{\"116\":1}}],[\"原子标志位\",{\"1\":{\"117\":1}}],[\"原子模板\",{\"1\":{\"80\":1}}],[\"原子的替换当前对象的值\",{\"1\":{\"78\":1}}],[\"原子类型也有类似的问题\",{\"1\":{\"80\":1}}],[\"原子类型的所有操作都是原子的\",{\"1\":{\"77\":1}}],[\"原子类型的每个操作函数\",{\"1\":{\"76\":1}}],[\"原子类型\",{\"0\":{\"76\":1}}],[\"原子类型在我们第五章的内容会详细展开\",{\"1\":{\"73\":1}}],[\"原子操作可以在一些时候代替互斥量\",{\"1\":{\"76\":1}}],[\"原子操作\",{\"0\":{\"75\":1}}],[\"原子操作即不可分割的操作\",{\"1\":{\"74\":1}}],[\"原子地赋\",{\"1\":{\"80\":1}}],[\"原子地返回底层共享指针的副本std\",{\"1\":{\"80\":1}}],[\"原子地替换所保有的值\",{\"1\":{\"80\":1}}],[\"原子地将期待计数减少\",{\"1\":{\"72\":1}}],[\"原子地增加计数\",{\"1\":{\"69\":1}}],[\"原子地减少计数\",{\"1\":{\"69\":1}}],[\"原来的\",{\"1\":{\"57\":1}}],[\"原来的置空\",{\"1\":{\"33\":1}}],[\"原因很简单\",{\"1\":{\"32\":1}}],[\"请再次尝试\",{\"1\":{\"100\":1}}],[\"请注意\",{\"1\":{\"77\":1}}],[\"请求\",{\"1\":{\"69\":1}}],[\"请求到达\",{\"1\":{\"69\":1}}],[\"请求线程停止\",{\"1\":{\"22\":2}}],[\"请及时清空\",{\"1\":{\"51\":2}}],[\"请更新\",{\"1\":{\"51\":1}}],[\"请添加\",{\"1\":{\"51\":5}}],[\"请无视我们省略的构造\",{\"1\":{\"49\":1}}],[\"请勿对移动语义和转移所有权抱有错误的幻想\",{\"1\":{\"33\":1}}],[\"环境也就是\",{\"1\":{\"32\":1}}],[\"很明显\",{\"1\":{\"108\":1}}],[\"很早之前就不支持\",{\"1\":{\"98\":1,\"107\":1}}],[\"很显然\",{\"1\":{\"80\":1}}],[\"很多时候这并不是我们想要的\",{\"1\":{\"60\":1}}],[\"很简单\",{\"1\":{\"32\":1,\"108\":1,\"109\":1}}],[\"很诡异的设计对吧\",{\"1\":{\"32\":1}}],[\"别的标准库也都有类似设计\",{\"1\":{\"32\":1}}],[\"设为\",{\"1\":{\"78\":2}}],[\"设计挺奇怪的对吧\",{\"1\":{\"32\":1}}],[\"设置最大线程数量\",{\"1\":{\"117\":1}}],[\"设置对象初始计数为\",{\"1\":{\"69\":1}}],[\"设置窗口布局为垂直布局管理器\",{\"1\":{\"65\":1}}],[\"设置布局\",{\"1\":{\"65\":1}}],[\"设置进度条文本字体\",{\"1\":{\"65\":1}}],[\"设置每个进度块的宽度\",{\"1\":{\"65\":1}}],[\"设置时钟精度为\",{\"1\":{\"61\":1}}],[\"设置时区麻烦\",{\"1\":{\"16\":1}}],[\"设置值\",{\"1\":{\"55\":1}}],[\"设置\",{\"1\":{\"48\":1,\"77\":2}}],[\"设置了一个标志位\",{\"1\":{\"48\":1}}],[\"设置条件变量为\",{\"1\":{\"48\":1}}],[\"设置为\",{\"1\":{\"32\":3,\"78\":2,\"115\":1}}],[\"设置取消点\",{\"1\":{\"24\":1}}],[\"设置要等待的时间点为当前时间点之后的5秒\",{\"1\":{\"16\":1}}],[\"了解它们提供的功能\",{\"1\":{\"114\":1}}],[\"了解以上这些基础概念是第一步也是最后一步\",{\"1\":{\"113\":1}}],[\"了解一个庞大的类\",{\"1\":{\"99\":1,\"108\":1}}],[\"了解底层硬件架构的内存模型对扩展知识面和深入理解编程细节也非常有帮助\",{\"1\":{\"86\":1}}],[\"了解内存次序并非硬性需求\",{\"1\":{\"82\":1}}],[\"了解基本构成\",{\"1\":{\"59\":1}}],[\"了解其它\",{\"1\":{\"38\":1}}],[\"了解其实现\",{\"1\":{\"18\":1}}],[\"了\",{\"1\":{\"32\":2,\"57\":1,\"67\":1,\"98\":1,\"101\":1,\"107\":1}}],[\"尤其它还可以与我们下一章要讲的条件变量一起使用\",{\"1\":{\"32\":1}}],[\"尤其是某些说法准确性也一般\",{\"1\":{\"8\":1}}],[\"灵活的锁\",{\"0\":{\"32\":1}}],[\"固定的顺序上锁就不存在问题\",{\"1\":{\"31\":1}}],[\"约束开发者的行为\",{\"1\":{\"31\":1}}],[\"程序能通过编译即代表满足要求\",{\"1\":{\"76\":1}}],[\"程序都能正常完成工作\",{\"1\":{\"31\":1}}],[\"程序老老实实执行完毕\",{\"1\":{\"26\":1}}],[\"甚至包括非\",{\"1\":{\"91\":1}}],[\"甚至不能当普通的\",{\"1\":{\"77\":1}}],[\"甚至估算错误导致坐过站\",{\"1\":{\"48\":1}}],[\"甚至难以复现\",{\"1\":{\"31\":1}}],[\"甚至深入阅读了部分的\",{\"1\":{\"25\":1}}],[\"新增了三个用作协程的关键字\",{\"1\":{\"92\":1}}],[\"新增了\",{\"1\":{\"31\":1}}],[\"哪个都没办法往下执行\",{\"1\":{\"31\":1}}],[\"往下执行需要上锁\",{\"1\":{\"31\":1}}],[\"完成转移状态\",{\"1\":{\"108\":1}}],[\"完成递增操作之前\",{\"1\":{\"75\":1}}],[\"完成并退出\",{\"1\":{\"72\":1}}],[\"完成阶段会重置计数为\",{\"1\":{\"72\":1}}],[\"完成阶段重置计数也是\",{\"1\":{\"72\":1}}],[\"完成前不开始\",{\"1\":{\"53\":1}}],[\"完成播放任务\",{\"1\":{\"50\":1}}],[\"完全独立\",{\"1\":{\"42\":1}}],[\"完全可能线程\",{\"1\":{\"31\":1}}],[\"完整代码实现\",{\"0\":{\"65\":1}}],[\"完整代码\",{\"1\":{\"35\":1}}],[\"完整代码测试\",{\"1\":{\"28\":1}}],[\"🐉🐉🐉\",{\"1\":{\"117\":10}}],[\"🐢🐢🐢\",{\"1\":{\"117\":10}}],[\"🐢🐢🐢🐢🐢\",{\"1\":{\"116\":1}}],[\"😅😅\",{\"1\":{\"77\":1}}],[\"😅\",{\"1\":{\"31\":1,\"104\":1}}],[\"😢\",{\"1\":{\"26\":1}}],[\"🤣🤣\",{\"1\":{\"33\":1}}],[\"🤣\",{\"1\":{\"31\":1}}],[\"考虑用户调用的时候将参数交换\",{\"1\":{\"31\":1}}],[\"依赖于\",{\"1\":{\"51\":1,\"116\":1}}],[\"依然会产生数据竞争\",{\"1\":{\"46\":1}}],[\"依然实际是复制\",{\"1\":{\"15\":1}}],[\"依旧会产生问题\",{\"1\":{\"31\":1}}],[\"要符合\",{\"1\":{\"100\":1}}],[\"要注意的是\",{\"1\":{\"38\":1}}],[\"要求\",{\"1\":{\"76\":1}}],[\"要求其函数对象类型必须是不抛出异常的\",{\"1\":{\"72\":1}}],[\"要求的锁上工作\",{\"1\":{\"48\":1}}],[\"要求下列函数是线程安全的\",{\"1\":{\"37\":1}}],[\"要求构造函数之前和构造函数之后都不能再次上锁\",{\"1\":{\"32\":1}}],[\"要求构造之后上锁\",{\"1\":{\"32\":1}}],[\"要求在构造之前互斥量上锁\",{\"1\":{\"32\":1}}],[\"要想调用\",{\"1\":{\"32\":1}}],[\"要么一个都不锁\",{\"1\":{\"31\":1}}],[\"要么将互斥量都上锁\",{\"1\":{\"31\":1}}],[\"要往下执行\",{\"1\":{\"31\":1}}],[\"要走\",{\"1\":{\"29\":1}}],[\"总体而言\",{\"1\":{\"118\":1}}],[\"总音频数量\",{\"1\":{\"51\":1}}],[\"总而言之这行代码通过调用\",{\"1\":{\"108\":1}}],[\"总而言之\",{\"1\":{\"37\":1,\"45\":1}}],[\"总而言之就是\",{\"1\":{\"36\":1}}],[\"总在互斥量\",{\"1\":{\"31\":1}}],[\"总结\",{\"0\":{\"8\":1,\"24\":1,\"73\":1,\"96\":1,\"101\":1,\"105\":1,\"111\":1,\"118\":1},\"1\":{\"83\":1}}],[\"问题取决于程序和系统的具体实现\",{\"1\":{\"48\":1}}],[\"问题就出现了\",{\"1\":{\"31\":1}}],[\"问题与解决\",{\"0\":{\"31\":1}}],[\"遥控器和玩具车被放在两个不同的地方\",{\"1\":{\"31\":1}}],[\"他并没有\",{\"1\":{\"100\":1}}],[\"他把自己的那个部分给另一个小孩\",{\"1\":{\"31\":1}}],[\"他就得等待另一个小孩玩完才行\",{\"1\":{\"31\":1}}],[\"他们都想玩这个玩具\",{\"1\":{\"31\":1}}],[\"试想一下\",{\"1\":{\"31\":1,\"35\":1}}],[\"死锁是多线程编程中令人相当头疼的问题\",{\"1\":{\"31\":1}}],[\"死锁\",{\"0\":{\"31\":1},\"1\":{\"31\":1,\"46\":1}}],[\"受保护的数据被传递到外部\",{\"1\":{\"30\":1}}],[\"受保护数据传递给函数\",{\"1\":{\"30\":1}}],[\"修改内部的标志位存在使得线程池能够识别何时需要停止接收新的任务\",{\"1\":{\"115\":1}}],[\"修改状态\",{\"1\":{\"108\":1}}],[\"修改指针\",{\"1\":{\"37\":1}}],[\"修改\",{\"1\":{\"31\":1,\"80\":1}}],[\"修改数据成员等\",{\"1\":{\"30\":1}}],[\"修改的\",{\"1\":{\"28\":1}}],[\"释放资源\",{\"1\":{\"115\":2}}],[\"释放独占指针的所有权\",{\"1\":{\"100\":1}}],[\"释放\",{\"0\":{\"88\":1,\"89\":1},\"1\":{\"48\":1,\"69\":3}}],[\"释放操作是线程安全\",{\"1\":{\"37\":1}}],[\"释放锁\",{\"1\":{\"29\":2}}],[\"释放所有获取的资源并执行其它必要的清理操作\",{\"1\":{\"13\":1}}],[\"模式创建的任务\",{\"1\":{\"110\":1}}],[\"模式的任务\",{\"1\":{\"109\":1}}],[\"模式\",{\"1\":{\"98\":1,\"107\":1,\"109\":1}}],[\"模块化且开放的指令集\",{\"1\":{\"86\":1}}],[\"模拟\",{\"1\":{\"69\":1}}],[\"模拟处理时间\",{\"1\":{\"69\":1}}],[\"模拟耗时操作\",{\"1\":{\"57\":2}}],[\"模拟一些计算\",{\"1\":{\"55\":1}}],[\"模拟地铁到站\",{\"1\":{\"48\":2}}],[\"模拟临界区操作\",{\"1\":{\"29\":1}}],[\"模板类负责管理异步任务的状态\",{\"1\":{\"108\":1}}],[\"模板类的作用和工作方式\",{\"1\":{\"108\":1}}],[\"模板参数和函数体外部信息\",{\"1\":{\"108\":1}}],[\"模板的知识必不可少\",{\"1\":{\"93\":1}}],[\"模板外\",{\"1\":{\"76\":1}}],[\"模板教程\",{\"1\":{\"52\":1}}],[\"模板\",{\"1\":{\"28\":1,\"76\":1}}],[\"临时量的析构函数等待\",{\"1\":{\"53\":1}}],[\"临时对象初始化\",{\"1\":{\"17\":1}}],[\"临时对象是右值表达式\",{\"1\":{\"17\":2}}],[\"临界区\",{\"1\":{\"46\":1}}],[\"临界区代码\",{\"1\":{\"29\":1}}],[\"获得信号\",{\"1\":{\"69\":4}}],[\"获得的\",{\"1\":{\"53\":1}}],[\"获得锁\",{\"1\":{\"29\":2}}],[\"获取返回值\",{\"1\":{\"117\":2}}],[\"获取对象实例\",{\"1\":{\"116\":1}}],[\"获取到我们执行任务的值的\",{\"1\":{\"110\":1}}],[\"获取值并返回\",{\"1\":{\"109\":1}}],[\"获取可调用对象的返回类型\",{\"1\":{\"108\":1}}],[\"获取元组存储的数据\",{\"1\":{\"100\":1}}],[\"获取它的函数指针\",{\"1\":{\"100\":1}}],[\"获取定序\",{\"0\":{\"88\":1}}],[\"获取底层共享指针的副本\",{\"1\":{\"80\":1}}],[\"获取当前时间\",{\"1\":{\"61\":1}}],[\"获取当前时间点\",{\"1\":{\"16\":1}}],[\"获取\",{\"1\":{\"55\":2,\"59\":1,\"78\":1}}],[\"获取任务的返回值加起来即可\",{\"1\":{\"54\":1}}],[\"获取任务返回值罢了\",{\"1\":{\"54\":1}}],[\"获取访问权\",{\"1\":{\"35\":1}}],[\"获取锁失败\",{\"1\":{\"29\":2}}],[\"获取的值自然也会是\",{\"1\":{\"11\":1}}],[\"特有的\",{\"1\":{\"77\":1}}],[\"特定的时间点则可以通过\",{\"1\":{\"59\":1}}],[\"特别是当初始化完成之后\",{\"1\":{\"34\":1}}],[\"特别是在需要保护临界区的同时\",{\"1\":{\"29\":1}}],[\"特性\",{\"1\":{\"21\":1}}],[\"添加更多的功能\",{\"1\":{\"117\":1}}],[\"添加了一个新的特性\",{\"1\":{\"28\":1}}],[\"添加元素\",{\"1\":{\"26\":1}}],[\"给被引用的对象\",{\"1\":{\"80\":1}}],[\"给两个互斥量上锁\",{\"1\":{\"31\":1}}],[\"给\",{\"1\":{\"31\":2}}],[\"给整个函数上锁\",{\"1\":{\"28\":1}}],[\"给互斥量上锁\",{\"1\":{\"27\":1,\"28\":1}}],[\"避免数据竞争\",{\"1\":{\"117\":1}}],[\"避免数据竞争和并发问题\",{\"1\":{\"79\":1}}],[\"避免虚假唤醒\",{\"1\":{\"109\":1}}],[\"避免歧义和许多问题\",{\"1\":{\"95\":1}}],[\"避免了运行时的判断开销\",{\"1\":{\"76\":1}}],[\"避免了数据竞争问题\",{\"1\":{\"75\":1}}],[\"避免了数据竞争\",{\"1\":{\"28\":1,\"40\":1}}],[\"避免除数据竞争\",{\"1\":{\"72\":1}}],[\"避免占用\",{\"1\":{\"50\":1}}],[\"避免忙等占用\",{\"1\":{\"50\":1}}],[\"避免另一线程在第一次检查后再做初始化\",{\"1\":{\"34\":1}}],[\"避免在持有锁时调用外部代码\",{\"1\":{\"31\":1}}],[\"避免嵌套锁\",{\"1\":{\"31\":1}}],[\"避免死锁的一般建议是让两个互斥量以相同的顺序上锁\",{\"1\":{\"31\":1}}],[\"避免程序被抛出的异常所终止\",{\"1\":{\"13\":1}}],[\"成为一种单次使用的屏障\",{\"1\":{\"71\":1}}],[\"成功时的内存序为\",{\"1\":{\"78\":1}}],[\"成功获取锁\",{\"1\":{\"77\":1}}],[\"成功获取信号量\",{\"1\":{\"69\":2}}],[\"成功链接上\",{\"1\":{\"33\":1}}],[\"成功调用\",{\"1\":{\"28\":1}}],[\"成员就是保有线程的\",{\"1\":{\"99\":1}}],[\"成员是指向线程的句柄\",{\"1\":{\"99\":1}}],[\"成员函数在传递参数的行为上\",{\"1\":{\"117\":1}}],[\"成员函数实现中\",{\"1\":{\"111\":1}}],[\"成员函数确保任务执行完毕\",{\"1\":{\"109\":1}}],[\"成员函数自然那也有三个版本\",{\"1\":{\"109\":1}}],[\"成员函数开始即可\",{\"1\":{\"109\":1}}],[\"成员函数返回的是底层\",{\"1\":{\"80\":1}}],[\"成员函数原子地返回底层的\",{\"1\":{\"80\":1}}],[\"成员函数获取底层指针\",{\"1\":{\"100\":1}}],[\"成员函数获取这个值\",{\"1\":{\"55\":1}}],[\"成员函数获得计次数\",{\"1\":{\"60\":1}}],[\"成员函数一样有两个重载\",{\"1\":{\"58\":1}}],[\"成员函数一样可以用来构造\",{\"1\":{\"57\":1}}],[\"成员函数只能调用一次\",{\"1\":{\"57\":1}}],[\"成员函数时被置为\",{\"1\":{\"108\":1}}],[\"成员函数时\",{\"1\":{\"56\":1}}],[\"成员函数检查\",{\"1\":{\"53\":1}}],[\"成员函数有两个版本\",{\"1\":{\"48\":1}}],[\"成员函数即可\",{\"1\":{\"33\":1}}],[\"成员函数\",{\"1\":{\"32\":2,\"53\":2,\"55\":1,\"57\":1,\"73\":1,\"76\":1,\"80\":8,\"108\":2,\"109\":3,\"115\":1,\"116\":1,\"117\":2}}],[\"成员函数的实现\",{\"1\":{\"56\":1}}],[\"成员函数的时候已经讲完了\",{\"1\":{\"110\":1}}],[\"成员函数的时候就会讲到\",{\"1\":{\"108\":1}}],[\"成员函数的时候执行任务\",{\"1\":{\"53\":1}}],[\"成员函数的时候\",{\"1\":{\"32\":1}}],[\"成员函数的代码\",{\"1\":{\"32\":1}}],[\"成员函数的\",{\"1\":{\"32\":1}}],[\"成员函数模板\",{\"1\":{\"30\":1}}],[\"成员函数指针也是可调用\",{\"1\":{\"15\":1}}],[\"成员指针不可以转换到函数指针单独使用\",{\"1\":{\"15\":1}}],[\"成员指针必须和对象一起使用\",{\"1\":{\"15\":1}}],[\"希望各位开发者不要搞晕了\",{\"1\":{\"109\":1}}],[\"希望您拥有\",{\"1\":{\"92\":1}}],[\"希望您是已经较为熟练使用模板\",{\"1\":{\"0\":1}}],[\"希望大家分清楚\",{\"1\":{\"28\":1}}],[\"包含复制构造函数与复制赋值\",{\"1\":{\"73\":1,\"80\":1}}],[\"包含以下功能\",{\"1\":{\"50\":1}}],[\"包含在其中的代码是线程安全的\",{\"1\":{\"27\":1}}],[\"包括获取任务的结果或异常\",{\"1\":{\"108\":1}}],[\"包括获取锁\",{\"1\":{\"31\":1}}],[\"包括结果的存储\",{\"1\":{\"108\":1}}],[\"包括但不限于\",{\"1\":{\"94\":1}}],[\"包括条件变量\",{\"1\":{\"73\":1}}],[\"包括支持使用\",{\"1\":{\"53\":1}}],[\"包括虚假唤醒\",{\"1\":{\"48\":1}}],[\"包括管理互斥量的管理类\",{\"1\":{\"46\":1}}],[\"包装任何可调用\",{\"1\":{\"54\":1}}],[\"包装\",{\"1\":{\"31\":1,\"54\":1}}],[\"包起来了\",{\"1\":{\"28\":1}}],[\"涉及被管理对象的\",{\"1\":{\"80\":1}}],[\"涉及读写共享资源\",{\"1\":{\"37\":1}}],[\"涉及到了对共享数据的修改\",{\"1\":{\"28\":1}}],[\"涉及共享资源的修改的代码\",{\"1\":{\"28\":1,\"32\":1}}],[\"较为严格的内存模型\",{\"1\":{\"94\":1}}],[\"较小的粒度意味着锁定的范围更小\",{\"1\":{\"28\":1}}],[\"较少\",{\"1\":{\"16\":1}}],[\"粒度\",{\"1\":{\"28\":1,\"46\":1}}],[\"离开作用域析构的时候解锁\",{\"1\":{\"28\":1}}],[\"式的管理\",{\"1\":{\"28\":1}}],[\"简短的代码可以不额外占行\",{\"1\":{\"95\":1}}],[\"简化了多线程编程中的内存同步问题\",{\"1\":{\"86\":1}}],[\"简而言之\",{\"1\":{\"27\":1,\"30\":1,\"31\":1,\"32\":1,\"34\":1,\"53\":1,\"54\":1,\"55\":1,\"108\":1,\"113\":1}}],[\"简单来说是\",{\"1\":{\"104\":1}}],[\"简单来说也就是\",{\"1\":{\"21\":1}}],[\"简单使用一下\",{\"1\":{\"19\":1}}],[\"简单直观\",{\"1\":{\"16\":1}}],[\"简单的说就是不一定会调用析构\",{\"1\":{\"14\":1}}],[\"简单的说是\",{\"1\":{\"14\":1}}],[\"简单的测试运行的确没问题\",{\"1\":{\"13\":1}}],[\"简单点说\",{\"1\":{\"13\":1}}],[\"简单\",{\"1\":{\"0\":1}}],[\"直至提醒者通过调用\",{\"1\":{\"69\":1}}],[\"直至获得锁\",{\"1\":{\"27\":1}}],[\"直到池中的线程完成任务\",{\"1\":{\"115\":1}}],[\"直到有新的任务到来\",{\"1\":{\"113\":1}}],[\"直到先前持有锁的线程调用\",{\"1\":{\"77\":1}}],[\"直到主线程调用\",{\"1\":{\"71\":1}}],[\"直到\",{\"1\":{\"71\":1}}],[\"直到计数大于\",{\"1\":{\"69\":1}}],[\"直到对应的事件发生\",{\"1\":{\"58\":1}}],[\"直到被设置为止\",{\"1\":{\"55\":1}}],[\"直到结果可用\",{\"1\":{\"55\":1}}],[\"直到到异步任务完成\",{\"1\":{\"53\":1}}],[\"直到条件被满足\",{\"1\":{\"48\":1}}],[\"直到条件满足时被唤醒\",{\"1\":{\"48\":1}}],[\"直到线程执行\",{\"1\":{\"27\":1}}],[\"直接修改这个引用所指向的资源\",{\"1\":{\"80\":1}}],[\"直接改成\",{\"1\":{\"76\":1}}],[\"直接使用\",{\"1\":{\"72\":1}}],[\"直接执行了\",{\"1\":{\"34\":1}}],[\"直接创建临时对象即可\",{\"1\":{\"13\":1}}],[\"状态检查\",{\"1\":{\"110\":1}}],[\"状态转移到\",{\"1\":{\"108\":1}}],[\"状态成员用于跟踪\",{\"1\":{\"108\":1}}],[\"状态\",{\"1\":{\"27\":2,\"60\":1,\"77\":4}}],[\"锁定了\",{\"1\":{\"31\":2}}],[\"锁\",{\"1\":{\"27\":1,\"48\":1}}],[\"未指明\",{\"1\":{\"84\":1}}],[\"未指定\",{\"1\":{\"72\":1,\"76\":11}}],[\"未被锁保护的读取操作①没有与其他线程里被锁保护的写入操作③进行同步\",{\"1\":{\"34\":1}}],[\"未定义行为\",{\"1\":{\"26\":2}}],[\"未发布\",{\"1\":{\"22\":1}}],[\"标头依赖\",{\"1\":{\"117\":1}}],[\"标记结果已被检索\",{\"1\":{\"110\":1}}],[\"标志那样使用\",{\"1\":{\"77\":1}}],[\"标志位\",{\"1\":{\"27\":1}}],[\"标准并发库\",{\"1\":{\"93\":1}}],[\"标准内存模型\",{\"1\":{\"86\":1}}],[\"标准为我们定义了\",{\"1\":{\"86\":1}}],[\"标准通过内存序\",{\"1\":{\"83\":1}}],[\"标准中的可见\",{\"1\":{\"83\":1}}],[\"标准原子类型的实现通常包括一个\",{\"1\":{\"76\":1}}],[\"标准原子类型定义在头文件\",{\"1\":{\"76\":1}}],[\"标准\",{\"1\":{\"51\":1}}],[\"标准的内存模型来确保线程之间的数据一致性\",{\"1\":{\"83\":1}}],[\"标准的\",{\"1\":{\"38\":1}}],[\"标准输出可能交错\",{\"1\":{\"35\":1}}],[\"标准委员会也认为处理此问题很重要\",{\"1\":{\"34\":1}}],[\"标准库设施\",{\"1\":{\"98\":1,\"107\":1}}],[\"标准库还提供了一组宏\",{\"1\":{\"76\":1}}],[\"标准库还提供一个函数\",{\"1\":{\"72\":1}}],[\"标准库对其的支持却来得很晚\",{\"1\":{\"69\":1}}],[\"标准库对条件变量有两套实现\",{\"1\":{\"48\":1}}],[\"标准库增加了时间字面量\",{\"1\":{\"60\":1}}],[\"标准库在\",{\"1\":{\"60\":1}}],[\"标准库通过它定义了很多的时间类型\",{\"1\":{\"59\":1}}],[\"标准库有两种\",{\"1\":{\"52\":1}}],[\"标准库有很多办法解决这个问题\",{\"1\":{\"31\":1}}],[\"标准库将这种事件称为\",{\"1\":{\"52\":1}}],[\"标准库则没有这个烦恼了\",{\"1\":{\"48\":1}}],[\"标准库提供的一种互斥量类型\",{\"1\":{\"36\":1}}],[\"标准库自然为我们提供了\",{\"1\":{\"35\":1}}],[\"标准库引入的\",{\"1\":{\"28\":1}}],[\"标准库进行多线程编程\",{\"1\":{\"24\":1}}],[\"标准库中\",{\"1\":{\"12\":1,\"59\":2}}],[\"标量类型等都同理\",{\"1\":{\"26\":1}}],[\"另一方面\",{\"1\":{\"76\":1}}],[\"另一种是\",{\"1\":{\"58\":1}}],[\"另一种情况就是得显式使用\",{\"1\":{\"33\":1}}],[\"另一个简单的原子类型是特化的原子指针\",{\"1\":{\"78\":1}}],[\"另一个拿到了玩具车\",{\"1\":{\"31\":1}}],[\"另一个\",{\"1\":{\"26\":1}}],[\"另外我们的代码都会测试三大编译器\",{\"1\":{\"94\":1}}],[\"另外我们用的\",{\"1\":{\"60\":1}}],[\"另外你可能注意到我们使用了\",{\"1\":{\"72\":1}}],[\"另外一提\",{\"1\":{\"56\":1}}],[\"另外再聊一聊开销吧\",{\"1\":{\"32\":1}}],[\"另外提示一下\",{\"1\":{\"13\":1}}],[\"见上文\",{\"1\":{\"76\":1}}],[\"见\",{\"1\":{\"26\":2,\"51\":1,\"60\":1,\"72\":1,\"76\":1}}],[\"又是一切的核心\",{\"1\":{\"109\":1}}],[\"又是对\",{\"1\":{\"108\":1}}],[\"又保有一个\",{\"1\":{\"109\":1}}],[\"又不想线程因为等待锁而阻塞的情况下\",{\"1\":{\"29\":1}}],[\"又常被称为互斥锁\",{\"1\":{\"27\":1}}],[\"又去执行另一个线程\",{\"1\":{\"26\":1}}],[\"又或者闹钟没电了睡过站\",{\"1\":{\"48\":1}}],[\"又或者\",{\"1\":{\"26\":1}}],[\"又或者一边看电视一边吃零食\",{\"1\":{\"5\":1}}],[\"等设施基本一致\",{\"1\":{\"117\":1}}],[\"等价\",{\"1\":{\"80\":1}}],[\"等价于\",{\"1\":{\"59\":1,\"72\":1,\"108\":1}}],[\"等成员函数对\",{\"1\":{\"76\":1}}],[\"等操作方式\",{\"1\":{\"76\":1}}],[\"等操作\",{\"1\":{\"49\":1}}],[\"等标准库设施用作同步操作\",{\"1\":{\"47\":1}}],[\"等\",{\"1\":{\"33\":1,\"61\":1}}],[\"等等\",{\"1\":{\"26\":1}}],[\"等待任务完成\",{\"1\":{\"115\":1}}],[\"等待所有线程完成它们的工作\",{\"1\":{\"115\":1}}],[\"等待所有线程完成\",{\"1\":{\"115\":1}}],[\"等待所有线程执行完毕\",{\"1\":{\"11\":1,\"54\":1}}],[\"等待所有任务执行完成\",{\"1\":{\"115\":1}}],[\"等待调度器的下一次唤醒\",{\"1\":{\"113\":1}}],[\"等待条件变量通知结果已就绪\",{\"1\":{\"110\":1}}],[\"等待条件变量满足条件\",{\"1\":{\"61\":1}}],[\"等待后续更新讲解\",{\"1\":{\"92\":1}}],[\"等待更新唤醒\",{\"1\":{\"80\":1}}],[\"等待的线程中会有一个线程成功调用\",{\"1\":{\"77\":1}}],[\"等待的同时也可以执行其它的任务\",{\"1\":{\"52\":1}}],[\"等待计数为\",{\"1\":{\"71\":1}}],[\"等待其它线程执行\",{\"1\":{\"71\":2}}],[\"等待结果就绪\",{\"1\":{\"110\":1}}],[\"等待结果\",{\"1\":{\"60\":1}}],[\"等待一个\",{\"1\":{\"60\":1}}],[\"等待数据中\",{\"1\":{\"57\":4}}],[\"等待音频播放完毕\",{\"1\":{\"50\":1}}],[\"等待队列中所有音乐播放完毕\",{\"1\":{\"50\":1}}],[\"等待新的任务到来\",{\"1\":{\"50\":1}}],[\"等待并判断谓词\",{\"1\":{\"48\":1}}],[\"等待\",{\"1\":{\"48\":1,\"53\":1,\"69\":3,\"71\":1,\"80\":1,\"109\":1}}],[\"等待事件或条件\",{\"0\":{\"48\":1}}],[\"等待异步任务执行完毕\",{\"1\":{\"53\":1}}],[\"等待异步任务\",{\"1\":{\"47\":1}}],[\"等待线程执行\",{\"1\":{\"55\":4}}],[\"等待线程执行结束\",{\"1\":{\"19\":1}}],[\"等待线程对象\",{\"1\":{\"10\":1}}],[\"等待到指定的时间点\",{\"1\":{\"16\":1}}],[\"恶性的条件竞争\",{\"1\":{\"26\":1}}],[\"才可作为一个整体执行\",{\"1\":{\"73\":1}}],[\"才会考虑\",{\"1\":{\"48\":1}}],[\"才会真正解锁互斥量\",{\"1\":{\"36\":1}}],[\"才会导致\",{\"1\":{\"26\":1}}],[\"才需要获取锁\",{\"1\":{\"34\":1}}],[\"才能继续往下执行\",{\"1\":{\"71\":1}}],[\"才能传递引用\",{\"1\":{\"53\":1}}],[\"才能实际应用多线程编程\",{\"1\":{\"24\":1}}],[\"才能更好的使用它\",{\"1\":{\"18\":1}}],[\"才能调用\",{\"1\":{\"13\":1}}],[\"才能进行真正的并行\",{\"1\":{\"6\":1}}],[\"从性能上看\",{\"1\":{\"77\":1}}],[\"从网络获取的数据\",{\"1\":{\"57\":2}}],[\"从线程池中获取线程并执行任务返回包装对象\",{\"1\":{\"53\":1}}],[\"从队列中取出元素\",{\"1\":{\"50\":1}}],[\"从队列中弹出元素\",{\"1\":{\"49\":2}}],[\"从\",{\"1\":{\"40\":1,\"55\":1}}],[\"从多个线程输出的单独字符可能交错\",{\"1\":{\"26\":1}}],[\"从而结束等待\",{\"1\":{\"109\":1}}],[\"从而创建并返回一个\",{\"1\":{\"108\":1}}],[\"从而避免数据竞争问题\",{\"1\":{\"83\":1}}],[\"从而避免了数据竞争\",{\"1\":{\"80\":1}}],[\"从而避免线程对象析构产生问题\",{\"1\":{\"13\":1}}],[\"从而有效利用系统资源\",{\"1\":{\"77\":1}}],[\"从而解除阻塞\",{\"1\":{\"71\":1}}],[\"从而阻塞尝试\",{\"1\":{\"69\":1}}],[\"从而在其他线程中安全地更新\",{\"1\":{\"63\":1}}],[\"从而允许主线程捕获并处理它\",{\"1\":{\"55\":1}}],[\"从而使得\",{\"1\":{\"48\":1}}],[\"从而造成死锁\",{\"1\":{\"31\":1}}],[\"从而引发未定义的结果\",{\"1\":{\"26\":1}}],[\"从而提升程序性能\",{\"1\":{\"11\":1}}],[\"❤️❤️\",{\"1\":{\"77\":1}}],[\"❤️\",{\"1\":{\"26\":1}}],[\"谁先谁后并不会有什么太大影响\",{\"1\":{\"26\":1}}],[\"保有一个\",{\"1\":{\"103\":2}}],[\"保有一个互斥量的引用\",{\"1\":{\"103\":1}}],[\"保有的数据成员\",{\"1\":{\"32\":1}}],[\"保护共享资源\",{\"1\":{\"50\":1}}],[\"保护共享数据并非必须使用互斥量\",{\"1\":{\"34\":1}}],[\"保护共享数据的初始化过程\",{\"0\":{\"34\":1},\"1\":{\"46\":1}}],[\"保护共享数据的其它方案\",{\"1\":{\"25\":1}}],[\"保护共享数据\",{\"0\":{\"30\":1},\"1\":{\"46\":1}}],[\"保护不常更新的数据结构\",{\"0\":{\"35\":1},\"1\":{\"46\":1}}],[\"保证\",{\"1\":{\"83\":1}}],[\"保证了\",{\"1\":{\"37\":1}}],[\"保证写线程的独占访问\",{\"1\":{\"35\":1}}],[\"保证线程安全的一次初始化\",{\"1\":{\"34\":1}}],[\"保证他们的执行\",{\"1\":{\"19\":1}}],[\"保证这里少一次移动构造的开销\",{\"1\":{\"17\":1}}],[\"注\",{\"1\":{\"24\":2,\"73\":4,\"91\":2}}],[\"注意输出的规律\",{\"1\":{\"72\":1}}],[\"注意到了吗\",{\"1\":{\"56\":1}}],[\"注意事项\",{\"0\":{\"39\":1,\"66\":1}}],[\"注意\",{\"0\":{\"51\":1},\"1\":{\"15\":1,\"32\":1,\"61\":1,\"100\":1,\"107\":1,\"108\":1}}],[\"↩︎\",{\"1\":{\"24\":3,\"46\":6,\"73\":5,\"91\":2}}],[\"至少有许多的显著的信息\",{\"1\":{\"111\":1}}],[\"至少使用与了解其设计原理是很简单的\",{\"1\":{\"105\":1}}],[\"至少允许\",{\"1\":{\"69\":1}}],[\"至少还需要学习到使用互斥量来保护共享数据\",{\"1\":{\"24\":1}}],[\"至于下面的判断是因为\",{\"1\":{\"115\":1}}],[\"至于下面的循环等待部分\",{\"1\":{\"109\":1}}],[\"至于到底哪个函数哪个线程会先执行\",{\"1\":{\"28\":1}}],[\"至于到底哪个线程才会成功调用\",{\"1\":{\"27\":1}}],[\"至于\",{\"1\":{\"22\":1}}],[\"至于这个函数产生的异常\",{\"1\":{\"13\":1}}],[\"关系图如下\",{\"1\":{\"109\":1}}],[\"关于这个约束你可能有问题\",{\"1\":{\"100\":1}}],[\"关于提示音的播报\",{\"1\":{\"51\":2}}],[\"关注的是线程之间的数据一致性\",{\"1\":{\"83\":1}}],[\"关联\",{\"1\":{\"54\":4}}],[\"关联的执行线程的\",{\"1\":{\"100\":1}}],[\"关联的\",{\"1\":{\"22\":2}}],[\"关联的线程执行完毕\",{\"1\":{\"10\":1}}],[\"关键还在于其存储的数据成员\",{\"1\":{\"108\":1}}],[\"关键字的使用以及它的作用\",{\"1\":{\"38\":1}}],[\"关键字的使用\",{\"1\":{\"38\":1}}],[\"关键在于理解其设计与概念\",{\"1\":{\"23\":1}}],[\"已隐式删除函数\",{\"1\":{\"100\":1}}],[\"已被唤醒\",{\"1\":{\"80\":1}}],[\"已被处理\",{\"1\":{\"69\":1}}],[\"已存储值\",{\"1\":{\"55\":1}}],[\"已请求停止\",{\"1\":{\"22\":2}}],[\"已经阅读到这里的各位\",{\"1\":{\"113\":1}}],[\"已经脱离了\",{\"1\":{\"80\":1}}],[\"已经存储值或者异常\",{\"1\":{\"55\":1}}],[\"已经没有关联线程资源\",{\"1\":{\"13\":1}}],[\"已经结束\",{\"1\":{\"13\":1}}],[\"源码中其实已经提到了\",{\"1\":{\"109\":1}}],[\"源码中也有这种用法\",{\"1\":{\"104\":1}}],[\"源码的时候提到了\",{\"1\":{\"109\":1}}],[\"源码的时候\",{\"1\":{\"107\":1}}],[\"源码的实现很简单\",{\"1\":{\"101\":1}}],[\"源码如下\",{\"1\":{\"53\":1}}],[\"源码\",{\"1\":{\"25\":1,\"116\":1}}],[\"源码一眼便可发现\",{\"1\":{\"22\":1}}],[\"源码解析详细聊过其不同标准库对其保有的成员不同\",{\"1\":{\"21\":1}}],[\"源码解析\",{\"0\":{\"98\":1,\"106\":1},\"1\":{\"1\":2,\"15\":1,\"18\":1}}],[\"上图是\",{\"1\":{\"108\":1}}],[\"上\",{\"1\":{\"108\":1}}],[\"上实际上就是调用\",{\"1\":{\"101\":1}}],[\"上节我们学习了\",{\"1\":{\"72\":1}}],[\"上面的代码创建了一个异步任务\",{\"1\":{\"63\":1}}],[\"上面这段代码并未出现这三个函数的任何一个调用\",{\"1\":{\"22\":1}}],[\"上需要用户自行下载并安装它们\",{\"1\":{\"51\":1}}],[\"上下载的\",{\"1\":{\"51\":1}}],[\"上工作的\",{\"1\":{\"48\":1}}],[\"上锁互斥量\",{\"1\":{\"48\":2}}],[\"上锁时若抛出异常\",{\"1\":{\"31\":1}}],[\"上锁了\",{\"1\":{\"31\":1}}],[\"上锁\",{\"1\":{\"31\":2}}],[\"上一节的使用互斥量也已经为各位展示了一些\",{\"1\":{\"30\":1}}],[\"上亿的话差不多\",{\"1\":{\"11\":1}}],[\"启用不稳定库功能和实验库功能\",{\"1\":{\"22\":1}}],[\"启动耗时的异步任务\",{\"1\":{\"57\":1}}],[\"启动一个线程进行计算\",{\"1\":{\"55\":1}}],[\"启动一个异步任务\",{\"1\":{\"53\":1}}],[\"启动线程池\",{\"1\":{\"117\":1}}],[\"启动线程执行\",{\"1\":{\"54\":1}}],[\"启动线程\",{\"1\":{\"13\":1,\"15\":2,\"17\":2}}],[\"启动线程后\",{\"1\":{\"13\":1}}],[\"启动新线程\",{\"0\":{\"13\":1}}],[\"截止目前\",{\"1\":{\"22\":1}}],[\"提交到\",{\"1\":{\"118\":1}}],[\"提交任务\",{\"1\":{\"115\":2}}],[\"提高系统的吞吐量和响应时间\",{\"1\":{\"76\":1}}],[\"提高了性能\",{\"1\":{\"76\":1}}],[\"提醒而非互斥\",{\"1\":{\"69\":1}}],[\"提升性能\",{\"1\":{\"40\":1}}],[\"提供构造析构函数\",{\"1\":{\"117\":1}}],[\"提供的线程池实现\",{\"1\":{\"116\":1}}],[\"提供的线程池使用十分简单\",{\"1\":{\"115\":1}}],[\"提供的线程停止功能并不同于常见的\",{\"1\":{\"22\":1}}],[\"提供更高级别的接口和功能\",{\"1\":{\"108\":1}}],[\"提供一个额外的构造函数让构造的时候不上锁\",{\"1\":{\"103\":1}}],[\"提供一个外部函数\",{\"1\":{\"50\":1}}],[\"提供多个\",{\"1\":{\"78\":1}}],[\"提供此函数的\",{\"1\":{\"31\":1}}],[\"提供了更加完善的布尔标志\",{\"1\":{\"78\":1}}],[\"提供了对屏障机制的支持\",{\"1\":{\"70\":1}}],[\"提供了两个信号量类型\",{\"1\":{\"69\":1}}],[\"提供了三个成员函数进行所谓的线程停止\",{\"1\":{\"22\":1}}],[\"提供了一种优雅地请求线程停止的方式\",{\"1\":{\"22\":1}}],[\"提示音的播放显然不能占据业务线程的资源\",{\"1\":{\"50\":1}}],[\"提示\",{\"1\":{\"0\":1}}],[\"首先确定它的数据成员\",{\"1\":{\"117\":1}}],[\"首先是没有必要\",{\"1\":{\"111\":1}}],[\"首先需要了解\",{\"1\":{\"80\":1}}],[\"首先我们要明白\",{\"1\":{\"33\":1}}],[\"首先\",{\"1\":{\"32\":1}}],[\"首先管理类\",{\"1\":{\"28\":1}}],[\"首先顾名思义\",{\"1\":{\"28\":1}}],[\"首先要明确\",{\"1\":{\"22\":1}}],[\"首页\",{\"1\":{\"1\":1}}],[\"位操作系统\",{\"1\":{\"99\":1}}],[\"位环境下\",{\"1\":{\"101\":1}}],[\"位环境\",{\"1\":{\"21\":1}}],[\"位数字\",{\"1\":{\"2\":1}}],[\"先进行一下状态判断\",{\"1\":{\"109\":1}}],[\"先使用锁进行保护\",{\"1\":{\"109\":1}}],[\"先\",{\"1\":{\"101\":1}}],[\"先关联任务\",{\"1\":{\"54\":1}}],[\"先上锁了互斥量\",{\"1\":{\"32\":1}}],[\"先上锁\",{\"1\":{\"31\":2}}],[\"先锁定\",{\"1\":{\"31\":2}}],[\"先看\",{\"1\":{\"28\":1}}],[\"先执行\",{\"1\":{\"26\":1}}],[\"先执行完\",{\"1\":{\"15\":1}}],[\"先前已经提过\",{\"1\":{\"109\":1}}],[\"先前的\",{\"1\":{\"109\":1}}],[\"先前只是为了展示一下显式写明的情况\",{\"1\":{\"76\":1}}],[\"先前提到的静态成员函数\",{\"1\":{\"61\":1}}],[\"先前\",{\"1\":{\"21\":1}}],[\"字节\",{\"1\":{\"21\":1,\"32\":1}}],[\"字符串字面量具有静态存储期\",{\"1\":{\"15\":1}}],[\"字符串字面量的类型是\",{\"1\":{\"15\":1}}],[\"均为\",{\"1\":{\"78\":1}}],[\"均可以通过编译\",{\"1\":{\"72\":1}}],[\"均是如此\",{\"1\":{\"21\":1}}],[\"均会在致谢列表中铭记您的贡献\",{\"1\":{\"0\":1}}],[\"付出额外的开销\",{\"1\":{\"21\":1}}],[\"零开销原则应当很好理解\",{\"1\":{\"23\":1}}],[\"零开销原则\",{\"0\":{\"21\":1},\"1\":{\"21\":1}}],[\"停止线程池\",{\"1\":{\"117\":1}}],[\"停止线程池并等待所有线程结束\",{\"1\":{\"117\":1}}],[\"停止接收新任务\",{\"1\":{\"115\":1}}],[\"停止状态\",{\"1\":{\"24\":1}}],[\"停止\",{\"1\":{\"20\":1}}],[\"管理类\",{\"1\":{\"28\":3,\"103\":1}}],[\"管理的一种标志\",{\"1\":{\"24\":1}}],[\"管理\",{\"1\":{\"20\":1}}],[\"管理线程对象也就是管理线程\",{\"1\":{\"19\":1}}],[\"相对于\",{\"1\":{\"105\":1}}],[\"相对于只在\",{\"1\":{\"48\":1}}],[\"相反\",{\"1\":{\"63\":1}}],[\"相比之下\",{\"1\":{\"59\":1}}],[\"相比于之前\",{\"1\":{\"54\":1}}],[\"相比于\",{\"1\":{\"20\":1}}],[\"相信也不会陌生\",{\"1\":{\"116\":1}}],[\"相信你不会陌生\",{\"1\":{\"109\":1}}],[\"相信你也感受到了\",{\"1\":{\"101\":1}}],[\"相信你注意到了\",{\"1\":{\"19\":1}}],[\"相信这个时候就已经想到了\",{\"1\":{\"35\":1}}],[\"没什么好说的\",{\"1\":{\"113\":1}}],[\"没什么规律\",{\"1\":{\"19\":1}}],[\"没办法直接转换为\",{\"1\":{\"67\":1}}],[\"没办法直接被那样传递使用\",{\"1\":{\"54\":1}}],[\"没提供直接从线程获取返回值的机制\",{\"1\":{\"53\":1}}],[\"没事找事\",{\"1\":{\"34\":1}}],[\"没有要求\",{\"1\":{\"104\":1}}],[\"没有数据成员\",{\"1\":{\"103\":1}}],[\"没有好处不会闲的没事给你指令重排\",{\"1\":{\"82\":1}}],[\"没有读取到数据\",{\"1\":{\"80\":2}}],[\"没有卡界面\",{\"1\":{\"65\":1}}],[\"没有被阻塞\",{\"1\":{\"63\":1}}],[\"没有被移动或绑定到引用\",{\"1\":{\"53\":1}}],[\"没有这么精确\",{\"1\":{\"61\":1}}],[\"没有所有权\",{\"1\":{\"53\":1}}],[\"没有所有权自然构造函数就不会上锁\",{\"1\":{\"32\":1}}],[\"没有直接对应的\",{\"1\":{\"40\":1}}],[\"没有直接管理线程的机制\",{\"1\":{\"12\":1}}],[\"没有线程工作\",{\"1\":{\"31\":1}}],[\"没有线程资源\",{\"1\":{\"17\":1}}],[\"没有关联活跃线程\",{\"1\":{\"17\":1}}],[\"没有问题\",{\"1\":{\"13\":1,\"76\":1}}],[\"没有\",{\"1\":{\"13\":1,\"15\":1,\"83\":1,\"109\":1}}],[\"则抛出future\",{\"1\":{\"110\":1}}],[\"则没有进行重写\",{\"1\":{\"109\":1}}],[\"则又调用了父类\",{\"1\":{\"108\":1}}],[\"则适用于不依赖于\",{\"1\":{\"101\":1}}],[\"则必须用类包装一下才行\",{\"1\":{\"101\":1}}],[\"则进入这个分支\",{\"1\":{\"100\":1}}],[\"则表示线程已成功启动\",{\"1\":{\"100\":1}}],[\"则需要注意其复杂性和难以观察的特性\",{\"1\":{\"82\":1}}],[\"则编译错误\",{\"1\":{\"76\":1}}],[\"则将出现数据竞争\",{\"1\":{\"73\":1,\"80\":2}}],[\"则返回\",{\"1\":{\"60\":1}}],[\"则\",{\"1\":{\"55\":1}}],[\"则可以通过编译\",{\"1\":{\"53\":1}}],[\"则是安全的\",{\"1\":{\"52\":1,\"57\":1}}],[\"则线程保持阻塞状态\",{\"1\":{\"50\":1}}],[\"则旧的线程局部变量仍然存在\",{\"1\":{\"39\":1}}],[\"则解锁互斥量\",{\"1\":{\"36\":1}}],[\"则在重抛前对任何已锁的对象调用\",{\"1\":{\"31\":1}}],[\"则要上锁\",{\"1\":{\"31\":1}}],[\"则毫无意义\",{\"1\":{\"31\":1}}],[\"则不会阻塞当前线程\",{\"1\":{\"29\":1}}],[\"则不需要最后的循环\",{\"1\":{\"19\":1}}],[\"则构造函数不会上锁\",{\"1\":{\"28\":1}}],[\"则会产生一个编译错误\",{\"1\":{\"15\":1}}],[\"退出循环\",{\"1\":{\"77\":1}}],[\"退出\",{\"1\":{\"19\":1}}],[\"~scoped\",{\"1\":{\"103\":2,\"104\":1}}],[\"~trivial\",{\"1\":{\"76\":1}}],[\"~threadpool\",{\"1\":{\"117\":1}}],[\"~thread\",{\"1\":{\"13\":1,\"14\":1,\"115\":1}}],[\"~async\",{\"1\":{\"65\":1}}],[\"~audioplayer\",{\"1\":{\"50\":1}}],[\"~x\",{\"1\":{\"39\":1}}],[\"~unique\",{\"1\":{\"32\":1}}],[\"~lock\",{\"1\":{\"28\":1}}],[\"~jthread\",{\"1\":{\"22\":1}}],[\"~joining\",{\"1\":{\"19\":1}}],[\"实例是同一对象的副本且共享所有权也是如此\",{\"1\":{\"80\":1}}],[\"实例化\",{\"1\":{\"76\":1,\"100\":1}}],[\"实时系统或者其它需要高并发性能的场景中\",{\"1\":{\"76\":1}}],[\"实践建议\",{\"0\":{\"68\":1}}],[\"实现一个简易的线程池\",{\"1\":{\"118\":1}}],[\"实现一个普通的能够满足日常开发需求的线程池实际上非常简单\",{\"1\":{\"117\":1}}],[\"实现线程池\",{\"0\":{\"117\":1}}],[\"实现中将类型先经过\",{\"1\":{\"101\":1}}],[\"实现中可能也是使用到了\",{\"1\":{\"98\":1,\"107\":1}}],[\"实现中都是必然在线程中执行任务\",{\"1\":{\"53\":1}}],[\"实现的\",{\"1\":{\"98\":1,\"102\":1}}],[\"实现自旋锁\",{\"1\":{\"77\":1}}],[\"实现选择的执行方式\",{\"1\":{\"53\":1}}],[\"实现异步任务的示例\",{\"1\":{\"47\":1,\"62\":1}}],[\"实现\",{\"0\":{\"19\":1},\"1\":{\"109\":1}}],[\"实际使用了虚函数\",{\"1\":{\"111\":1}}],[\"实际存储数据的队列\",{\"1\":{\"49\":1}}],[\"实际上还需要调用了\",{\"1\":{\"109\":1}}],[\"实际上就是使用条件变量了\",{\"1\":{\"48\":1}}],[\"实际上并没有按引用传递\",{\"1\":{\"15\":1}}],[\"实际需要的是一个\",{\"1\":{\"15\":1}}],[\"后文中会提到\",{\"1\":{\"86\":1}}],[\"后续还会详细展开内存模型的问题\",{\"1\":{\"74\":1}}],[\"后台执行音频任务的专用线程\",{\"1\":{\"50\":1}}],[\"后者有更高的性能优势\",{\"1\":{\"35\":1}}],[\"后\",{\"1\":{\"18\":1,\"109\":1}}],[\"后正常析构\",{\"1\":{\"17\":2}}],[\"后缀\",{\"1\":{\"2\":1,\"48\":1}}],[\"后缀名\",{\"1\":{\"2\":1}}],[\"形参包展开用\",{\"1\":{\"104\":1}}],[\"形参包元素数量为一的偏特化的唯一区别\",{\"1\":{\"104\":1}}],[\"形参包元素数量为一的偏特化\",{\"1\":{\"104\":1}}],[\"形参\",{\"1\":{\"17\":2}}],[\"具有不同的实现逻辑和使用场景\",{\"1\":{\"108\":1}}],[\"具有\",{\"1\":{\"35\":1}}],[\"具有线程资源的所有权\",{\"1\":{\"17\":1}}],[\"具体类型根据类型形参包决定\",{\"1\":{\"103\":1}}],[\"具体的读者会在学习中感受到的\",{\"1\":{\"94\":1}}],[\"具体可参见\",{\"1\":{\"77\":1}}],[\"具体来说\",{\"1\":{\"26\":1,\"50\":1,\"83\":1}}],[\"具体什么时候执行\",{\"1\":{\"15\":1}}],[\"具体如何\",{\"1\":{\"14\":1}}],[\"转移线程的所有权\",{\"1\":{\"100\":1}}],[\"转移线程资源的所有权到\",{\"1\":{\"17\":1}}],[\"转移共享状态\",{\"1\":{\"57\":1}}],[\"转移\",{\"1\":{\"33\":1,\"57\":1}}],[\"转移所有权\",{\"0\":{\"17\":1}}],[\"转换为了一个右值表达式\",{\"1\":{\"17\":1}}],[\"转换为\",{\"1\":{\"15\":1}}],[\"转换为std\",{\"1\":{\"15\":1}}],[\"输出\",{\"1\":{\"72\":1}}],[\"输出语句\",{\"1\":{\"27\":1}}],[\"输出等待结束后的时间\",{\"1\":{\"16\":1}}],[\"输出等待的时间点\",{\"1\":{\"16\":1}}],[\"输出当前时间\",{\"1\":{\"16\":1}}],[\"输出的值会为\",{\"1\":{\"11\":1}}],[\"5f\",{\"1\":{\"76\":3}}],[\"59\",{\"1\":{\"72\":1}}],[\"58\",{\"1\":{\"72\":1}}],[\"57\",{\"1\":{\"72\":1}}],[\"56\",{\"1\":{\"72\":1}}],[\"55\",{\"1\":{\"72\":1}}],[\"54\",{\"1\":{\"72\":1}}],[\"53\",{\"1\":{\"72\":1}}],[\"52\",{\"1\":{\"72\":1}}],[\"51\",{\"1\":{\"72\":1}}],[\"5px\",{\"1\":{\"65\":1}}],[\"500ms\",{\"1\":{\"61\":2}}],[\"500\",{\"1\":{\"61\":3}}],[\"50\",{\"1\":{\"54\":1,\"65\":2,\"72\":1,\"76\":1}}],[\"50ms\",{\"1\":{\"50\":1}}],[\"5s\",{\"1\":{\"16\":1,\"80\":1}}],[\"5\",{\"1\":{\"16\":1,\"22\":1,\"45\":1,\"48\":3,\"49\":2,\"55\":1,\"59\":1,\"69\":1,\"71\":1,\"72\":2,\"79\":1,\"116\":1,\"117\":2}}],[\"秒最终的值是\",{\"1\":{\"60\":1}}],[\"秒一次\",{\"1\":{\"59\":1}}],[\"秒就是\",{\"1\":{\"16\":1}}],[\"秒\",{\"1\":{\"16\":1,\"22\":1,\"48\":1,\"59\":2,\"60\":2}}],[\"使我们能够无需关心底层硬件环境就编写出跨平台的应用程序\",{\"1\":{\"86\":1}}],[\"使得\",{\"1\":{\"82\":1}}],[\"使得能异步调用它\",{\"1\":{\"54\":1}}],[\"使受保护数据传递给外部\",{\"1\":{\"30\":1}}],[\"使当前线程执行停止到指定的时间点\",{\"1\":{\"16\":1}}],[\"使当前线程停止执行指定时间\",{\"1\":{\"16\":1}}],[\"使用与创建线程相同的优先级\",{\"1\":{\"116\":1}}],[\"使用方法\",{\"1\":{\"115\":1}}],[\"使用一下市面上常见的那些\",{\"1\":{\"114\":1}}],[\"使用到了自家的\",{\"1\":{\"111\":1}}],[\"使用了折叠表达式展开形参包\",{\"1\":{\"104\":1}}],[\"使用了\",{\"1\":{\"104\":1}}],[\"使用标准库的内容很多时候不加\",{\"1\":{\"100\":1}}],[\"使用起来也都十分的简单\",{\"1\":{\"80\":1}}],[\"使用示例如下\",{\"1\":{\"79\":1}}],[\"使用默认的\",{\"1\":{\"77\":1}}],[\"使用更高效的同步机制\",{\"1\":{\"76\":1}}],[\"使用不同的数据结构\",{\"1\":{\"76\":1}}],[\"使用也十分的简单\",{\"1\":{\"72\":1}}],[\"使用功能尽可能少的设施有助于开发者阅读代码理解含义\",{\"1\":{\"71\":1}}],[\"使用条件变量监控队列是否为空\",{\"1\":{\"50\":1}}],[\"使用条件变量实现后台提示音播放\",{\"0\":{\"50\":1}}],[\"使用qt+cmake\",{\"1\":{\"47\":1}}],[\"使用读写锁\",{\"1\":{\"46\":1}}],[\"使用它可以将之前使用\",{\"1\":{\"32\":1}}],[\"使用固定顺序获取锁\",{\"1\":{\"31\":1}}],[\"使用互斥量创建了一个独占锁\",{\"1\":{\"48\":1}}],[\"使用互斥量\",{\"0\":{\"27\":1}}],[\"使用互斥量保护共享数据\",{\"1\":{\"25\":1}}],[\"使用互斥量可以解决这些问题\",{\"1\":{\"19\":1}}],[\"使用我们这节实现的\",{\"1\":{\"19\":1}}],[\"使用容器管理线程对象\",{\"1\":{\"19\":1}}],[\"使用\",{\"0\":{\"52\":1,\"55\":1},\"1\":{\"11\":1,\"13\":2,\"16\":3,\"22\":1,\"24\":1,\"28\":1,\"30\":1,\"31\":2,\"32\":2,\"34\":3,\"38\":4,\"39\":2,\"46\":1,\"48\":1,\"53\":2,\"59\":1,\"66\":1,\"67\":1,\"72\":2,\"76\":3,\"77\":1,\"78\":1,\"80\":1,\"83\":1,\"94\":1,\"100\":2,\"101\":2,\"115\":2}}],[\"使用硬件提高数据处理速度时\",{\"1\":{\"7\":1}}],[\"使用线程池的益处我们已经加粗了\",{\"1\":{\"113\":1}}],[\"使用线程也就是代表使用\",{\"1\":{\"9\":1}}],[\"使用线程\",{\"0\":{\"9\":1},\"1\":{\"1\":1,\"24\":1}}],[\"建议学习现代c++模板教程\",{\"1\":{\"102\":1}}],[\"建议下载并运行此项目\",{\"1\":{\"68\":1}}],[\"建议不要将线程局部变量与\",{\"1\":{\"39\":1}}],[\"建议阅读std\",{\"1\":{\"31\":1}}],[\"建议你多思考\",{\"1\":{\"24\":1}}],[\"建议实现重新调度各执行线程\",{\"1\":{\"16\":1}}],[\"建议使用时间字面量\",{\"1\":{\"16\":1}}],[\"建议使用\",{\"1\":{\"13\":1,\"22\":1}}],[\"显式转换为\",{\"1\":{\"104\":1}}],[\"显式转换可以由\",{\"1\":{\"60\":1}}],[\"显式将\",{\"1\":{\"15\":1}}],[\"显而易见\",{\"1\":{\"48\":1}}],[\"显然我们的类型满足要求\",{\"1\":{\"76\":1}}],[\"显然逻辑不对\",{\"1\":{\"13\":1}}],[\"显然\",{\"1\":{\"13\":1,\"75\":2,\"80\":1}}],[\"下节\",{\"1\":{\"77\":1}}],[\"下一节我们来看看它是如何工作的\",{\"1\":{\"78\":1}}],[\"下一个阶段的计数会重置为\",{\"1\":{\"72\":1}}],[\"下一章\",{\"1\":{\"46\":1}}],[\"下可能为\",{\"1\":{\"15\":1}}],[\"下面我的\",{\"1\":{\"13\":1}}],[\"确保所有线程都已终止\",{\"1\":{\"115\":1}}],[\"确保异步任务执行完毕\",{\"1\":{\"110\":1}}],[\"确保只有在条件满足时才会继续执行\",{\"1\":{\"109\":1}}],[\"确保即使存在\",{\"1\":{\"83\":1}}],[\"确保多线程环境下的正确性\",{\"1\":{\"82\":1}}],[\"确保传入的函数对象是\",{\"1\":{\"72\":1}}],[\"确保\",{\"1\":{\"63\":1}}],[\"确保在多线程环境下的数据同步\",{\"1\":{\"48\":1}}],[\"确保全局对象的线程安全访问通常需要额外的同步措施\",{\"1\":{\"37\":1}}],[\"确保每个对象的互斥量都锁住自己要保护的区域\",{\"1\":{\"31\":1}}],[\"确保实参在按值传递时会退化\",{\"1\":{\"15\":1}}],[\"确保线程池的完全清理和资源的正确释放\",{\"1\":{\"115\":1}}],[\"确保线程池至少有\",{\"1\":{\"115\":1}}],[\"确保线程执行完成\",{\"1\":{\"14\":1}}],[\"确保线程正常执行完成\",{\"1\":{\"13\":1}}],[\"动态\",{\"1\":{\"15\":1}}],[\"被向后移植到了\",{\"1\":{\"98\":1,\"107\":1}}],[\"被引入\",{\"1\":{\"92\":1}}],[\"被清空\",{\"1\":{\"57\":1}}],[\"被移动的\",{\"1\":{\"53\":1}}],[\"被设置为\",{\"1\":{\"48\":1}}],[\"被唤醒\",{\"1\":{\"48\":1}}],[\"被称作\",{\"1\":{\"34\":1}}],[\"被\",{\"1\":{\"27\":1}}],[\"被线程对象保存\",{\"1\":{\"15\":1}}],[\"被销毁\",{\"1\":{\"13\":1}}],[\"或许\",{\"1\":{\"104\":1}}],[\"或其它成员函数也可能修改共享数据\",{\"1\":{\"46\":1}}],[\"或\",{\"1\":{\"21\":1,\"22\":1,\"26\":2,\"31\":1,\"33\":1,\"38\":1,\"49\":2,\"53\":2,\"60\":1,\"72\":1,\"73\":1,\"76\":1,\"78\":1,\"80\":1,\"108\":2}}],[\"或者其它扩展讲解\",{\"1\":{\"119\":1}}],[\"或者其它软件网站将音频转换为支持的格式\",{\"1\":{\"51\":1}}],[\"或者析构自动调用\",{\"1\":{\"115\":1}}],[\"或者两者的组合\",{\"1\":{\"108\":1}}],[\"或者直接在捐赠初始记录名单中进行评论\",{\"1\":{\"97\":1}}],[\"或者直接被称作\",{\"1\":{\"27\":1}}],[\"或者联系我\",{\"1\":{\"97\":1}}],[\"或者隐式转换\",{\"1\":{\"78\":1}}],[\"或者延迟执行可以提高性能或节省资源\",{\"1\":{\"53\":1}}],[\"或者任务已经执行完\",{\"1\":{\"53\":1}}],[\"或者报错了也会有提示音说明\",{\"1\":{\"50\":1}}],[\"或者依赖各家编译器的扩展\",{\"1\":{\"38\":1}}],[\"或者外部的\",{\"1\":{\"37\":1}}],[\"或者在同一信号处理函数中执行\",{\"1\":{\"26\":1}}],[\"或者\",{\"1\":{\"21\":1,\"60\":1,\"95\":1,\"109\":1}}],[\"或者以任何形式转换到a\",{\"1\":{\"15\":1}}],[\"或某个函数类型\",{\"1\":{\"13\":1}}],[\"x>\",{\"1\":{\"100\":1}}],[\"x2\",{\"1\":{\"100\":1}}],[\"x86\",{\"1\":{\"82\":1,\"86\":6,\"94\":1}}],[\"xxx\",{\"1\":{\"76\":1}}],[\"xx\",{\"1\":{\"49\":1}}],[\"x64\",{\"1\":{\"32\":1}}],[\"x\",{\"1\":{\"15\":15,\"31\":11,\"32\":2,\"37\":4,\"39\":10,\"46\":1,\"53\":6,\"59\":2,\"76\":11,\"78\":2,\"79\":4,\"83\":5,\"100\":19,\"117\":7}}],[\"解引用指针\",{\"1\":{\"100\":1}}],[\"解引用\",{\"1\":{\"80\":1}}],[\"解除阻塞时重置计数并调用函数对象\",{\"1\":{\"72\":1}}],[\"解除阻塞时就重置计数并调用函数对象\",{\"1\":{\"72\":1}}],[\"解决\",{\"1\":{\"52\":1}}],[\"解决方案\",{\"1\":{\"15\":1}}],[\"解决方法很简单\",{\"1\":{\"13\":1,\"48\":1}}],[\"解释这段代码最简单的方式就是直接展示标准库的源码\",{\"1\":{\"32\":1}}],[\"解释清楚\",{\"1\":{\"15\":1}}],[\"解锁并释放所有权\",{\"1\":{\"32\":1}}],[\"解锁互斥量\",{\"1\":{\"32\":1,\"36\":1,\"48\":2}}],[\"解锁\",{\"1\":{\"28\":1,\"29\":1,\"31\":3}}],[\"记住\",{\"1\":{\"15\":1}}],[\"o\",{\"1\":{\"115\":1}}],[\"override\",{\"1\":{\"108\":1,\"109\":2,\"116\":1}}],[\"of\",{\"1\":{\"100\":1}}],[\"ownership\",{\"1\":{\"100\":1}}],[\"owns\",{\"1\":{\"32\":11,\"33\":3}}],[\"osyncstream\",{\"1\":{\"72\":6,\"80\":2,\"117\":1}}],[\"or\",{\"1\":{\"56\":3,\"109\":5}}],[\"ordered\",{\"1\":{\"86\":2}}],[\"order\",{\"1\":{\"26\":1,\"76\":13,\"77\":6,\"78\":6,\"79\":1,\"82\":1,\"83\":3,\"84\":30,\"86\":2,\"94\":1}}],[\"ok\",{\"1\":{\"53\":1}}],[\"ogg\",{\"1\":{\"51\":11}}],[\"openmp\",{\"1\":{\"70\":1}}],[\"openal\",{\"1\":{\"51\":1}}],[\"openfromfile\",{\"1\":{\"50\":1}}],[\"operation\",{\"1\":{\"32\":1}}],[\"operator+=\",{\"1\":{\"79\":1}}],[\"operator<<\",{\"1\":{\"26\":1,\"72\":2}}],[\"operator=\",{\"1\":{\"14\":1,\"19\":1,\"28\":1,\"53\":1,\"76\":2,\"78\":1,\"80\":1,\"91\":1,\"95\":1,\"103\":3,\"108\":2,\"109\":2,\"117\":1}}],[\"operator\",{\"1\":{\"13\":5,\"37\":9,\"53\":1,\"54\":3,\"76\":1,\"79\":1,\"100\":1}}],[\"on\",{\"1\":{\"115\":1,\"117\":10}}],[\"one\",{\"1\":{\"48\":3,\"49\":1,\"50\":1,\"60\":6,\"80\":2,\"117\":1}}],[\"once为真并且结果已被检索过\",{\"1\":{\"110\":1}}],[\"once\",{\"1\":{\"34\":13,\"46\":1,\"108\":2,\"109\":8}}],[\"only>\",{\"1\":{\"53\":1}}],[\"only\",{\"1\":{\"15\":8,\"53\":12,\"56\":1,\"95\":9,\"108\":2,\"109\":8,\"110\":1}}],[\"occur\",{\"1\":{\"32\":1}}],[\"other\",{\"1\":{\"19\":6,\"33\":5,\"76\":2,\"100\":6,\"108\":3,\"109\":2}}],[\"object\",{\"1\":{\"31\":8,\"32\":2,\"53\":1,\"65\":1,\"100\":1,\"108\":4,\"109\":2}}],[\"obj\",{\"1\":{\"15\":2,\"104\":4}}],[\"左值引用没办法引用右值表达式\",{\"1\":{\"15\":1,\"53\":1}}],[\"内容并不构成太大的难度\",{\"1\":{\"118\":1}}],[\"内部使用到了互斥量\",{\"1\":{\"111\":1}}],[\"内部其实也有父类指针指向子类对象\",{\"1\":{\"111\":1}}],[\"内部会将保有的参数副本转换为右值表达式进行传递\",{\"1\":{\"15\":1,\"18\":1,\"53\":1,\"101\":1}}],[\"内核版本历史\",{\"1\":{\"46\":1}}],[\"内核中的时间间隔计时器默认每隔\",{\"1\":{\"61\":1}}],[\"内核中\",{\"1\":{\"40\":2}}],[\"内存池\",{\"1\":{\"113\":1}}],[\"内存一致性模型\",{\"1\":{\"86\":1}}],[\"内存次序错误的使用难以察觉\",{\"1\":{\"82\":1}}],[\"内存次序是非常底层知识\",{\"1\":{\"82\":1}}],[\"内存次序\",{\"0\":{\"81\":1}}],[\"内存序提供了操作之间的顺序关系\",{\"1\":{\"83\":1}}],[\"内存序\",{\"1\":{\"77\":2}}],[\"内存模型是软件与实现之间的一种约定契约\",{\"1\":{\"86\":1}}],[\"内存模型确保程序的行为在并发环境下是可预测的\",{\"1\":{\"74\":1}}],[\"内存模型定义了多线程程序中\",{\"1\":{\"74\":1}}],[\"内存模型与原子操作\",{\"0\":{\"74\":1},\"1\":{\"1\":1,\"73\":1}}],[\"内存分配\",{\"1\":{\"37\":1}}],[\"内存对齐\",{\"1\":{\"32\":1}}],[\"呢\",{\"1\":{\"15\":1}}],[\"顾名思义\",{\"1\":{\"15\":1}}],[\"引用的就是\",{\"1\":{\"15\":2}}],[\"引用\",{\"1\":{\"15\":2,\"78\":1}}],[\"引入过多的源码实现等等从头讲解\",{\"1\":{\"109\":1}}],[\"引入头文件时需要在尖括号或引号前后加空格\",{\"1\":{\"95\":1}}],[\"引入了一个\",{\"1\":{\"116\":1}}],[\"引入了一个偏特化版本\",{\"1\":{\"80\":1}}],[\"引入了协程语法\",{\"1\":{\"92\":1}}],[\"引入了原子类型\",{\"1\":{\"75\":1}}],[\"引入了信号量\",{\"1\":{\"69\":1}}],[\"引入了thread\",{\"1\":{\"38\":1}}],[\"引入\",{\"1\":{\"11\":1,\"21\":1,\"53\":1}}],[\"引入的类模板\",{\"1\":{\"102\":1}}],[\"引入的两种新的并发设施\",{\"1\":{\"73\":1}}],[\"引入的新的同步设施\",{\"1\":{\"47\":1}}],[\"引入的一种通用互斥包装器\",{\"1\":{\"32\":1}}],[\"引入的求和算法\",{\"1\":{\"11\":1}}],[\"引入的\",{\"1\":{\"11\":1,\"13\":1,\"20\":1,\"24\":1,\"72\":1,\"76\":1,\"98\":1}}],[\"引入线程支持头文件\",{\"1\":{\"10\":1}}],[\"打印了元组所有的元素\",{\"1\":{\"104\":1}}],[\"打印函数\",{\"1\":{\"28\":1}}],[\"打印的时候\",{\"1\":{\"28\":1}}],[\"打印的是乱序的\",{\"1\":{\"19\":1}}],[\"打印的地址截然不同\",{\"1\":{\"15\":1}}],[\"打印\",{\"1\":{\"17\":2,\"22\":1,\"28\":1}}],[\"打印地址完全相同\",{\"1\":{\"15\":1}}],[\"打印日志\",{\"1\":{\"14\":1}}],[\"需要通过如\",{\"1\":{\"107\":1}}],[\"需要注意\",{\"1\":{\"101\":1}}],[\"需要注意的是\",{\"1\":{\"15\":1,\"39\":1,\"51\":1,\"56\":1,\"107\":1}}],[\"需要传入一个索引\",{\"1\":{\"100\":1}}],[\"需要传递一个\",{\"1\":{\"60\":1}}],[\"需要详细讲解\",{\"1\":{\"100\":1}}],[\"需要开发者使用同步原语来显式地控制内存操作的顺序和可见性\",{\"1\":{\"82\":1}}],[\"需要在循环中重试\",{\"1\":{\"78\":1}}],[\"需要使用异步任务来减轻主线程的压力\",{\"1\":{\"62\":1}}],[\"需要链接\",{\"1\":{\"61\":1}}],[\"需要限定线程等待的时间\",{\"1\":{\"58\":1}}],[\"需要确保没有其他线程正在执行\",{\"1\":{\"49\":1}}],[\"需要设置\",{\"1\":{\"38\":1}}],[\"需要进行额外的同步措施进行保护\",{\"1\":{\"37\":1}}],[\"需要进行回溯和重置状态\",{\"1\":{\"34\":1}}],[\"需要进行保护\",{\"1\":{\"28\":1}}],[\"需要遥控器和玩具车才能玩\",{\"1\":{\"31\":1}}],[\"需要更高的标准会进行强调\",{\"1\":{\"0\":1}}],[\"传递一个\",{\"1\":{\"108\":1}}],[\"传递返回值的地址\",{\"1\":{\"108\":1}}],[\"传递返回值\",{\"1\":{\"108\":1,\"110\":1}}],[\"传递给线程的参数为\",{\"1\":{\"100\":1}}],[\"传递给\",{\"1\":{\"100\":1}}],[\"传递给这个函数\",{\"1\":{\"15\":1}}],[\"传递\",{\"1\":{\"53\":1,\"109\":1}}],[\"传递了一个恶意的函数\",{\"1\":{\"30\":1}}],[\"传递的可调用对象执行结果\",{\"1\":{\"108\":1}}],[\"传递的\",{\"1\":{\"22\":1}}],[\"传递参数一节中的\",{\"1\":{\"18\":1,\"101\":1}}],[\"传递参数\",{\"0\":{\"15\":1},\"1\":{\"18\":1,\"71\":1}}],[\"传入的可调用对象\",{\"1\":{\"100\":1}}],[\"传入了一个谓词\",{\"1\":{\"48\":1}}],[\"传入可调用对象以及参数\",{\"1\":{\"17\":1}}],[\"传入成员函数指针\",{\"1\":{\"15\":1}}],[\"传入\",{\"1\":{\"13\":1,\"100\":1}}],[\"严格来说其实这里倒也不算\",{\"1\":{\"14\":1}}],[\"单线程能不能指令重排\",{\"1\":{\"82\":1}}],[\"单看它提供的修改接口\",{\"1\":{\"80\":1}}],[\"单次使用的线程屏障\",{\"1\":{\"70\":1,\"71\":1}}],[\"单例\",{\"1\":{\"34\":1}}],[\"单纯的做好\",{\"1\":{\"14\":1}}],[\"单核机器的任务切换\",{\"1\":{\"6\":1}}],[\"看似有一些没有使用\",{\"1\":{\"60\":1}}],[\"看到无序的输出\",{\"1\":{\"37\":1}}],[\"看到它一定打印\",{\"1\":{\"14\":1}}],[\"看起来一点问题也没有\",{\"1\":{\"30\":1}}],[\"看一遍描述就可以了\",{\"1\":{\"27\":1}}],[\"看情况分析\",{\"1\":{\"14\":1}}],[\"难以掌控\",{\"1\":{\"14\":1}}],[\"前三个构造函数都没啥要特别聊的\",{\"1\":{\"100\":1}}],[\"前面了\",{\"1\":{\"82\":2}}],[\"前面的内容也都提到了\",{\"1\":{\"37\":1}}],[\"前者可以在阶段完成之后将计数重置为构造时传递的值\",{\"1\":{\"72\":1}}],[\"前者是需要指定等待一段时间\",{\"1\":{\"58\":1}}],[\"前者支持更多的操作方式\",{\"1\":{\"35\":1}}],[\"前提是你捕获了这个异常\",{\"1\":{\"14\":1}}],[\"前言\",{\"0\":{\"4\":1,\"82\":1,\"107\":1,\"113\":1}}],[\"抛出一个\",{\"1\":{\"100\":1}}],[\"抛出\",{\"1\":{\"56\":1}}],[\"抛出了一个异常\",{\"1\":{\"14\":1}}],[\"抛出异常并设置\",{\"1\":{\"55\":4}}],[\"抛出异常\",{\"1\":{\"13\":2,\"53\":1}}],[\"抛出异常的代码\",{\"1\":{\"13\":1}}],[\"析构自动\",{\"1\":{\"117\":2}}],[\"析构解锁\",{\"1\":{\"103\":1,\"104\":1}}],[\"析构同理\",{\"1\":{\"37\":1}}],[\"析构函数并不会等待所有任务执行完毕\",{\"1\":{\"115\":1}}],[\"析构函数先调用了\",{\"1\":{\"115\":1}}],[\"析构函数就要稍微聊一下了\",{\"1\":{\"104\":1}}],[\"析构函数将阻塞\",{\"1\":{\"53\":1}}],[\"析构函数\",{\"1\":{\"37\":1,\"117\":1}}],[\"析构函数不会再\",{\"1\":{\"32\":1}}],[\"析构函数中解锁\",{\"1\":{\"28\":1}}],[\"析构函数释放资源\",{\"1\":{\"14\":1}}],[\"析构\",{\"1\":{\"14\":2,\"46\":1}}],[\"gthread\",{\"1\":{\"101\":4}}],[\"gthreads\",{\"1\":{\"101\":2}}],[\"glibcxx\",{\"1\":{\"101\":2}}],[\"globalinstance\",{\"1\":{\"116\":2}}],[\"global\",{\"1\":{\"38\":5}}],[\"gen\",{\"1\":{\"69\":2}}],[\"get`\",{\"1\":{\"109\":1}}],[\"get\",{\"1\":{\"104\":1}}],[\"get<>\",{\"1\":{\"100\":1}}],[\"get<\",{\"1\":{\"100\":2,\"101\":1}}],[\"getstatus\",{\"1\":{\"50\":1}}],[\"getspecific\",{\"1\":{\"38\":1}}],[\"get\",{\"1\":{\"16\":5,\"17\":1,\"19\":4,\"22\":4,\"27\":2,\"28\":1,\"33\":2,\"34\":2,\"35\":1,\"36\":2,\"51\":2,\"53\":14,\"54\":11,\"55\":8,\"56\":15,\"57\":9,\"60\":2,\"67\":1,\"80\":5,\"100\":10,\"104\":1,\"108\":20,\"109\":33,\"110\":2,\"111\":1,\"115\":1,\"117\":3}}],[\"grey\",{\"1\":{\"65\":1}}],[\"gui\",{\"1\":{\"63\":1}}],[\"guard\",{\"1\":{\"108\":2}}],[\"risc\",{\"1\":{\"86\":7}}],[\"rule\",{\"1\":{\"82\":1}}],[\"runnable\",{\"1\":{\"116\":1}}],[\"running\",{\"1\":{\"108\":2,\"109\":2,\"115\":1,\"117\":10}}],[\"runtime\",{\"1\":{\"34\":1,\"55\":2,\"117\":1}}],[\"run\",{\"1\":{\"15\":7,\"108\":3,\"109\":11,\"110\":1,\"116\":3}}],[\"rd\",{\"1\":{\"69\":2}}],[\"raw\",{\"1\":{\"108\":4,\"109\":1,\"110\":2}}],[\"rawvals\",{\"1\":{\"100\":2}}],[\"random\",{\"1\":{\"69\":1}}],[\"radius\",{\"1\":{\"65\":1}}],[\"ratio\",{\"1\":{\"59\":1,\"60\":7}}],[\"ratio<3600>>\",{\"1\":{\"60\":1}}],[\"ratio<60>>\",{\"1\":{\"59\":1,\"60\":1}}],[\"ratio<60>\",{\"1\":{\"59\":1}}],[\"ratio<5\",{\"1\":{\"59\":1}}],[\"ratio<12>>>\",{\"1\":{\"60\":1}}],[\"ratio<1>\",{\"1\":{\"59\":1,\"60\":2}}],[\"ratio<1>>\",{\"1\":{\"59\":1,\"60\":1}}],[\"ratio<1\",{\"1\":{\"59\":2,\"60\":1,\"61\":1}}],[\"raii\",{\"0\":{\"14\":1},\"1\":{\"14\":3,\"20\":1,\"28\":1,\"31\":1}}],[\"rhs\",{\"1\":{\"31\":15,\"32\":4}}],[\"rvo\",{\"1\":{\"17\":1}}],[\"rt\",{\"1\":{\"17\":6}}],[\"r\",{\"1\":{\"15\":6,\"54\":1,\"77\":2}}],[\"reinterpret\",{\"1\":{\"100\":2}}],[\"remove\",{\"1\":{\"100\":2,\"104\":1}}],[\"remainder\",{\"1\":{\"11\":5,\"54\":2}}],[\"re\",{\"1\":{\"77\":1}}],[\"rel\",{\"1\":{\"76\":1,\"78\":1,\"84\":4}}],[\"relaxed\",{\"1\":{\"76\":3,\"84\":5}}],[\"release\",{\"1\":{\"69\":5,\"76\":2,\"77\":3,\"78\":2,\"79\":1,\"83\":1,\"84\":4,\"100\":2}}],[\"repeat\",{\"1\":{\"77\":1}}],[\"rep\",{\"1\":{\"59\":1,\"60\":1}}],[\"requirements\",{\"1\":{\"109\":1}}],[\"requires\",{\"1\":{\"54\":1}}],[\"request\",{\"1\":{\"22\":5,\"69\":5}}],[\"requested\",{\"1\":{\"22\":2}}],[\"rettype\",{\"1\":{\"117\":1}}],[\"rethrow\",{\"1\":{\"109\":2}}],[\"retrieved设置为true\",{\"1\":{\"110\":1}}],[\"retrieved异常\",{\"1\":{\"110\":1}}],[\"retrieved`\",{\"1\":{\"109\":1}}],[\"retrieved\",{\"1\":{\"108\":14,\"109\":4}}],[\"ret>\",{\"1\":{\"53\":3,\"108\":10}}],[\"ret\",{\"1\":{\"53\":1,\"108\":9,\"117\":2}}],[\"returning\",{\"1\":{\"108\":3}}],[\"return\",{\"1\":{\"11\":2,\"13\":1,\"17\":2,\"19\":5,\"31\":3,\"32\":1,\"33\":2,\"34\":1,\"35\":1,\"37\":1,\"48\":2,\"49\":4,\"50\":2,\"53\":7,\"54\":7,\"56\":6,\"57\":3,\"60\":1,\"61\":2,\"72\":1,\"80\":1,\"92\":1,\"95\":1,\"100\":2,\"104\":2,\"108\":14,\"109\":15,\"115\":1,\"117\":4}}],[\"reader\",{\"1\":{\"80\":5}}],[\"read\",{\"1\":{\"76\":1}}],[\"ready\",{\"1\":{\"56\":3,\"60\":2,\"108\":4,\"109\":9}}],[\"reactioncupinsufficient\",{\"1\":{\"51\":1}}],[\"reagentexpired\",{\"1\":{\"51\":1}}],[\"reagentinsufficient\",{\"1\":{\"51\":1}}],[\"realloc\",{\"1\":{\"37\":1}}],[\"recursive\",{\"1\":{\"36\":12,\"46\":1}}],[\"ref\",{\"1\":{\"80\":1}}],[\"reference\",{\"1\":{\"15\":5,\"104\":1,\"108\":1}}],[\"ref\",{\"1\":{\"15\":8,\"18\":1,\"28\":2,\"53\":4,\"57\":2,\"78\":2,\"80\":3,\"101\":2,\"117\":1}}],[\"result\",{\"1\":{\"53\":1,\"55\":2,\"56\":2,\"57\":2,\"61\":2,\"108\":15,\"109\":6,\"110\":15,\"117\":2}}],[\"results\",{\"1\":{\"11\":5}}],[\"res\",{\"1\":{\"49\":2}}],[\"reset\",{\"1\":{\"34\":3,\"80\":1,\"91\":1}}],[\"resource\",{\"1\":{\"14\":1,\"32\":1,\"34\":4,\"100\":2}}],[\"reduce\",{\"1\":{\"11\":1}}],[\"块中的代码抛出了异常\",{\"1\":{\"13\":1}}],[\"块中最后一行写一个\",{\"1\":{\"13\":1}}],[\"你不会期待我们将每一个成员函数都分析一遍吧\",{\"1\":{\"111\":1}}],[\"你不需要为你没有用到的\",{\"1\":{\"21\":1}}],[\"你阅读标准库源码\",{\"1\":{\"101\":1,\"102\":1,\"105\":1}}],[\"你只需要知道\",{\"1\":{\"100\":1}}],[\"你们可能还有疑问\",{\"1\":{\"82\":1}}],[\"你肯定会想着\",{\"1\":{\"80\":1}}],[\"你知道自己在做什么的可能性基本上为零\",{\"1\":{\"77\":1}}],[\"你始终在等待一件事情\",{\"1\":{\"52\":1}}],[\"你可能还希望我们的线程池具备更多功能或改进\",{\"1\":{\"117\":1}}],[\"你可能还无法在实际环境利用多线程提升程序效率\",{\"1\":{\"24\":1}}],[\"你可能会有疑问\",{\"1\":{\"86\":1}}],[\"你可能会想着再写一行\",{\"1\":{\"55\":1}}],[\"你可能会做一些别的事情打发时间\",{\"1\":{\"52\":1}}],[\"你可能对这段代码还有一些疑问\",{\"1\":{\"55\":1}}],[\"你需要考虑如何在程序运行到不同状态时添加适当的语音播报\",{\"1\":{\"50\":1}}],[\"你有一个数据结构存储了用户的设置信息\",{\"1\":{\"35\":1}}],[\"你是否感到奇怪\",{\"1\":{\"17\":1}}],[\"你是否觉得这样也可以\",{\"1\":{\"13\":1}}],[\"你简单认为reference\",{\"1\":{\"15\":1}}],[\"你要注意我们的注释\",{\"1\":{\"13\":1}}],[\"你在一个函数中构造了一个\",{\"1\":{\"13\":1}}],[\"根据这些数据成员我们就能很轻松的猜测出\",{\"1\":{\"108\":1}}],[\"根据我们的描述\",{\"1\":{\"59\":1}}],[\"根据作业情况\",{\"1\":{\"2\":1}}],[\"根本不需要最外部\",{\"1\":{\"13\":1}}],[\"由它调用\",{\"1\":{\"17\":1}}],[\"由调用方进行处理\",{\"1\":{\"13\":1}}],[\"由于我们没有对读写操作进行同步\",{\"1\":{\"80\":1}}],[\"由于无法增加计数\",{\"1\":{\"71\":1}}],[\"由于这个系统时钟的限制\",{\"1\":{\"61\":1}}],[\"由于求和不涉及数据竞争之类的问题\",{\"1\":{\"11\":1}}],[\"由于\",{\"1\":{\"11\":2,\"26\":1,\"71\":2,\"109\":1}}],[\"以支持任何的可调用\",{\"1\":{\"116\":1}}],[\"以便在调用\",{\"1\":{\"108\":1}}],[\"以便导出模块\",{\"1\":{\"108\":1}}],[\"以提高执行效率\",{\"1\":{\"82\":1}}],[\"以后任何\",{\"1\":{\"80\":1}}],[\"以原子方式增加或减少指针的值\",{\"1\":{\"79\":1}}],[\"以原子方式增加指针的值\",{\"1\":{\"79\":1}}],[\"以原子方式减少指针的值\",{\"1\":{\"79\":1}}],[\"以原子方式比较并交换指针值\",{\"1\":{\"79\":1}}],[\"以原子方式交换指针值\",{\"1\":{\"79\":1}}],[\"以原子方式存储指针值\",{\"1\":{\"79\":1}}],[\"以原子方式读取指针值\",{\"1\":{\"79\":1}}],[\"以保证计数修改的原子性\",{\"1\":{\"73\":1}}],[\"以使用并发支持库中的\",{\"1\":{\"73\":1}}],[\"以此类推\",{\"1\":{\"72\":1}}],[\"以至于我们可以在这里来再说一条概念\",{\"1\":{\"69\":1}}],[\"以加深对异步任务处理的理解\",{\"1\":{\"68\":1}}],[\"以\",{\"1\":{\"61\":1,\"102\":1,\"109\":1,\"110\":1}}],[\"以供在需要播放提示音的时候调用它\",{\"1\":{\"50\":1}}],[\"以上这段代码\",{\"1\":{\"109\":1}}],[\"以上这段代码可以正常的通过编译\",{\"1\":{\"100\":1}}],[\"以上这段代码是典型的线程不安全\",{\"1\":{\"80\":1}}],[\"以上的示例更多的是泛指\",{\"1\":{\"82\":1}}],[\"以上示例已经足够\",{\"1\":{\"49\":1}}],[\"以上代码使用的就是第二个版本\",{\"1\":{\"48\":1}}],[\"以上代码是线程安全的\",{\"1\":{\"37\":1}}],[\"以上代码\",{\"1\":{\"34\":1}}],[\"以上代码可能导致一些问题\",{\"1\":{\"15\":1}}],[\"以上代码void\",{\"1\":{\"15\":1}}],[\"以确保程序的正确性和可靠性\",{\"1\":{\"86\":1}}],[\"以确保程序的可观察副作用不受影响\",{\"1\":{\"82\":1}}],[\"以确保数据的正确性\",{\"1\":{\"78\":1}}],[\"以确保数据的一致性和正确性\",{\"1\":{\"47\":1}}],[\"以确保在特定平台上原子操作的性能\",{\"1\":{\"76\":1}}],[\"以确保在执行\",{\"1\":{\"49\":1}}],[\"以确保任务在新线程中运行\",{\"1\":{\"66\":1}}],[\"以巩固我们对条件变量的学习\",{\"1\":{\"49\":1}}],[\"以下代码示例展示了如何通过\",{\"1\":{\"63\":1}}],[\"以下是一个例子\",{\"1\":{\"80\":1}}],[\"以下是一个使用\",{\"1\":{\"62\":1}}],[\"以下是一段示例代码\",{\"1\":{\"38\":1}}],[\"以下是局部变量\",{\"1\":{\"41\":1}}],[\"以下内容不会对您构成任何的难度\",{\"1\":{\"19\":1}}],[\"以及一些其它非知识点\",{\"1\":{\"119\":1}}],[\"以及一些外部接口\",{\"1\":{\"117\":1}}],[\"以及一个状态对象\",{\"1\":{\"109\":1}}],[\"以及一个状态成员\",{\"1\":{\"108\":1}}],[\"以及一个元组\",{\"1\":{\"104\":1}}],[\"以及一个转换函数\",{\"1\":{\"76\":1}}],[\"以及关闭还没开始执行的任务\",{\"1\":{\"115\":1}}],[\"以及多态调用\",{\"1\":{\"111\":1}}],[\"以及可能的异常\",{\"1\":{\"108\":1}}],[\"以及可能的测试和调试技术\",{\"1\":{\"82\":1}}],[\"以及给所有互斥量上锁\",{\"1\":{\"104\":1}}],[\"以及方便读者的测试与学习\",{\"1\":{\"94\":1}}],[\"以及\",{\"1\":{\"94\":1,\"115\":1}}],[\"以及这些操作在何种顺序下执行\",{\"1\":{\"74\":1}}],[\"以及实现之复杂\",{\"1\":{\"59\":1}}],[\"以及支持只能移动的类型\",{\"1\":{\"53\":1}}],[\"以及传递调用参数\",{\"1\":{\"53\":1,\"54\":1}}],[\"以及特殊情况可能用到的互斥量\",{\"1\":{\"46\":1}}],[\"以及编译器扩展有助于理解历史上线程存储期的演进\",{\"1\":{\"38\":1}}],[\"以及还有很多其他的时间类型\",{\"1\":{\"16\":1}}],[\"以及线程对象正确析构\",{\"1\":{\"13\":1}}],[\"以及为什么我们要两个\",{\"1\":{\"13\":1}}],[\"以更好地利用当前硬件\",{\"1\":{\"11\":1}}],[\"接下来我们进入\",{\"1\":{\"104\":1}}],[\"接下来我们聊\",{\"1\":{\"53\":1}}],[\"接口高度封装\",{\"1\":{\"115\":1}}],[\"接口设计的方式\",{\"1\":{\"114\":1}}],[\"接口\",{\"1\":{\"67\":1}}],[\"接口的就不再介绍了\",{\"1\":{\"38\":1}}],[\"接收参数的时候直接调用\",{\"1\":{\"53\":1}}],[\"接住了\",{\"1\":{\"13\":1}}],[\"接住了异常\",{\"1\":{\"13\":1}}],[\"接受\",{\"1\":{\"96\":1}}],[\"接受一个可调用对象\",{\"1\":{\"100\":1}}],[\"接受一个整数并返回它的平方\",{\"1\":{\"55\":1}}],[\"接受一个返回\",{\"1\":{\"13\":1}}],[\"接受两个迭代器计算它们范围中对象的和\",{\"1\":{\"11\":1}}],[\"复制构造函数被定义为弃置的\",{\"1\":{\"100\":1}}],[\"复制构造和复制赋值会先读取第一个对象的值\",{\"1\":{\"77\":1}}],[\"复制赋值和复制构造定义为\",{\"1\":{\"14\":1}}],[\"复用之前\",{\"1\":{\"13\":1}}],[\"复杂的\",{\"1\":{\"0\":1}}],[\"顺带的\",{\"1\":{\"13\":1}}],[\"必然有一个线程无法成功上锁\",{\"1\":{\"29\":1}}],[\"必然余\",{\"1\":{\"11\":1}}],[\"必须等待所有线程执行到\",{\"1\":{\"71\":1}}],[\"必须等待线程\",{\"1\":{\"28\":1}}],[\"必须使用\",{\"1\":{\"53\":1}}],[\"必须使用互斥量或类似同步机制进行保护\",{\"1\":{\"52\":1}}],[\"必须和\",{\"1\":{\"36\":1}}],[\"必须得是当前对象拥有互斥量的所有权析构函数才会调用\",{\"1\":{\"32\":1}}],[\"必须同时拿到两部分才能玩\",{\"1\":{\"31\":1}}],[\"必须是当前没有所有权\",{\"1\":{\"32\":1}}],[\"必须是\",{\"1\":{\"13\":1}}],[\"必要标头\",{\"1\":{\"27\":1}}],[\"阻塞到任务执行完毕\",{\"1\":{\"117\":1}}],[\"阻塞调用会将线程挂起一段\",{\"1\":{\"58\":1}}],[\"阻塞\",{\"1\":{\"55\":1,\"80\":1,\"115\":1}}],[\"阻塞直到队列不为空\",{\"1\":{\"49\":2}}],[\"阻塞当前线程\",{\"1\":{\"48\":1}}],[\"阻塞当前线程直到线程对象关联的线程执行完毕\",{\"1\":{\"14\":1}}],[\"阻塞当前线程直至\",{\"1\":{\"13\":1}}],[\"阻塞让其线程执行完毕\",{\"1\":{\"17\":1}}],[\"阻塞什么\",{\"1\":{\"13\":1}}],[\"所做的所有修改\",{\"1\":{\"83\":1}}],[\"所返回的指针\",{\"1\":{\"80\":1}}],[\"所在的函数有异常被抛出\",{\"1\":{\"55\":1}}],[\"所有类型在传递前都进行了\",{\"1\":{\"108\":1}}],[\"所有操作的开始应从\",{\"1\":{\"107\":1}}],[\"所有原子类型都有一个\",{\"1\":{\"76\":1}}],[\"所有界面与设置均通过代码控制\",{\"1\":{\"64\":1}}],[\"所有元素已被弹出\",{\"1\":{\"49\":1}}],[\"所有具有线程局部存储期的非局部变量的初始化\",{\"1\":{\"44\":1}}],[\"所有权才会得到释放\",{\"1\":{\"36\":1}}],[\"所有权\",{\"1\":{\"33\":1}}],[\"所有权也可以在函数内部传递\",{\"1\":{\"17\":1}}],[\"所谓的线程安全\",{\"1\":{\"80\":1}}],[\"所谓的线程停止只是一种基于用户代码的控制机制\",{\"1\":{\"22\":1}}],[\"所谓的在不同作用域传递互斥量\",{\"1\":{\"33\":2}}],[\"所关联的线程正常的执行完毕以及线程对象的正常析构\",{\"1\":{\"14\":1}}],[\"所标识的线程结束其执行\",{\"1\":{\"13\":1}}],[\"所以参数的传递其实是按值复制\",{\"1\":{\"117\":1}}],[\"所以只需要一个提供一个外部接口\",{\"1\":{\"117\":1}}],[\"所以只对元素个数大于\",{\"1\":{\"11\":1}}],[\"所以用\",{\"1\":{\"103\":1}}],[\"所以即使是\",{\"1\":{\"98\":1,\"107\":1}}],[\"所以请您捐赠了可以选择备注\",{\"1\":{\"97\":1}}],[\"所以我一直在强调\",{\"1\":{\"82\":1}}],[\"所以我们添加一个约束让其不能选择到我们的有参构造\",{\"1\":{\"100\":1}}],[\"所以我们使用了\",{\"1\":{\"55\":1}}],[\"所以我们可以使用\",{\"1\":{\"53\":1,\"76\":1}}],[\"所以我们不额外提及\",{\"1\":{\"46\":1}}],[\"所以我们能写出如下代码\",{\"1\":{\"32\":1}}],[\"所以我们前面的代码可以改写为\",{\"1\":{\"31\":1}}],[\"所以我们甚至可以在刚讲完\",{\"1\":{\"11\":1}}],[\"所以多次运行时可能会看到一些无序的打印\",{\"1\":{\"80\":1}}],[\"所以很直观\",{\"1\":{\"68\":1}}],[\"所以假设有类型\",{\"1\":{\"61\":1}}],[\"所以你需要注意移动\",{\"1\":{\"56\":1}}],[\"所以执行新任务是否创建新线程\",{\"1\":{\"53\":1}}],[\"所以如果不使用\",{\"1\":{\"53\":1}}],[\"所以如果你好好学习了上一章\",{\"1\":{\"25\":1}}],[\"所以通常首选std\",{\"1\":{\"48\":1}}],[\"所以增加了\",{\"1\":{\"48\":1}}],[\"所以以上代码存在问题\",{\"1\":{\"57\":1}}],[\"所以以上代码可以随意更换这两个互斥量\",{\"1\":{\"35\":1}}],[\"所以以下函数在多线程运行是线程安全的\",{\"1\":{\"37\":1}}],[\"所以提供了std\",{\"1\":{\"36\":1}}],[\"所以依然必须得使用互斥量进行保护\",{\"1\":{\"35\":1}}],[\"所以为了效率\",{\"1\":{\"35\":1}}],[\"所以标准库提供了\",{\"1\":{\"34\":1}}],[\"所以要特别注意互斥量的生存期\",{\"1\":{\"33\":1}}],[\"所以调用者可以在这个锁保护的范围内执行代码\",{\"1\":{\"33\":1}}],[\"所以正常的用法其实是\",{\"1\":{\"32\":1}}],[\"所以抛出异常\",{\"1\":{\"32\":1}}],[\"所以\",{\"1\":{\"32\":1,\"59\":1}}],[\"所以可以直接传递给\",{\"1\":{\"32\":1}}],[\"所以可称作\",{\"1\":{\"17\":1}}],[\"所以没办法确定外部要做什么\",{\"1\":{\"31\":1}}],[\"所以后的\",{\"1\":{\"31\":1}}],[\"所以死锁\",{\"1\":{\"31\":1}}],[\"所以在等待\",{\"1\":{\"31\":1}}],[\"所以在本教程中\",{\"1\":{\"4\":1}}],[\"所以有的时候你可能会看到一些这样的代码\",{\"1\":{\"28\":1}}],[\"所以有两次移动构造\",{\"1\":{\"15\":1}}],[\"所以完全有可能函数\",{\"1\":{\"15\":1}}],[\"所以产生编译错误\",{\"1\":{\"15\":1}}],[\"所以总而言之\",{\"1\":{\"13\":1}}],[\"所以这个线程只处理平均数量的元素\",{\"1\":{\"11\":1}}],[\"所以这个线程会多分配一个元素\",{\"1\":{\"11\":1}}],[\"所以还定义了一个对象\",{\"1\":{\"11\":1}}],[\"认为这样可以确保被分离的线程在这里阻塞执行完\",{\"1\":{\"13\":1}}],[\"之间的包含关系示意图\",{\"1\":{\"108\":1,\"109\":1}}],[\"之类的函数进行初始化\",{\"1\":{\"107\":1}}],[\"之类的环境\",{\"1\":{\"67\":1}}],[\"之类的就行\",{\"1\":{\"16\":1}}],[\"之所以多个线程通过\",{\"1\":{\"91\":1}}],[\"之所以说\",{\"1\":{\"46\":1}}],[\"之所以说是\",{\"1\":{\"46\":1}}],[\"之所以我们看着抽象是因为这里的形参是无名的\",{\"1\":{\"13\":1}}],[\"之前已经详细描述过了\",{\"1\":{\"109\":1}}],[\"之前的例子中我们一直使用\",{\"1\":{\"57\":1}}],[\"之前\",{\"1\":{\"54\":1,\"77\":1}}],[\"之前呢\",{\"1\":{\"38\":1}}],[\"之前锁住互斥量\",{\"1\":{\"31\":1}}],[\"之后重置期待计数为构造中指定的值\",{\"1\":{\"72\":1}}],[\"之后通过\",{\"1\":{\"55\":1}}],[\"之后\",{\"1\":{\"13\":1}}],[\"应该如此\",{\"1\":{\"103\":1}}],[\"应该在所有场景中使用\",{\"1\":{\"13\":1}}],[\"应该也会提到\",{\"1\":{\"11\":1}}],[\"因其高能效和低功耗特点广泛应用于移动设备\",{\"1\":{\"86\":1}}],[\"因其强大的性能被广泛应用于桌面电脑\",{\"1\":{\"86\":1}}],[\"因其任务之间的相关性\",{\"1\":{\"73\":1}}],[\"因此我们使用了\",{\"1\":{\"116\":1}}],[\"因此我们也只需要关注第二个版本了\",{\"1\":{\"108\":1}}],[\"因此这种操作没有实际意义\",{\"1\":{\"80\":1}}],[\"因此不需要重试\",{\"1\":{\"78\":1}}],[\"因此需要在循环中重试\",{\"1\":{\"78\":1}}],[\"因此在某些情况下可能不适合对时间间隔进行精确测量\",{\"1\":{\"59\":1}}],[\"因此适用于需要保持时间顺序和不受系统时间变化影响的应用场景\",{\"1\":{\"59\":1}}],[\"因此一个周期为\",{\"1\":{\"59\":1}}],[\"因此它们不会共享同一个对象\",{\"1\":{\"37\":1}}],[\"因此就会产生条件竞争\",{\"1\":{\"34\":1}}],[\"因此有更好的性能和更少的竞争\",{\"1\":{\"28\":1}}],[\"因此当多个线程同时访问并修改\",{\"1\":{\"26\":1}}],[\"因此\",{\"1\":{\"13\":1,\"14\":1,\"37\":1,\"39\":1,\"49\":1,\"50\":1,\"61\":1,\"62\":1,\"77\":1,\"80\":2,\"82\":1,\"107\":1}}],[\"因为析构函数并不是阻塞直到执行完所有任务\",{\"1\":{\"115\":1}}],[\"因为如果是\",{\"1\":{\"110\":1}}],[\"因为返回\",{\"1\":{\"108\":1}}],[\"因为已经将参数传递给了线程\",{\"1\":{\"100\":1}}],[\"因为内存对齐\",{\"1\":{\"99\":1}}],[\"因为并发支持库的很多设施其实现是较为简单的\",{\"1\":{\"93\":1}}],[\"因为不同的\",{\"1\":{\"82\":1}}],[\"因为不见得你能教会他们\",{\"1\":{\"34\":1}}],[\"因为是副本\",{\"1\":{\"80\":1}}],[\"因为是线程池\",{\"1\":{\"53\":1}}],[\"因为这些操作仅影响控制块中的引用计数\",{\"1\":{\"80\":1}}],[\"因为它是\",{\"1\":{\"80\":1}}],[\"因为它在等待锁的过程中不会主动放弃\",{\"1\":{\"77\":1}}],[\"因为它有转换函数\",{\"1\":{\"76\":1}}],[\"因为它们的复制构造与复制赋值运算符被定义为弃置的\",{\"1\":{\"76\":1}}],[\"因为它们是线程不安全的\",{\"1\":{\"63\":1}}],[\"因为它们都在等待对方释放互斥量\",{\"1\":{\"31\":1}}],[\"因为传入的函数对象它不是\",{\"1\":{\"72\":1}}],[\"因为我们分配给每个线程的输出任务就是如此\",{\"1\":{\"72\":1}}],[\"因为我们的函数中的参数是引用\",{\"1\":{\"15\":1}}],[\"因为只有三个线程能成功调用\",{\"1\":{\"69\":1}}],[\"因为有\",{\"1\":{\"68\":1}}],[\"因为有潜在的条件竞争\",{\"1\":{\"34\":1}}],[\"因为一分钟等于\",{\"1\":{\"59\":1}}],[\"因为无限期地等待事件发生可能会导致性能下降或资源浪费\",{\"1\":{\"58\":1}}],[\"因为移动操作标志着所有权的转移\",{\"1\":{\"56\":1}}],[\"因为临时对象的生存期就在这一行\",{\"1\":{\"53\":1}}],[\"因为修改函数和等待函数共用一个互斥量\",{\"1\":{\"48\":1}}],[\"因为线程被线程池复用\",{\"1\":{\"39\":1}}],[\"因为线程变量\",{\"1\":{\"39\":1}}],[\"因为异常代表操作失败\",{\"1\":{\"34\":1}}],[\"因为对象还没构造\",{\"1\":{\"34\":1}}],[\"因为代码是外部提供的\",{\"1\":{\"31\":1}}],[\"因为在大部分时间里\",{\"1\":{\"31\":1}}],[\"因为前面已经使用了\",{\"1\":{\"31\":1}}],[\"因为互斥量上锁顺序不同\",{\"1\":{\"31\":1}}],[\"因为你要是不抛出\",{\"1\":{\"13\":1}}],[\"因为程序员必须确保所有创建的线程正常退出\",{\"1\":{\"13\":1}}],[\"因为\",{\"1\":{\"13\":1,\"14\":1,\"32\":2,\"37\":1,\"54\":1,\"72\":1,\"76\":1,\"80\":1,\"100\":1}}],[\"因为要执行的任务非常之多\",{\"1\":{\"6\":1}}],[\"放弃线程的所有权不是一种选择\",{\"1\":{\"13\":1}}],[\"放弃了对线程资源的所有权\",{\"1\":{\"13\":1}}],[\"通知所有线程退出\",{\"1\":{\"117\":1}}],[\"通知线程新的音频\",{\"1\":{\"50\":1}}],[\"通知播放线程执行任务\",{\"1\":{\"50\":1}}],[\"通知等待的线程\",{\"1\":{\"48\":1}}],[\"通过静态成员函数\",{\"1\":{\"116\":1}}],[\"通过\",{\"1\":{\"108\":1,\"115\":1}}],[\"通过完美转发机制将其转发给实际的异步任务\",{\"1\":{\"108\":1}}],[\"通过使用合适的内存序\",{\"1\":{\"83\":1}}],[\"通过使用\",{\"1\":{\"80\":1}}],[\"通过返回非原子值进行赋值\",{\"1\":{\"78\":1}}],[\"通过批处理等技术\",{\"1\":{\"76\":1}}],[\"通过互斥量的保护\",{\"1\":{\"75\":1}}],[\"通过这种方式\",{\"1\":{\"69\":1}}],[\"通过初始化该信号量为\",{\"1\":{\"69\":1}}],[\"通过实际操作理解代码效果\",{\"1\":{\"68\":1}}],[\"通过显示的线程\",{\"1\":{\"66\":1}}],[\"通过条件变量和互斥量确保播放线程\",{\"1\":{\"50\":1}}],[\"通过另一线程触发等待事件的机制是最基本的唤醒方式\",{\"1\":{\"48\":1}}],[\"通过函数\",{\"1\":{\"38\":1}}],[\"通过调用\",{\"1\":{\"22\":1,\"71\":1,\"116\":1}}],[\"通过该对象来管理线程\",{\"1\":{\"12\":1}}],[\"通常是硬件并发能力的两倍\",{\"1\":{\"115\":1}}],[\"通常都会是最新的\",{\"1\":{\"94\":1}}],[\"通常只是用作构建一些库设施\",{\"1\":{\"77\":1}}],[\"通常的实现是直接保有一个\",{\"1\":{\"73\":1}}],[\"通常用于简单直接的需求\",{\"1\":{\"71\":1}}],[\"通常用于描述锁定的范围大小\",{\"1\":{\"28\":1}}],[\"通常情况下\",{\"1\":{\"58\":1}}],[\"通常它有更好的性能\",{\"1\":{\"69\":1}}],[\"通常它会和\",{\"1\":{\"54\":1}}],[\"通常它比裸调用\",{\"1\":{\"31\":1}}],[\"通常其本身也是线程安全的\",{\"1\":{\"46\":1}}],[\"通常会使用同步机制\",{\"1\":{\"46\":1}}],[\"通常\",{\"1\":{\"45\":1,\"46\":1,\"76\":1}}],[\"通常建议优先\",{\"1\":{\"32\":1}}],[\"通常说某个特定的线程正持有这个锁\",{\"1\":{\"27\":1}}],[\"通常需要线程执行的函数中有一些系统调用\",{\"1\":{\"24\":1}}],[\"通常占\",{\"1\":{\"21\":1}}],[\"通常非常不推荐使用\",{\"1\":{\"13\":1}}],[\"正确的用法如下\",{\"1\":{\"80\":1}}],[\"正在执行\",{\"1\":{\"63\":1,\"65\":1}}],[\"正在延迟执行\",{\"1\":{\"60\":1}}],[\"正常情况会保证传入的可调用对象只调用一次\",{\"1\":{\"34\":1}}],[\"正常\",{\"1\":{\"32\":1}}],[\"正常上锁\",{\"1\":{\"32\":1}}],[\"正常析构\",{\"1\":{\"13\":1,\"17\":2}}],[\"正是通过\",{\"1\":{\"10\":1}}],[\"正是任务切换使得这些后台任务可以运行\",{\"1\":{\"6\":1}}],[\"造成未定义行为\",{\"1\":{\"13\":1}}],[\"访问悬空引用\",{\"1\":{\"13\":1}}],[\"用做调用\",{\"1\":{\"104\":1}}],[\"用了就没事\",{\"1\":{\"68\":1}}],[\"用户非要做这些事情也是防不住的\",{\"1\":{\"30\":1}}],[\"用来学习再好不过\",{\"1\":{\"117\":1}}],[\"用来应对我们传入的函数对象返回类型的三种情况\",{\"1\":{\"108\":1}}],[\"用来初始化数据成员\",{\"1\":{\"108\":1}}],[\"用来指定原子操作的内存顺序\",{\"1\":{\"84\":1}}],[\"用来引用互斥量\",{\"1\":{\"28\":1}}],[\"用来管理互斥量的上锁与解锁\",{\"1\":{\"28\":1}}],[\"用来计算\",{\"1\":{\"11\":1}}],[\"用一段对比代码为你直观的展示互斥量的作用\",{\"1\":{\"27\":1}}],[\"用于网络和低级\",{\"1\":{\"115\":1}}],[\"用于执行多个任务而无需频繁地创建和销毁线程\",{\"1\":{\"113\":1}}],[\"用于异步执行任务\",{\"1\":{\"108\":1}}],[\"用于在异步任务和等待任务之间进行同步\",{\"1\":{\"108\":1}}],[\"用于在队列为空时等待\",{\"1\":{\"49\":1}}],[\"用于标记此函数的返回值不应被忽略\",{\"1\":{\"108\":1}}],[\"用于等待关联任务的完成并获取其返回值\",{\"1\":{\"107\":1}}],[\"用于指示当前线程中抛出的异常\",{\"1\":{\"55\":1}}],[\"用于存储异步任务中可能发生的异常\",{\"1\":{\"108\":1}}],[\"用于存储计算结果\",{\"1\":{\"55\":1}}],[\"用于存储一个值或一个异常\",{\"1\":{\"55\":1}}],[\"用于获取返回值\",{\"1\":{\"54\":1}}],[\"用于计数\",{\"1\":{\"51\":1}}],[\"用于加载和播放音频文件\",{\"1\":{\"50\":1}}],[\"用于保护共享资源\",{\"1\":{\"117\":1}}],[\"用于保护共享数据的访问\",{\"1\":{\"48\":1}}],[\"用于保护队列操作的独占访问\",{\"1\":{\"49\":1}}],[\"用于线程间的同步\",{\"1\":{\"48\":1,\"117\":1}}],[\"用于声明具有线程存储期的对象\",{\"1\":{\"38\":1}}],[\"用于搭配\",{\"1\":{\"34\":1}}],[\"用于通知线程应该停止执行\",{\"1\":{\"24\":1}}],[\"用于调用这个可变参数的可调用对象\",{\"1\":{\"104\":1}}],[\"用于调用\",{\"1\":{\"13\":1}}],[\"执行延迟函数\",{\"1\":{\"110\":1}}],[\"执行函数的类型要求\",{\"1\":{\"100\":1}}],[\"执行递增操作\",{\"1\":{\"75\":1}}],[\"执行传递的\",{\"1\":{\"54\":1}}],[\"执行策略毫无区别\",{\"1\":{\"53\":1}}],[\"执行的过程\",{\"1\":{\"50\":1}}],[\"执行的时候\",{\"1\":{\"31\":2}}],[\"执行一些任务\",{\"1\":{\"33\":1}}],[\"执行多少次\",{\"1\":{\"28\":1}}],[\"执行多个任务\",{\"1\":{\"6\":1}}],[\"执行完任务\",{\"1\":{\"71\":1}}],[\"执行完里面的代码\",{\"1\":{\"28\":1}}],[\"执行完毕后继续休眠\",{\"1\":{\"113\":1}}],[\"执行完毕后休眠\",{\"1\":{\"113\":1}}],[\"执行完毕\",{\"1\":{\"14\":1}}],[\"执行我们的\",{\"1\":{\"27\":1}}],[\"执行了一半\",{\"1\":{\"26\":2}}],[\"执行\",{\"1\":{\"13\":1,\"31\":2,\"54\":1}}],[\"执行什么呢\",{\"1\":{\"13\":1}}],[\"执行任务\",{\"1\":{\"13\":1}}],[\"主模板的讲解\",{\"1\":{\"104\":1}}],[\"主模板\",{\"1\":{\"103\":1,\"104\":1}}],[\"主\",{\"1\":{\"69\":4}}],[\"主要目的有两个\",{\"1\":{\"109\":1}}],[\"主要是用\",{\"1\":{\"104\":1}}],[\"主要是通过两层包装\",{\"1\":{\"101\":1}}],[\"主要是复杂性和需求\",{\"1\":{\"32\":1}}],[\"主要的内容就是我们上面讲的类模板\",{\"1\":{\"60\":1}}],[\"主要的难度其实在于对\",{\"1\":{\"11\":1}}],[\"主要在于类型之多\",{\"1\":{\"59\":1}}],[\"主要用于内核开发和追求极致性能的高并发场景\",{\"1\":{\"45\":1}}],[\"主线程用于处理\",{\"1\":{\"62\":1}}],[\"主线程延时\",{\"1\":{\"16\":1}}],[\"主线程不等待\",{\"1\":{\"13\":1}}],[\"主线程\",{\"1\":{\"13\":1}}],[\"可调用对象\",{\"1\":{\"108\":1}}],[\"可见\",{\"0\":{\"83\":1},\"1\":{\"83\":2}}],[\"可选的内存序包括\",{\"1\":{\"76\":3}}],[\"可用任何满足可复制构造\",{\"1\":{\"76\":1}}],[\"可复用的线程屏障\",{\"1\":{\"70\":1}}],[\"可能导致一些任务没有执行\",{\"1\":{\"115\":1}}],[\"可能导致许多问题\",{\"1\":{\"26\":1}}],[\"可能不同\",{\"1\":{\"101\":1}}],[\"可能不是最大\",{\"1\":{\"69\":1}}],[\"可能考虑使用复制初始化\",{\"1\":{\"95\":1}}],[\"可能没有接触过\",{\"1\":{\"93\":1}}],[\"可能也听说过\",{\"1\":{\"86\":1}}],[\"可能比原子操作更高效\",{\"1\":{\"76\":1}}],[\"可能产生大于\",{\"1\":{\"73\":1}}],[\"可能就无法直接猜测其意图\",{\"1\":{\"71\":1}}],[\"可能有多个线程都需要耗时的异步任务的返回值\",{\"1\":{\"57\":1}}],[\"可能有多个线程都需要此任务的返回值\",{\"1\":{\"57\":1}}],[\"可能影响业务正常的执行任务的流程\",{\"1\":{\"50\":1}}],[\"可能别的翻译单元\",{\"1\":{\"33\":1}}],[\"可能的运行结果是\",{\"1\":{\"49\":1}}],[\"可能的运行结果\",{\"1\":{\"29\":1,\"72\":1,\"117\":1}}],[\"可能会导致数据竞争\",{\"1\":{\"26\":1}}],[\"可能会发生未定义的行为\",{\"1\":{\"26\":1}}],[\"可能会有一些难以理解的地方\",{\"1\":{\"24\":1}}],[\"可能抛出异常\",{\"1\":{\"14\":1}}],[\"可能悬空引用\",{\"1\":{\"13\":1}}],[\"可以参考我们给出的线程池实现增加功能\",{\"1\":{\"118\":1}}],[\"可以传入任务到任务队列\",{\"1\":{\"117\":1}}],[\"可以传递给\",{\"1\":{\"15\":1}}],[\"可以复用的线程集合\",{\"1\":{\"113\":1}}],[\"可以当做是一个池子中存放了一堆线程\",{\"1\":{\"113\":1}}],[\"可以慢慢看\",{\"1\":{\"111\":1}}],[\"可以保证无论任务是\",{\"1\":{\"109\":1}}],[\"可以访问并管理异步任务的状态\",{\"1\":{\"108\":1}}],[\"可以是\",{\"1\":{\"108\":1}}],[\"可以举一个使用\",{\"1\":{\"108\":1}}],[\"可以管理任意个数的互斥量\",{\"1\":{\"104\":1}}],[\"可以阅读使用文档\",{\"1\":{\"94\":1}}],[\"可以确保正确初始化和清理\",{\"1\":{\"101\":1}}],[\"可以确保线程\",{\"1\":{\"83\":1}}],[\"可以确保此时对象处于\",{\"1\":{\"77\":1}}],[\"可以按照一定规则重新安排代码的执行顺序\",{\"1\":{\"82\":1}}],[\"可以\",{\"1\":{\"80\":1}}],[\"可以安全的调用所有成员函数\",{\"1\":{\"80\":1}}],[\"可以避免多余的加载\",{\"1\":{\"78\":1}}],[\"可以应用任何内存顺序\",{\"1\":{\"77\":1}}],[\"可以用来控制在需要的时候\",{\"1\":{\"72\":1}}],[\"可以用来划分任务执行的工作区间\",{\"1\":{\"71\":1}}],[\"可以改变重置的计数值\",{\"1\":{\"72\":1}}],[\"可以改为\",{\"1\":{\"57\":1}}],[\"可以有效控制\",{\"1\":{\"69\":1}}],[\"可以尝试自行优化我们提供的线程池实现\",{\"1\":{\"117\":1}}],[\"可以尝试修改代码\",{\"1\":{\"68\":1}}],[\"可以尝试将函数的第一行与最后一行注释掉以验证这一点\",{\"1\":{\"63\":1}}],[\"可以验证这一点\",{\"1\":{\"66\":1}}],[\"可以直接跳过本节内容\",{\"1\":{\"82\":1}}],[\"可以直接安装\",{\"1\":{\"64\":1}}],[\"可以直接隐式转换\",{\"1\":{\"60\":1}}],[\"可以减去一个时间点\",{\"1\":{\"61\":1}}],[\"可以对两个时间段进行加减乘除\",{\"1\":{\"60\":1}}],[\"可以将元组存储的参数全部拿出\",{\"1\":{\"104\":1}}],[\"可以将不相关的指令重排\",{\"1\":{\"82\":1}}],[\"可以将时间点转换为\",{\"1\":{\"59\":1}}],[\"可以将所有\",{\"1\":{\"31\":1}}],[\"可以选择是否传递一个谓词\",{\"1\":{\"58\":1}}],[\"可以考虑使用下文提到的\",{\"1\":{\"56\":1}}],[\"可以看到\",{\"1\":{\"109\":1}}],[\"可以看出\",{\"1\":{\"56\":1}}],[\"可以看一下时间\",{\"1\":{\"48\":1}}],[\"可以很清楚地理解\",{\"1\":{\"56\":1}}],[\"可以执行后续的操作\",{\"1\":{\"48\":1}}],[\"可以下车了\",{\"1\":{\"48\":1}}],[\"可以获取互斥量的所有权\",{\"1\":{\"33\":1}}],[\"可以利用各种类来进行传递\",{\"1\":{\"33\":1}}],[\"可以在没有被互斥量保护的情况下调用\",{\"1\":{\"30\":1}}],[\"可以根据传入的参数自行推导\",{\"1\":{\"28\":1}}],[\"可以说已经比较了解了\",{\"1\":{\"25\":1}}],[\"可以添加\",{\"1\":{\"22\":1}}],[\"可以再回过头来问问自己是否能够回答这些问题\",{\"1\":{\"18\":1}}],[\"可以观看视频\",{\"1\":{\"15\":1}}],[\"可以隐式转换为被包装对象的引用\",{\"1\":{\"15\":1}}],[\"可以通过\",{\"1\":{\"59\":1}}],[\"可以通过编译\",{\"1\":{\"15\":2,\"53\":1}}],[\"可以通过支付宝赞助白老师\",{\"1\":{\"0\":1}}],[\"可以防止编译器隐式生成\",{\"1\":{\"14\":1}}],[\"可以简化代码并避免引入不必要的局部对象\",{\"1\":{\"13\":1}}],[\"可以使用\",{\"1\":{\"11\":1,\"31\":1,\"35\":1,\"76\":1}}],[\"可以指代线程\",{\"1\":{\"9\":1}}],[\"可以先学习\",{\"1\":{\"0\":1}}],[\"为原子操作指定不同的内存序\",{\"1\":{\"78\":1}}],[\"为就绪为止\",{\"1\":{\"53\":1}}],[\"为队列添加元素\",{\"1\":{\"50\":1}}],[\"为例\",{\"1\":{\"32\":1,\"61\":1}}],[\"为了遍历形参包\",{\"1\":{\"100\":1}}],[\"为了提高性能\",{\"1\":{\"82\":1}}],[\"为了提高代码的可读性\",{\"1\":{\"51\":1}}],[\"为了理解这些概念\",{\"1\":{\"80\":1}}],[\"为了代码的可维护性开发者应遵守标准规定\",{\"1\":{\"72\":1}}],[\"为了防止服务器过载\",{\"1\":{\"69\":1}}],[\"为了避免每次都手动添加路径\",{\"1\":{\"51\":2}}],[\"为了不影响程序的流畅执行\",{\"1\":{\"50\":1}}],[\"为了实现一个线程安全的队列\",{\"1\":{\"49\":1}}],[\"为了保证数据交换的正确性\",{\"1\":{\"31\":1}}],[\"为了观测运行我们可以为\",{\"1\":{\"49\":1}}],[\"为了观测\",{\"1\":{\"14\":1}}],[\"为什么要这样\",{\"1\":{\"104\":1}}],[\"为什么不同\",{\"1\":{\"86\":1}}],[\"为什么满足这些概念就是线程不安全呢\",{\"1\":{\"80\":1}}],[\"为什么\",{\"1\":{\"21\":1}}],[\"为什么需要\",{\"1\":{\"18\":1,\"101\":1}}],[\"为什么还要\",{\"1\":{\"13\":1}}],[\"为\",{\"1\":{\"13\":3,\"21\":1,\"32\":2,\"48\":1,\"69\":1,\"72\":2,\"78\":3,\"109\":1}}],[\"为其处理器引入了全新的\",{\"1\":{\"11\":1}}],[\"此调用后\",{\"1\":{\"100\":1}}],[\"此操作同步于任何后继的取得同一互斥体所有权的锁定操作\",{\"1\":{\"83\":1}}],[\"此操作可能会由于某些硬件的特性而出现假失败\",{\"1\":{\"78\":1}}],[\"此设施来自微软并行模式库\",{\"1\":{\"73\":1}}],[\"此处可阅读部分源码\",{\"1\":{\"115\":1}}],[\"此处根本无需等待它\",{\"1\":{\"110\":1}}],[\"此处是确保输出流在多线程环境中同步\",{\"1\":{\"72\":1}}],[\"此处延时三秒可以方便测试\",{\"1\":{\"69\":1}}],[\"此处获取返回值\",{\"1\":{\"54\":1}}],[\"此处执行任务\",{\"1\":{\"54\":1}}],[\"此处存放作业\",{\"0\":{\"2\":1}}],[\"此策略表示由实现选择到底是否创建线程执行异步任务\",{\"1\":{\"53\":1}}],[\"此外\",{\"1\":{\"51\":2,\"70\":1,\"79\":1,\"82\":1,\"117\":1}}],[\"此线程对\",{\"1\":{\"36\":1}}],[\"此方式也在单例中多见\",{\"1\":{\"34\":1}}],[\"此时再进行操作时就得考虑\",{\"1\":{\"80\":1}}],[\"此时就需要使用\",{\"1\":{\"57\":1}}],[\"此时线程\",{\"1\":{\"28\":1}}],[\"此时线程函数还持有函数局部对象的指针或引用\",{\"1\":{\"13\":1}}],[\"此时可以判断操作是否完成\",{\"1\":{\"16\":1}}],[\"此时我们的\",{\"1\":{\"13\":1}}],[\"此时分离的子线程可能没有执行完毕\",{\"1\":{\"13\":1}}],[\"此时\",{\"1\":{\"13\":1,\"15\":2,\"17\":1,\"26\":1,\"50\":1,\"77\":2,\"78\":1,\"100\":1}}],[\"允许线程等待特定条件\",{\"1\":{\"117\":1}}],[\"允许更灵活的内存优化\",{\"1\":{\"86\":1}}],[\"允许用户原子地操纵\",{\"1\":{\"80\":1}}],[\"允许用户查询特定原子类型的操作是否是通过直接的原子指令实现\",{\"1\":{\"76\":1}}],[\"允许指定成功和失败情况下的内存序\",{\"1\":{\"78\":1}}],[\"允许任何数量的线程阻塞直至期待数量的线程到达\",{\"1\":{\"70\":1}}],[\"允许检查是否有停止请求\",{\"1\":{\"22\":1}}],[\"允许从外部请求线程停止\",{\"1\":{\"22\":1}}],[\"允许其他操作没有价值\",{\"1\":{\"14\":1}}],[\"允许此线程独立的运行\",{\"1\":{\"13\":1}}],[\"允许在每个内核上运行多个线程\",{\"1\":{\"11\":1}}],[\"drop\",{\"1\":{\"72\":6}}],[\"dis\",{\"1\":{\"69\":2}}],[\"distribution<>\",{\"1\":{\"69\":1}}],[\"distance\",{\"1\":{\"11\":6,\"54\":5}}],[\"divide\",{\"1\":{\"61\":1}}],[\"duration<>\",{\"1\":{\"60\":1,\"61\":1}}],[\"duration>\",{\"1\":{\"60\":1}}],[\"duration\",{\"1\":{\"60\":3}}],[\"duration\",{\"1\":{\"59\":1}}],[\"25>\",{\"1\":{\"59\":1}}],[\"25\",{\"1\":{\"59\":1,\"72\":1}}],[\"27\",{\"1\":{\"51\":1,\"72\":1}}],[\"29376\",{\"1\":{\"117\":2}}],[\"29\",{\"1\":{\"22\":1,\"72\":1}}],[\"24\",{\"1\":{\"21\":1,\"72\":1}}],[\"2我们写出了函数形参名称\",{\"1\":{\"13\":1}}],[\"2\",{\"1\":{\"11\":7,\"13\":5,\"22\":1,\"29\":2,\"31\":3,\"34\":1,\"36\":1,\"39\":1,\"40\":2,\"48\":3,\"49\":7,\"54\":3,\"57\":1,\"59\":1,\"71\":3,\"72\":5,\"76\":2,\"78\":1,\"79\":3,\"82\":1,\"115\":5,\"116\":1,\"117\":4}}],[\"200ms\",{\"1\":{\"22\":1}}],[\"20\",{\"1\":{\"11\":2,\"72\":1,\"76\":1,\"92\":1,\"116\":1}}],[\"20240731\",{\"1\":{\"2\":1}}],[\"2024\",{\"1\":{\"2\":1,\"11\":1,\"22\":1,\"58\":1}}],[\"假设略微了解操作系统基本知识\",{\"1\":{\"93\":1}}],[\"假设返回\",{\"1\":{\"78\":1}}],[\"假设我们有一个\",{\"1\":{\"69\":1}}],[\"假设一个时钟一秒有\",{\"1\":{\"59\":1}}],[\"假设需要执行一个耗时任务并获取其返回值\",{\"1\":{\"53\":1}}],[\"假设5秒后到达目的地\",{\"1\":{\"48\":1}}],[\"假设你正在一辆夜间运行的地铁上\",{\"1\":{\"48\":1}}],[\"假设线程\",{\"1\":{\"28\":1,\"72\":1}}],[\"假设有两个线程运行\",{\"1\":{\"78\":1}}],[\"假设有线程\",{\"1\":{\"28\":1}}],[\"假设有\",{\"1\":{\"11\":1}}],[\"假设开发者对操作系统等知识有基本了解\",{\"1\":{\"8\":1}}],[\"求和即可\",{\"1\":{\"11\":1}}],[\"到此也就足够了\",{\"1\":{\"116\":1}}],[\"到此也就可以了\",{\"1\":{\"111\":1}}],[\"到此就可以了\",{\"1\":{\"108\":1}}],[\"到此\",{\"1\":{\"49\":1,\"54\":1,\"61\":1,\"82\":1}}],[\"到底读取到多少不确定\",{\"1\":{\"75\":1}}],[\"到底哪个线程会抢到\",{\"1\":{\"49\":1}}],[\"到底是如何做到的\",{\"1\":{\"18\":1,\"101\":1}}],[\"到达目的地\",{\"1\":{\"48\":1}}],[\"到达设置的位置就提醒\",{\"1\":{\"48\":1}}],[\"到站的时候有人或者其它东西能将你叫醒\",{\"1\":{\"48\":1}}],[\"到\",{\"1\":{\"11\":1}}],[\"是通过执行\",{\"1\":{\"110\":1}}],[\"是先调用了\",{\"1\":{\"110\":1}}],[\"是调用\",{\"1\":{\"108\":1}}],[\"是为了确保延迟执行\",{\"1\":{\"109\":1}}],[\"是为了配合\",{\"1\":{\"108\":1}}],[\"是为了支持只能移动的类型能够使用\",{\"1\":{\"56\":1}}],[\"是相同的\",{\"1\":{\"108\":1}}],[\"是默认按值传递与\",{\"1\":{\"108\":1}}],[\"是用来管理一个共享状态的类模板\",{\"1\":{\"107\":1}}],[\"是无稽之谈\",{\"1\":{\"101\":1,\"102\":1,\"105\":1}}],[\"是无锁类型\",{\"1\":{\"76\":1}}],[\"是重中之重\",{\"1\":{\"100\":1}}],[\"是不是很熟悉\",{\"1\":{\"103\":1}}],[\"是不是线程安全\",{\"1\":{\"80\":1}}],[\"是不可复制的\",{\"1\":{\"100\":1}}],[\"是如何创建线程传递参数的\",{\"1\":{\"98\":1}}],[\"是如何构造的\",{\"1\":{\"98\":1}}],[\"是如何做到的呢\",{\"1\":{\"28\":1}}],[\"是强一致性模型的一种\",{\"1\":{\"86\":1}}],[\"是绝对安全的\",{\"1\":{\"84\":1}}],[\"是比较严格的内存模型\",{\"1\":{\"82\":1}}],[\"是原子操作\",{\"1\":{\"80\":1}}],[\"是最基本的整数原子类型\",{\"1\":{\"78\":1}}],[\"是最简单的原子类型\",{\"1\":{\"77\":1}}],[\"是最小\",{\"1\":{\"73\":1}}],[\"是编译期常量\",{\"1\":{\"76\":1}}],[\"是非原子操作\",{\"1\":{\"75\":1}}],[\"是我们设置的非类型模板参数\",{\"1\":{\"69\":1}}],[\"是我们学习\",{\"1\":{\"24\":1}}],[\"是在主线程运行的\",{\"1\":{\"66\":1}}],[\"是分钟类型\",{\"1\":{\"59\":1}}],[\"是按引用传递\",{\"1\":{\"57\":1}}],[\"是可见的\",{\"1\":{\"83\":1}}],[\"是可复制的\",{\"1\":{\"57\":1}}],[\"是可调用对象\",{\"1\":{\"54\":1}}],[\"是只能移动的\",{\"1\":{\"57\":1}}],[\"是只能移动不可复制的类\",{\"1\":{\"33\":1}}],[\"是系统调度决定的\",{\"1\":{\"49\":1}}],[\"是指针所指向的对象类型\",{\"1\":{\"79\":1}}],[\"是指门背后用来关门的棍子\",{\"1\":{\"71\":1}}],[\"是指提供稳定\",{\"1\":{\"59\":1}}],[\"是指在计算机科学和信息技术中的一种操作方式\",{\"1\":{\"47\":1}}],[\"是指拥有静态或线程存储期的局部变量\",{\"1\":{\"46\":1}}],[\"是因为\",{\"1\":{\"53\":1,\"91\":1}}],[\"是因为理论上线程变量一样可能产生数据竞争\",{\"1\":{\"46\":1}}],[\"是因为局部对象的构造\",{\"1\":{\"46\":1}}],[\"是操作系统内核功能\",{\"1\":{\"45\":1}}],[\"是局部对象\",{\"1\":{\"37\":1}}],[\"是全局对象\",{\"1\":{\"37\":1}}],[\"是安全的\",{\"1\":{\"35\":1}}],[\"是没有数据竞争的\",{\"1\":{\"35\":1}}],[\"是简单合理的做法\",{\"1\":{\"34\":1}}],[\"是线程协调机制\",{\"1\":{\"70\":1}}],[\"是线程安全的\",{\"1\":{\"37\":1}}],[\"是线程安全的吗\",{\"0\":{\"37\":1}}],[\"是线程安全\",{\"1\":{\"34\":1}}],[\"是线程分离\",{\"1\":{\"13\":1}}],[\"是查看指针是否为空\",{\"1\":{\"34\":1}}],[\"是灵活的\",{\"1\":{\"33\":1}}],[\"是自动发生的\",{\"1\":{\"33\":1}}],[\"是有虚函数的\",{\"1\":{\"108\":1}}],[\"是有\",{\"1\":{\"32\":1}}],[\"是互斥量中的一种尝试上锁的方式\",{\"1\":{\"29\":1}}],[\"是否为\",{\"1\":{\"109\":1}}],[\"是否已经调用过\",{\"1\":{\"108\":1}}],[\"是否能够看到线程\",{\"1\":{\"83\":1}}],[\"是否总是无锁\",{\"1\":{\"76\":1}}],[\"是否收到了停止请求\",{\"1\":{\"22\":1}}],[\"是否对未捕获的异常进行任何栈回溯由实现定义\",{\"1\":{\"14\":1}}],[\"是一次性的\",{\"1\":{\"56\":1,\"57\":2}}],[\"是一种抽象的指代\",{\"1\":{\"113\":1}}],[\"是一种开源的精简指令集计算\",{\"1\":{\"86\":1}}],[\"是一种精简指令集计算\",{\"1\":{\"86\":1}}],[\"是一种强一致性模型\",{\"1\":{\"86\":1}}],[\"是一种复杂指令集计算\",{\"1\":{\"86\":1}}],[\"是一种非常古老的机制\",{\"1\":{\"38\":1}}],[\"是一种用来保护临界区\",{\"1\":{\"27\":1}}],[\"是一种发送取消请求的函数\",{\"1\":{\"22\":1}}],[\"是一个跨平台的\",{\"1\":{\"115\":1}}],[\"是一个指针类型\",{\"1\":{\"109\":1}}],[\"是一个空类\",{\"1\":{\"108\":1}}],[\"是一个类型形参包\",{\"1\":{\"108\":1}}],[\"是一个类模板\",{\"1\":{\"103\":1}}],[\"是一个可变参数类模板\",{\"1\":{\"103\":1}}],[\"是一个宏\",{\"1\":{\"100\":1,\"108\":2}}],[\"是一个结构体\",{\"1\":{\"99\":1}}],[\"是一个枚举类型\",{\"1\":{\"84\":1}}],[\"是一个原子指针类型\",{\"1\":{\"79\":1}}],[\"是一个加载操作\",{\"1\":{\"78\":1}}],[\"是一个存储操作\",{\"1\":{\"78\":1}}],[\"是一个\",{\"1\":{\"77\":1,\"78\":1}}],[\"是一个轻量同步原语\",{\"1\":{\"69\":1}}],[\"是一个古老而广泛应用的同步设施\",{\"1\":{\"69\":1}}],[\"是一个分数类模板\",{\"1\":{\"59\":1}}],[\"是一个数组对象\",{\"1\":{\"15\":1}}],[\"是一个整体\",{\"1\":{\"15\":1}}],[\"是一个函数类型\",{\"1\":{\"13\":1}}],[\"是一个返回类型为\",{\"1\":{\"13\":1}}],[\"是打印时间格式\",{\"1\":{\"16\":1}}],[\"是第一个被销毁的\",{\"1\":{\"14\":1}}],[\"是每个线程分配的任务\",{\"1\":{\"11\":1}}],[\"是当前硬件支持的并发线程的值\",{\"1\":{\"11\":1}}],[\"是\",{\"1\":{\"11\":1,\"13\":2,\"16\":1,\"32\":2,\"36\":1,\"60\":2,\"69\":1,\"83\":1,\"113\":1,\"115\":1,\"116\":1}}],[\"是很快的\",{\"1\":{\"6\":1}}],[\"定义一个信号量\",{\"1\":{\"69\":1}}],[\"定义一个函数用作打印任务\",{\"1\":{\"10\":1}}],[\"定义在\",{\"1\":{\"69\":1}}],[\"定义的\",{\"1\":{\"60\":1}}],[\"定义的别名\",{\"1\":{\"60\":1}}],[\"定义了一个元组类型\",{\"1\":{\"100\":1}}],[\"定义了一个别名\",{\"1\":{\"11\":1}}],[\"定义了很多种时间类型\",{\"1\":{\"59\":1}}],[\"定义\",{\"1\":{\"13\":1,\"108\":2}}],[\"汇总线程的计算结果\",{\"1\":{\"11\":1,\"54\":1}}],[\"elif\",{\"1\":{\"76\":1}}],[\"else\",{\"1\":{\"22\":1,\"29\":2,\"76\":2,\"78\":2,\"80\":2,\"100\":2,\"101\":1,\"109\":1,\"110\":1}}],[\"e\",{\"1\":{\"55\":4,\"56\":2}}],[\"empty\",{\"1\":{\"49\":4,\"50\":3,\"117\":2}}],[\"emplace\",{\"1\":{\"11\":1,\"19\":2,\"26\":3,\"27\":2,\"54\":2,\"69\":1,\"71\":1,\"72\":2,\"110\":5,\"117\":4}}],[\"exec\",{\"1\":{\"116\":1}}],[\"exit\",{\"1\":{\"100\":1,\"108\":1,\"110\":4}}],[\"exchang\",{\"1\":{\"78\":1,\"80\":1}}],[\"exchanged\",{\"1\":{\"76\":3}}],[\"exchange\",{\"1\":{\"76\":8,\"78\":16,\"79\":3,\"100\":2}}],[\"exception`\",{\"1\":{\"109\":1}}],[\"exception\",{\"1\":{\"34\":2,\"55\":15,\"56\":4,\"108\":9,\"109\":12,\"110\":2}}],[\"extensions\",{\"1\":{\"38\":1}}],[\"extern\",{\"1\":{\"33\":5}}],[\"expopt\",{\"1\":{\"108\":1}}],[\"export\",{\"1\":{\"28\":1,\"60\":1,\"103\":1,\"108\":3,\"109\":1}}],[\"explorer\",{\"1\":{\"94\":1}}],[\"explicit\",{\"1\":{\"14\":1,\"19\":2,\"22\":1,\"28\":1,\"100\":1,\"103\":6,\"104\":2}}],[\"expected↩︎\",{\"1\":{\"91\":1}}],[\"expected\",{\"1\":{\"78\":11,\"91\":1}}],[\"errc\",{\"1\":{\"32\":2,\"56\":1,\"108\":7,\"109\":3,\"110\":1}}],[\"error2\",{\"1\":{\"108\":6,\"109\":3,\"110\":1}}],[\"error\",{\"1\":{\"17\":1,\"32\":2,\"34\":1,\"53\":2,\"55\":3,\"100\":3,\"117\":1}}],[\"erase\",{\"1\":{\"26\":1}}],[\"enum\",{\"1\":{\"51\":1,\"84\":2,\"116\":1}}],[\"enable\",{\"1\":{\"22\":1,\"100\":3}}],[\"endif\",{\"1\":{\"76\":1,\"101\":1}}],[\"end\",{\"1\":{\"11\":7,\"28\":2,\"35\":1,\"54\":4,\"61\":2,\"72\":2,\"82\":4,\"108\":3,\"110\":1}}],[\"endl\",{\"1\":{\"10\":2,\"16\":3,\"22\":1,\"29\":3,\"36\":2,\"48\":1,\"49\":2,\"50\":1,\"55\":1,\"57\":8,\"69\":1,\"76\":8,\"80\":4}}],[\"创建并启动指定数量的线程\",{\"1\":{\"117\":1}}],[\"创建并启动线程\",{\"1\":{\"11\":1}}],[\"创建任务对象\",{\"1\":{\"116\":1}}],[\"创建\",{\"1\":{\"111\":1}}],[\"创建的索引形参包\",{\"1\":{\"100\":1}}],[\"创建控件\",{\"1\":{\"65\":1}}],[\"创建一个有\",{\"1\":{\"117\":2}}],[\"创建一个包含\",{\"1\":{\"115\":1}}],[\"创建一个\",{\"1\":{\"55\":1,\"76\":1}}],[\"创建一个线程来执行异步任务\",{\"1\":{\"54\":1}}],[\"创建线程池\",{\"1\":{\"115\":1}}],[\"创建线程池时\",{\"1\":{\"115\":1}}],[\"创建线程池对象\",{\"1\":{\"115\":1}}],[\"创建线程\",{\"1\":{\"101\":1}}],[\"创建线程执行异步任务\",{\"1\":{\"53\":1}}],[\"创建线程对象\",{\"1\":{\"13\":1}}],[\"创建异步任务获取返回值\",{\"0\":{\"53\":1}}],[\"创建了一个独占指针\",{\"1\":{\"100\":1}}],[\"创建了一个条件变量\",{\"1\":{\"48\":1}}],[\"创建了一个互斥量\",{\"1\":{\"48\":1}}],[\"创建了一个块作用域\",{\"1\":{\"28\":1}}],[\"创建了一个线程对象\",{\"1\":{\"10\":1}}],[\"创建局部对象\",{\"1\":{\"13\":1}}],[\">activethreadcount\",{\"1\":{\"116\":1}}],[\">addwidget\",{\"1\":{\"65\":3}}],[\">start\",{\"1\":{\"116\":2}}],[\">setlayout\",{\"1\":{\"65\":1}}],[\">setsizepolicy\",{\"1\":{\"65\":2}}],[\">setstylesheet\",{\"1\":{\"65\":3}}],[\">setmaximumwidth\",{\"1\":{\"65\":2}}],[\">setminimumsize\",{\"1\":{\"65\":2}}],[\">setvalue\",{\"1\":{\"63\":1,\"65\":1}}],[\">settext\",{\"1\":{\"63\":2,\"65\":2}}],[\">setrange\",{\"1\":{\"63\":1,\"65\":2}}],[\">setenabled\",{\"1\":{\"63\":2,\"65\":2}}],[\">second\",{\"1\":{\"35\":1}}],[\">maxthreadcount\",{\"1\":{\"116\":1}}],[\">get\",{\"1\":{\"80\":3,\"117\":1}}],[\">>\",{\"1\":{\"54\":1,\"108\":4,\"117\":2}}],[\">>tasks\",{\"1\":{\"54\":1}}],[\">unlock\",{\"1\":{\"32\":1}}],[\">lock\",{\"1\":{\"32\":2}}],[\">do\",{\"1\":{\"30\":1,\"34\":3}}],[\">=\",{\"1\":{\"11\":1}}],[\">\",{\"1\":{\"11\":1,\"22\":1,\"36\":2,\"48\":1,\"54\":9,\"56\":1,\"61\":1,\"72\":2,\"78\":1,\"79\":5,\"100\":9,\"101\":1,\"103\":2,\"104\":2,\"108\":27,\"109\":9,\"110\":3,\"117\":2}}],[\"virtual\",{\"1\":{\"109\":2}}],[\"visual\",{\"1\":{\"64\":1}}],[\"vmajornext\",{\"1\":{\"53\":1,\"108\":1}}],[\"vue\",{\"1\":{\"51\":1}}],[\"variable>\",{\"1\":{\"48\":1,\"117\":1}}],[\"variable\",{\"1\":{\"48\":11,\"49\":1,\"50\":1,\"58\":1,\"61\":1,\"108\":1,\"117\":3}}],[\"variables\",{\"1\":{\"40\":1}}],[\"val\",{\"1\":{\"110\":7}}],[\"valid\",{\"1\":{\"53\":3,\"56\":2,\"57\":1,\"108\":6,\"109\":2}}],[\"validate\",{\"1\":{\"32\":3}}],[\"value++\",{\"1\":{\"22\":1}}],[\"value\",{\"1\":{\"11\":10,\"22\":1,\"35\":2,\"49\":8,\"54\":9,\"55\":9,\"56\":3,\"76\":10,\"78\":2,\"80\":13,\"108\":7,\"109\":17,\"110\":9}}],[\"v\",{\"1\":{\"26\":6,\"37\":2,\"86\":5,\"98\":1,\"107\":1}}],[\"v\",{\"1\":{\"28\":1}}],[\"vectorv\",{\"1\":{\"26\":1}}],[\"vector\",{\"1\":{\"60\":2,\"76\":3}}],[\"long\",{\"1\":{\"60\":3,\"61\":1,\"76\":5,\"115\":1}}],[\"local\",{\"1\":{\"38\":13,\"39\":4,\"44\":1,\"56\":7,\"109\":10}}],[\"local关键字\",{\"1\":{\"38\":1}}],[\"localtime\",{\"1\":{\"16\":3,\"59\":2}}],[\"lock<>\",{\"1\":{\"103\":2}}],[\"lock<\",{\"1\":{\"103\":1}}],[\"lock\",{\"1\":{\"48\":2,\"108\":1,\"109\":4,\"110\":2}}],[\"lock\",{\"1\":{\"28\":3}}],[\"list\",{\"1\":{\"28\":28}}],[\"lib\",{\"1\":{\"61\":1}}],[\"libopenal\",{\"1\":{\"51\":1}}],[\"libflac\",{\"1\":{\"51\":1}}],[\"library\",{\"1\":{\"22\":1}}],[\"libc++的实现\",{\"1\":{\"102\":1}}],[\"libc++\",{\"1\":{\"21\":1,\"22\":2,\"72\":1,\"77\":1,\"94\":1,\"101\":1,\"104\":1}}],[\"libstdc++\",{\"1\":{\"21\":1,\"22\":1,\"53\":1,\"72\":1,\"77\":1,\"94\":1,\"101\":3,\"102\":1,\"104\":1}}],[\"literals\",{\"1\":{\"16\":2,\"22\":2,\"60\":2,\"61\":1}}],[\"latch\",{\"1\":{\"70\":2,\"71\":13,\"72\":2}}],[\"layout\",{\"1\":{\"65\":5}}],[\"launched\",{\"1\":{\"108\":2}}],[\"launch\",{\"1\":{\"39\":2,\"53\":19,\"57\":2,\"60\":1,\"63\":1,\"65\":1,\"66\":1,\"108\":18,\"109\":6,\"110\":1,\"111\":3}}],[\"lambda\",{\"1\":{\"13\":2,\"54\":3,\"57\":2,\"66\":1,\"72\":2}}],[\"last\",{\"1\":{\"11\":5,\"54\":3}}],[\"物理核心这个通常不看重\",{\"1\":{\"11\":1}}],[\"6900\",{\"1\":{\"117\":4}}],[\"69\",{\"1\":{\"72\":1}}],[\"68\",{\"1\":{\"72\":1}}],[\"67\",{\"1\":{\"72\":1}}],[\"66\",{\"1\":{\"72\":1,\"104\":1}}],[\"65\",{\"1\":{\"72\":1}}],[\"63\",{\"1\":{\"72\":1}}],[\"62\",{\"1\":{\"72\":1}}],[\"61\",{\"1\":{\"72\":1}}],[\"60\",{\"1\":{\"59\":1,\"72\":1,\"76\":1}}],[\"64\",{\"1\":{\"21\":1,\"72\":1,\"101\":1}}],[\"6\",{\"1\":{\"11\":1,\"40\":1,\"45\":1,\"60\":1,\"61\":3,\"72\":1,\"84\":1,\"116\":1,\"117\":3}}],[\"有三个偏特化\",{\"1\":{\"108\":1}}],[\"有两个重载\",{\"1\":{\"108\":1}}],[\"有两个小孩\",{\"1\":{\"31\":1}}],[\"有四个构造函数\",{\"1\":{\"100\":1}}],[\"有限的特性使得\",{\"1\":{\"77\":1}}],[\"有可能不会是\",{\"1\":{\"61\":1}}],[\"有可能函数\",{\"1\":{\"31\":1}}],[\"有一个\",{\"1\":{\"57\":1}}],[\"有一个局限\",{\"1\":{\"57\":1}}],[\"有一个玩具\",{\"1\":{\"31\":1}}],[\"有时可以通过改变数据结构来避免对原子操作的依赖\",{\"1\":{\"76\":1}}],[\"有时候线程可能会在没有收到通知的情况下被唤醒\",{\"1\":{\"48\":1}}],[\"有时这是无法避免的\",{\"1\":{\"31\":1}}],[\"有特殊需求\",{\"1\":{\"48\":1}}],[\"有兴趣参见我们的链接即可\",{\"1\":{\"38\":1}}],[\"有它的定义\",{\"1\":{\"33\":1}}],[\"有疑问\",{\"1\":{\"33\":1}}],[\"有些功能实现起来非常简单\",{\"1\":{\"117\":1}}],[\"有些人可能喜欢称作\",{\"1\":{\"46\":1}}],[\"有些人认为二者大多数时候是相同的\",{\"1\":{\"7\":1}}],[\"有些人认为二者毫无关系\",{\"1\":{\"7\":1}}],[\"有些时候\",{\"1\":{\"33\":1}}],[\"有的时候只需要一个指针或者引用\",{\"1\":{\"30\":1}}],[\"有数据竞争\",{\"1\":{\"26\":1}}],[\"有关线程安全的其它问题\",{\"1\":{\"25\":1}}],[\"有点像外部给线程传递信号一样\",{\"1\":{\"22\":1}}],[\"有\",{\"1\":{\"11\":1}}],[\"19\",{\"1\":{\"72\":1}}],[\"18\",{\"1\":{\"72\":1}}],[\"17\",{\"1\":{\"72\":1,\"98\":1,\"107\":1,\"109\":1}}],[\"13\",{\"1\":{\"72\":1}}],[\"13700h\",{\"1\":{\"11\":1}}],[\"11\",{\"1\":{\"72\":1}}],[\"11检测全部完成\",{\"1\":{\"51\":1}}],[\"1h\",{\"1\":{\"60\":1}}],[\"1min\",{\"1\":{\"60\":1}}],[\"1ms\",{\"1\":{\"60\":1}}],[\"1s\",{\"1\":{\"60\":1,\"71\":1}}],[\"1us\",{\"1\":{\"60\":1}}],[\"1ns\",{\"1\":{\"60\":1}}],[\"1>\",{\"1\":{\"59\":1}}],[\"1f\",{\"1\":{\"50\":1}}],[\"15\",{\"1\":{\"22\":1,\"61\":3,\"72\":1}}],[\"16\",{\"1\":{\"21\":2,\"32\":1,\"72\":1,\"99\":2}}],[\"10px\",{\"1\":{\"65\":1}}],[\"10ms\",{\"1\":{\"63\":1,\"65\":1,\"80\":2}}],[\"10反应杯不足\",{\"1\":{\"51\":1}}],[\"1024\",{\"1\":{\"15\":3,\"95\":1}}],[\"1024000\",{\"1\":{\"11\":2,\"54\":1}}],[\"100ms\",{\"1\":{\"80\":2}}],[\"1000\",{\"1\":{\"61\":1,\"63\":2,\"65\":3}}],[\"10000000>>\",{\"1\":{\"61\":1}}],[\"1000>\",{\"1\":{\"60\":1}}],[\"100\",{\"1\":{\"13\":2,\"29\":1,\"48\":1,\"55\":3,\"61\":2,\"65\":4,\"72\":1,\"80\":3}}],[\"10\",{\"1\":{\"11\":1,\"13\":3,\"14\":1,\"19\":3,\"27\":2,\"53\":3,\"54\":3,\"57\":1,\"58\":2,\"69\":2,\"71\":2,\"72\":5,\"76\":1,\"80\":7,\"115\":2,\"116\":2,\"117\":2}}],[\"1\",{\"1\":{\"11\":5,\"13\":5,\"15\":3,\"17\":3,\"22\":3,\"26\":1,\"27\":1,\"28\":1,\"29\":3,\"31\":3,\"34\":1,\"36\":4,\"37\":2,\"38\":1,\"39\":3,\"48\":3,\"49\":5,\"53\":2,\"54\":1,\"55\":1,\"57\":2,\"59\":3,\"61\":5,\"69\":2,\"71\":2,\"72\":14,\"73\":1,\"76\":2,\"78\":1,\"79\":5,\"82\":1,\"101\":1,\"108\":5,\"109\":1,\"116\":2,\"117\":2}}],[\"14px\",{\"1\":{\"65\":1}}],[\"14\",{\"1\":{\"11\":1,\"72\":1}}],[\"123\",{\"1\":{\"58\":1,\"60\":2}}],[\"12\",{\"1\":{\"11\":1,\"72\":1}}],[\"混合设计架构\",{\"1\":{\"11\":1}}],[\"大部分开发者早就自己使用\",{\"1\":{\"113\":1}}],[\"大体来说我们可以将它们分为三类\",{\"1\":{\"84\":1}}],[\"大家可以使用\",{\"1\":{\"51\":1}}],[\"大家可以打开自己电脑的任务管理器看一眼\",{\"1\":{\"6\":1}}],[\"大多数的提示音播放都是短暂且简单\",{\"1\":{\"50\":1}}],[\"大多数时候它是合适的\",{\"1\":{\"13\":1}}],[\"大约\",{\"1\":{\"22\":1}}],[\"大小为\",{\"1\":{\"21\":1}}],[\"大小核\",{\"1\":{\"11\":1}}],[\"代表这些任务就是在主线程\",{\"1\":{\"65\":1}}],[\"代表一秒\",{\"1\":{\"60\":1}}],[\"代酷睿开始\",{\"1\":{\"11\":1}}],[\"代码很简单\",{\"1\":{\"115\":1}}],[\"代码如下\",{\"1\":{\"108\":1}}],[\"代码进行讲解\",{\"1\":{\"98\":1,\"102\":1}}],[\"代码风格\",{\"0\":{\"95\":1}}],[\"代码后如下\",{\"1\":{\"31\":1}}],[\"代码创建了一个调用\",{\"1\":{\"15\":1}}],[\"代码\",{\"1\":{\"0\":1}}],[\"英特尔从\",{\"1\":{\"11\":1}}],[\"英特尔®\",{\"1\":{\"11\":1}}],[\"都可以进行所谓的\",{\"1\":{\"113\":1}}],[\"都继承自\",{\"1\":{\"108\":1}}],[\"都没这样做\",{\"1\":{\"104\":1}}],[\"都进行零初始化\",{\"1\":{\"100\":1}}],[\"都是微软提供的用于创建线程的\",{\"1\":{\"101\":1}}],[\"都是弱序内存模型\",{\"1\":{\"86\":1}}],[\"都是省略了\",{\"1\":{\"60\":1}}],[\"都有一个内存序参数\",{\"1\":{\"76\":1}}],[\"都提供了函数\",{\"1\":{\"59\":1}}],[\"都会返回\",{\"1\":{\"53\":1}}],[\"都会获得该变量的一个副本\",{\"1\":{\"40\":1}}],[\"都声明在\",{\"1\":{\"52\":1}}],[\"都只能单独执行\",{\"1\":{\"49\":1}}],[\"都要进行读取\",{\"1\":{\"35\":1}}],[\"都以\",{\"1\":{\"32\":1}}],[\"都与线程对象关联\",{\"1\":{\"23\":1}}],[\"都能正常析构\",{\"1\":{\"17\":1}}],[\"都基于这个类\",{\"1\":{\"16\":1}}],[\"都被销毁了\",{\"1\":{\"13\":1}}],[\"都\",{\"1\":{\"11\":1}}],[\"都并行\",{\"1\":{\"6\":1}}],[\"个字节\",{\"1\":{\"99\":1}}],[\"个常量\",{\"1\":{\"84\":1}}],[\"个同时访问者\",{\"1\":{\"69\":2}}],[\"个并发请求\",{\"1\":{\"69\":1}}],[\"个并发线程\",{\"1\":{\"11\":1}}],[\"个\",{\"1\":{\"69\":1,\"72\":1}}],[\"个节拍\",{\"1\":{\"59\":1}}],[\"个线程的线程池\",{\"1\":{\"115\":1,\"117\":2}}],[\"个线程\",{\"1\":{\"19\":1,\"115\":1}}],[\"个线程执行\",{\"1\":{\"11\":1}}],[\"个元素被分配给了前两个线程\",{\"1\":{\"11\":1}}],[\"个性能核\",{\"1\":{\"11\":1}}],[\"个能效核\",{\"1\":{\"11\":1}}],[\"个任务分配三个线程\",{\"1\":{\"11\":1}}],[\"个任务\",{\"1\":{\"11\":1}}],[\"核心是监控一个音频队列\",{\"1\":{\"50\":1}}],[\"核心\",{\"1\":{\"11\":2}}],[\"一节中我们也详细聊过\",{\"1\":{\"109\":1}}],[\"一切的重点\",{\"1\":{\"108\":1}}],[\"一切最终都是依靠开发者使用与管理\",{\"1\":{\"31\":1}}],[\"一定要会使用\",{\"1\":{\"104\":1}}],[\"一定时间内没有连接到服务器就不会继续阻塞了\",{\"1\":{\"58\":1}}],[\"一般初始化时使用\",{\"1\":{\"95\":1}}],[\"一般都是互斥量\",{\"1\":{\"83\":1}}],[\"一般最好使用\",{\"1\":{\"77\":1}}],[\"一般不建议指出\",{\"1\":{\"34\":1}}],[\"一种是\",{\"1\":{\"58\":1}}],[\"一种可能的使用是允许函数去锁住一个互斥量\",{\"1\":{\"33\":1}}],[\"一旦有提示音需要播放\",{\"1\":{\"50\":1}}],[\"一旦条件满足\",{\"1\":{\"48\":1}}],[\"一直不休息\",{\"1\":{\"48\":1}}],[\"一起使用\",{\"1\":{\"39\":1,\"54\":1}}],[\"一起出现\",{\"1\":{\"35\":1}}],[\"一样错误\",{\"1\":{\"53\":1}}],[\"一样\",{\"1\":{\"53\":2,\"57\":1}}],[\"一样使用\",{\"1\":{\"32\":1}}],[\"一样只是多了复制\",{\"1\":{\"15\":1}}],[\"一个可调用\",{\"1\":{\"104\":1}}],[\"一个静态函数指针\",{\"1\":{\"100\":1}}],[\"一个在互联网上非常热门的八股问题是\",{\"1\":{\"80\":1}}],[\"一个常见的例子是在很多网络库中的\",{\"1\":{\"58\":1}}],[\"一个常见的场景是\",{\"1\":{\"50\":1}}],[\"一个异常\",{\"1\":{\"55\":3}}],[\"一个成员函数在对象构造时就启动\",{\"1\":{\"50\":1}}],[\"一个操作完成后才能开始下一个操作\",{\"1\":{\"47\":1}}],[\"一个直观的展示是\",{\"1\":{\"37\":1}}],[\"一个线程\",{\"1\":{\"49\":1}}],[\"一个线程会尝试在释放一个互斥量前多次获取\",{\"1\":{\"36\":1}}],[\"一个线程知道另一个线程已经在执行③\",{\"1\":{\"34\":1}}],[\"一个互斥量的指针\",{\"1\":{\"32\":1}}],[\"一个引用\",{\"1\":{\"28\":1}}],[\"一个冲突的求值发生早于\",{\"1\":{\"26\":1}}],[\"一个删除元素\",{\"1\":{\"26\":1}}],[\"一次是调用函数\",{\"1\":{\"15\":1}}],[\"一次是被\",{\"1\":{\"15\":1}}],[\"一款\",{\"1\":{\"11\":1}}],[\"一些当前线程可能抛出异常的代码\",{\"1\":{\"13\":3}}],[\"一些老式特殊情况不聊\",{\"1\":{\"13\":1}}],[\"一些古老的书籍比如\",{\"1\":{\"11\":1}}],[\"一些单核机器\",{\"1\":{\"6\":1}}],[\"abi\",{\"1\":{\"100\":1,\"108\":1}}],[\"at\",{\"1\":{\"100\":1,\"108\":1,\"110\":4}}],[\"atomic类型\",{\"1\":{\"78\":1}}],[\"atomic\",{\"1\":{\"76\":1}}],[\"atomic\",{\"1\":{\"76\":1}}],[\"atomic\",{\"1\":{\"76\":7}}],[\"atomic\",{\"1\":{\"76\":1}}],[\"atomicb\",{\"1\":{\"78\":1}}],[\"atomic\",{\"1\":{\"50\":1,\"76\":2,\"77\":1,\"78\":11,\"117\":3}}],[\"atomic\",{\"1\":{\"26\":1,\"72\":1,\"75\":1,\"76\":46,\"77\":20,\"78\":3,\"80\":6}}],[\"avoid\",{\"1\":{\"100\":1}}],[\"again\",{\"1\":{\"100\":2}}],[\"await\",{\"1\":{\"92\":1}}],[\"aware\",{\"1\":{\"77\":1}}],[\"asio\",{\"1\":{\"115\":16,\"116\":2,\"117\":1,\"118\":1}}],[\"as\",{\"1\":{\"82\":1}}],[\"asscoiated\",{\"1\":{\"110\":1}}],[\"asscociated\",{\"1\":{\"109\":1}}],[\"assigns\",{\"1\":{\"110\":1}}],[\"assigned\",{\"1\":{\"109\":1}}],[\"assignable\",{\"1\":{\"108\":15,\"110\":1}}],[\"arg\",{\"1\":{\"53\":1,\"108\":8,\"116\":1}}],[\"args\",{\"1\":{\"19\":3,\"22\":2,\"54\":4,\"100\":9,\"108\":15,\"110\":2,\"117\":3}}],[\"args>\",{\"1\":{\"19\":1,\"22\":3,\"54\":1,\"100\":7,\"101\":1,\"117\":1}}],[\"array\",{\"1\":{\"51\":1,\"79\":6,\"109\":1}}],[\"arrive\",{\"1\":{\"71\":3,\"72\":14}}],[\"arrived\",{\"1\":{\"48\":9}}],[\"arrival\",{\"1\":{\"48\":6}}],[\"any\",{\"1\":{\"48\":7}}],[\"and\",{\"1\":{\"22\":2,\"28\":1,\"71\":3,\"72\":12,\"77\":7,\"78\":1,\"103\":2,\"104\":1}}],[\"always\",{\"1\":{\"76\":6}}],[\"alignhcenter\",{\"1\":{\"65\":2}}],[\"align\",{\"1\":{\"65\":2}}],[\"aligned\",{\"1\":{\"37\":1}}],[\"already\",{\"1\":{\"55\":2,\"108\":3,\"109\":2,\"110\":3}}],[\"all\",{\"1\":{\"50\":1,\"80\":1,\"108\":3,\"110\":1,\"117\":1}}],[\"alloc\",{\"1\":{\"37\":1}}],[\"adl\",{\"1\":{\"100\":1}}],[\"adapter<\",{\"1\":{\"108\":2}}],[\"adapt\",{\"1\":{\"100\":1}}],[\"addaudiopath\",{\"1\":{\"50\":2}}],[\"addressof\",{\"1\":{\"32\":1,\"108\":1,\"110\":1}}],[\"add\",{\"1\":{\"28\":6,\"76\":1,\"79\":4,\"115\":1}}],[\"adopt\",{\"1\":{\"28\":2,\"31\":3,\"32\":5,\"103\":3,\"104\":3}}],[\"ax\",{\"1\":{\"22\":3,\"100\":5}}],[\"after\",{\"1\":{\"16\":1}}],[\"a的引用只能引用a\",{\"1\":{\"15\":1}}],[\"a\",{\"1\":{\"15\":8,\"28\":6,\"30\":1,\"31\":10,\"53\":1,\"54\":8,\"75\":8,\"76\":2,\"83\":9,\"108\":3,\"109\":5,\"110\":3}}],[\"actually\",{\"1\":{\"77\":1}}],[\"active\",{\"1\":{\"72\":3}}],[\"acq\",{\"1\":{\"76\":1,\"78\":1,\"84\":4}}],[\"acquire\",{\"1\":{\"69\":7,\"76\":2,\"77\":1,\"78\":3,\"83\":1,\"84\":4}}],[\"acquisition\",{\"1\":{\"14\":1}}],[\"accumulate\",{\"1\":{\"11\":4,\"28\":1,\"54\":2}}],[\"amd\",{\"1\":{\"11\":1}}],[\"更新值并唤醒\",{\"1\":{\"80\":1}}],[\"更新和用户交互\",{\"1\":{\"62\":1}}],[\"更多的是一些风格上的\",{\"1\":{\"102\":1}}],[\"更多的问题参见源码都很直观\",{\"1\":{\"61\":1}}],[\"更多的线程意味着可以并行完成更多的工作\",{\"1\":{\"11\":1}}],[\"更合理的方案是\",{\"1\":{\"50\":1}}],[\"更换为\",{\"1\":{\"48\":1}}],[\"更加简洁\",{\"1\":{\"76\":1}}],[\"更加灵活\",{\"1\":{\"32\":1}}],[\"更加的灵活\",{\"1\":{\"32\":1}}],[\"更加注重性能\",{\"1\":{\"7\":1}}],[\"更好\",{\"1\":{\"31\":1}}],[\"支持任意可调用\",{\"1\":{\"53\":1}}],[\"支持的形式还有很多\",{\"1\":{\"13\":1}}],[\"支持\",{\"1\":{\"11\":1}}],[\"==\",{\"1\":{\"31\":3,\"32\":1,\"50\":1,\"57\":1,\"60\":2,\"61\":1,\"72\":2,\"76\":2,\"79\":4,\"115\":1,\"117\":1}}],[\"=delete\",{\"1\":{\"14\":1}}],[\"=\",{\"1\":{\"11\":19,\"13\":4,\"14\":3,\"15\":12,\"16\":6,\"17\":4,\"19\":4,\"22\":1,\"26\":2,\"27\":2,\"28\":4,\"30\":2,\"32\":3,\"33\":2,\"34\":1,\"35\":3,\"37\":5,\"38\":4,\"39\":1,\"48\":4,\"49\":3,\"50\":2,\"53\":14,\"54\":16,\"55\":5,\"56\":1,\"57\":6,\"59\":6,\"60\":23,\"61\":5,\"63\":3,\"65\":9,\"69\":3,\"71\":1,\"72\":7,\"75\":1,\"76\":20,\"77\":4,\"78\":12,\"79\":4,\"80\":17,\"84\":6,\"91\":1,\"95\":3,\"99\":1,\"100\":15,\"101\":3,\"103\":8,\"108\":19,\"109\":8,\"110\":2,\"115\":4,\"116\":5,\"117\":17}}],[\"highestpriority\",{\"1\":{\"116\":1}}],[\"highpriority\",{\"1\":{\"116\":2}}],[\"hpp>\",{\"1\":{\"115\":1}}],[\"homework\",{\"1\":{\"118\":1}}],[\"holds\",{\"1\":{\"109\":1}}],[\"holder<\",{\"1\":{\"108\":1}}],[\"hour\",{\"1\":{\"60\":1}}],[\"hours\",{\"1\":{\"60\":2}}],[\"hnd\",{\"1\":{\"99\":2,\"100\":7}}],[\"has\",{\"1\":{\"101\":2,\"108\":1,\"110\":2}}],[\"handle\",{\"1\":{\"69\":3,\"99\":1,\"100\":1,\"101\":2}}],[\"hardware\",{\"1\":{\"11\":5,\"54\":1,\"115\":3,\"117\":1}}],[\"held\",{\"1\":{\"109\":1,\"110\":2}}],[\"hello\",{\"0\":{\"10\":1},\"1\":{\"10\":8,\"11\":1,\"13\":1,\"15\":2}}],[\"here\",{\"1\":{\"53\":1,\"108\":1}}],[\"h\",{\"1\":{\"13\":2,\"16\":3,\"59\":2,\"64\":1}}],[\"当调用\",{\"1\":{\"109\":1}}],[\"当异步任务完成时\",{\"1\":{\"108\":1}}],[\"当异常抛出时\",{\"1\":{\"14\":1}}],[\"当线程请求锁\",{\"1\":{\"77\":1}}],[\"当标志对象已初始化\",{\"1\":{\"77\":1}}],[\"当完成一个阶段\",{\"1\":{\"72\":1}}],[\"当不要求截断值的情况下\",{\"1\":{\"60\":1}}],[\"当一个时钟的时钟节拍每\",{\"1\":{\"59\":1}}],[\"当结果被某个线程获取后\",{\"1\":{\"57\":1}}],[\"当我们想要获取任务的返回值的时候\",{\"1\":{\"54\":1}}],[\"当我们使用函数对象用于构造\",{\"1\":{\"13\":1}}],[\"当需要任务执行完的结果的时候\",{\"1\":{\"53\":1}}],[\"当多个线程需要访问一个独立\",{\"1\":{\"52\":1}}],[\"当多个线程执行函数\",{\"1\":{\"27\":1}}],[\"当外部通过调用\",{\"1\":{\"50\":1}}],[\"当有新的任务加入队列\",{\"1\":{\"113\":1}}],[\"当有新任务加入时\",{\"1\":{\"113\":1}}],[\"当有新任务时通知音频线程\",{\"1\":{\"50\":1}}],[\"当有多个互斥量保护同一个类的对象时\",{\"1\":{\"31\":1}}],[\"当没有需要播放的提示时\",{\"1\":{\"50\":1}}],[\"当队列为空时\",{\"1\":{\"49\":2}}],[\"当执行\",{\"1\":{\"49\":1}}],[\"当条件不满足时\",{\"1\":{\"48\":1}}],[\"当同一线程多次对同一个\",{\"1\":{\"36\":1}}],[\"当获取锁后会再检查一次指针②\",{\"1\":{\"34\":1}}],[\"当它无法满足你的需求或者显得代码非常繁琐\",{\"1\":{\"32\":1}}],[\"当运行\",{\"1\":{\"32\":1}}],[\"当然也包括非静态成员函数\",{\"1\":{\"117\":1}}],[\"当然\",{\"1\":{\"32\":1,\"33\":1,\"76\":1,\"117\":1}}],[\"当然了\",{\"1\":{\"11\":1,\"13\":1,\"15\":1,\"26\":1,\"60\":1,\"80\":1}}],[\"当写通用代码时\",{\"1\":{\"31\":1}}],[\"当另一个小孩也想玩\",{\"1\":{\"31\":1}}],[\"当其中一个小孩拿到了遥控器和玩具车时\",{\"1\":{\"31\":1}}],[\"当某个表达式的求值写入某个内存位置\",{\"1\":{\"26\":1}}],[\"当两个线程同时尝试向\",{\"1\":{\"26\":1}}],[\"当你的软件完成了主要功能后\",{\"1\":{\"50\":1}}],[\"当你调用\",{\"1\":{\"22\":1}}],[\"当你看完\",{\"1\":{\"18\":1}}],[\"当取消被执行时\",{\"1\":{\"22\":1}}],[\"当前活跃线程数\",{\"1\":{\"116\":1}}],[\"当前线程都会正确地等待任务的完成信号\",{\"1\":{\"109\":1}}],[\"当前原子对象的值为\",{\"1\":{\"78\":1}}],[\"当前值与预期一致时\",{\"1\":{\"78\":1}}],[\"当前计数与重置之后的计数均减\",{\"1\":{\"72\":1}}],[\"当前计数减\",{\"1\":{\"72\":1}}],[\"当前阶段的期待计数也减少一\",{\"1\":{\"72\":1}}],[\"当前时间可以通过静态成员函数\",{\"1\":{\"59\":1}}],[\"当前时间\",{\"1\":{\"59\":1}}],[\"当前是否关联共享状态\",{\"1\":{\"53\":1}}],[\"当前持有线程资源\",{\"1\":{\"17\":1}}],[\"当前没有关联活跃线程\",{\"1\":{\"17\":1}}],[\"当前关联了活跃线程\",{\"1\":{\"17\":1}}],[\"当前环境\",{\"1\":{\"76\":2}}],[\"当前环境核心越多数据越多\",{\"1\":{\"11\":1}}],[\"当前环境支持并发线程数\",{\"0\":{\"11\":1}}],[\"当\",{\"1\":{\"11\":3,\"13\":1,\"16\":1,\"48\":1,\"77\":1,\"108\":1}}],[\"当关注重点在于任务分离或任务响应时\",{\"1\":{\"7\":1}}],[\"其逻辑比信号量更简单\",{\"1\":{\"71\":1}}],[\"其\",{\"1\":{\"69\":1}}],[\"其所有权可以在不同的对象中互相传递\",{\"1\":{\"57\":1}}],[\"其返回值或所抛异常被存储于能通过\",{\"1\":{\"54\":1}}],[\"其它概念\",{\"0\":{\"85\":1}}],[\"其它同步机制\",{\"1\":{\"76\":1}}],[\"其它\",{\"1\":{\"47\":1}}],[\"其它线程调用\",{\"1\":{\"77\":1}}],[\"其它线程通过这个指针读写线程局部变量而不附加同步\",{\"1\":{\"46\":1}}],[\"其它线程会等待初始化完成\",{\"1\":{\"34\":1}}],[\"其它方面就得自己保证了\",{\"1\":{\"37\":1}}],[\"其中有许多的\",{\"1\":{\"108\":1}}],[\"其中有一段话说得很直接\",{\"1\":{\"77\":1}}],[\"其中第二个重载只是给了一个执行策略并将参数全部转发\",{\"1\":{\"108\":1}}],[\"其中的大部分接口实际上是调用\",{\"1\":{\"108\":1}}],[\"其中的数据成员也是不同的\",{\"1\":{\"103\":1}}],[\"其中的重中之重就是它的构造\",{\"1\":{\"18\":1}}],[\"其中包含\",{\"1\":{\"80\":1}}],[\"其中不同的任务或操作按顺序执行\",{\"1\":{\"47\":1}}],[\"其中每个线程都有一个互斥量\",{\"1\":{\"31\":1}}],[\"其他所有的线程\",{\"1\":{\"27\":1}}],[\"其相当于实现了一个公共的\",{\"1\":{\"27\":1}}],[\"其主要在于\",{\"1\":{\"23\":1}}],[\"其次是篇幅限制\",{\"1\":{\"111\":1}}],[\"其次是\",{\"1\":{\"16\":1}}],[\"其局部对象正常析构释放\",{\"1\":{\"13\":1}}],[\"其实绝大部分开发者使用线程池\",{\"1\":{\"117\":1}}],[\"其实各位不用着急完全理解\",{\"1\":{\"111\":1}}],[\"其实又是回去调用父类的虚函数了\",{\"1\":{\"109\":1}}],[\"其实先前已经聊过很多次了\",{\"1\":{\"109\":1}}],[\"其实还有两种特化\",{\"1\":{\"109\":1}}],[\"其实还有不少其他的做法或者反例\",{\"1\":{\"34\":1}}],[\"其实重中之重主要是那几个类\",{\"1\":{\"109\":1}}],[\"其实这很简单\",{\"1\":{\"105\":1}}],[\"其实这段代码还存在着一个初始化顺序导致的问题\",{\"1\":{\"51\":1}}],[\"其实很简单\",{\"1\":{\"100\":1}}],[\"其实很多时候根本没这种性能的担忧\",{\"1\":{\"76\":1}}],[\"其实并不是什么复杂的东西\",{\"1\":{\"77\":1}}],[\"其实默认类型就是\",{\"1\":{\"60\":1}}],[\"其实不算难\",{\"1\":{\"104\":1}}],[\"其实不同无非是定义了\",{\"1\":{\"54\":1}}],[\"其实不用感到奇怪\",{\"1\":{\"33\":1}}],[\"其实\",{\"1\":{\"54\":1,\"108\":1}}],[\"其实到此基本就差不多了\",{\"1\":{\"53\":1}}],[\"其实第一种方法就是在说\",{\"1\":{\"48\":1}}],[\"其实也就可以理解为表示时间点的精度\",{\"1\":{\"61\":1}}],[\"其实也就是回到了第一个示例的问题\",{\"1\":{\"31\":1}}],[\"其实也就是指管理\",{\"1\":{\"12\":1}}],[\"其实也就是要\",{\"1\":{\"11\":1}}],[\"其实也还是别名罢了\",{\"1\":{\"60\":1}}],[\"其实也很简单\",{\"1\":{\"36\":1}}],[\"其实理论上你\",{\"1\":{\"33\":1}}],[\"其实只是传递了它们的指针或者引用罢了\",{\"1\":{\"33\":2}}],[\"其实倒也还好\",{\"1\":{\"32\":1}}],[\"其实上面的代码还不够简单直接\",{\"1\":{\"32\":1}}],[\"其实简单来说\",{\"1\":{\"22\":1}}],[\"其实就是代表这个成员函数只能调用一次\",{\"1\":{\"109\":1}}],[\"其实就是父类指针指向了子类对象\",{\"1\":{\"108\":1}}],[\"其实就是把元组给解包了\",{\"1\":{\"104\":1}}],[\"其实就是先前讲的\",{\"1\":{\"58\":1}}],[\"其实就是在传递可调用对象与参数之前传递枚举值罢了\",{\"1\":{\"53\":1}}],[\"其实就是线程对象自己调用\",{\"1\":{\"22\":1}}],[\"其实就是\",{\"1\":{\"15\":1}}],[\"其实可以直接简单理解为\",{\"1\":{\"4\":1}}],[\"其成员函数也很少\",{\"1\":{\"10\":1}}],[\"如线程池\",{\"1\":{\"119\":1}}],[\"如新任务加入队列\",{\"1\":{\"117\":1}}],[\"如任务队列\",{\"1\":{\"117\":1}}],[\"如内存访问的优化\",{\"1\":{\"82\":1}}],[\"如读写锁\",{\"1\":{\"76\":1}}],[\"如互斥量\",{\"1\":{\"75\":1}}],[\"如其名所示\",{\"1\":{\"73\":1}}],[\"如上\",{\"1\":{\"60\":1}}],[\"如上所示\",{\"1\":{\"56\":1}}],[\"如之前所提到\",{\"1\":{\"56\":1}}],[\"如同规则\",{\"1\":{\"82\":1}}],[\"如同没有线程资源所有权的\",{\"1\":{\"53\":1}}],[\"如同第一个示例那样\",{\"1\":{\"31\":1}}],[\"如下\",{\"1\":{\"32\":1,\"49\":1,\"100\":2}}],[\"如何创建的\",{\"1\":{\"111\":1}}],[\"如何创建的线程\",{\"1\":{\"18\":1,\"101\":1}}],[\"如何对内存操作的顺序和一致性进行规范\",{\"1\":{\"86\":1}}],[\"如何做到接受任意可调用对象\",{\"1\":{\"18\":1,\"101\":1}}],[\"如何做到的默认按值复制\",{\"1\":{\"18\":1,\"101\":1}}],[\"如何支持只能移动的对象\",{\"1\":{\"18\":1,\"101\":1}}],[\"如\",{\"1\":{\"18\":1,\"51\":1,\"61\":2,\"72\":1,\"76\":1,\"80\":1,\"83\":1,\"95\":1,\"98\":1,\"107\":1,\"108\":1,\"111\":1}}],[\"如你所见它的形参类型是\",{\"1\":{\"100\":1}}],[\"如你所见很简单\",{\"1\":{\"32\":1}}],[\"如你所见\",{\"1\":{\"10\":1,\"32\":2,\"53\":3,\"59\":1,\"61\":1,\"76\":1,\"100\":1,\"105\":1}}],[\"如果等待线程池对象调用析构函数\",{\"1\":{\"117\":1}}],[\"如果读者学过\",{\"1\":{\"116\":1}}],[\"如果结果尚未准备好\",{\"1\":{\"110\":1}}],[\"如果存在存储的异常\",{\"1\":{\"110\":1}}],[\"如果拥有共享状态则继续\",{\"1\":{\"109\":1}}],[\"如果二次调用\",{\"1\":{\"108\":1}}],[\"如果线程启动失败\",{\"1\":{\"100\":1}}],[\"如果线程句柄\",{\"1\":{\"100\":1}}],[\"如果线程\",{\"1\":{\"83\":2}}],[\"如果线程被回收并用于新的\",{\"1\":{\"39\":1}}],[\"如果要传递引用\",{\"1\":{\"101\":1}}],[\"如果要操作其保护的共享指针指向的资源还是得\",{\"1\":{\"80\":1}}],[\"如果要支持\",{\"1\":{\"38\":1}}],[\"如果多个线程同时访问同一个\",{\"1\":{\"80\":1}}],[\"如果相等则将其更新为新值并返回\",{\"1\":{\"78\":1}}],[\"如果原子变量的赋值操作返回了一个引用\",{\"1\":{\"78\":1}}],[\"如果发现某些原子类型在目标平台上是有锁的\",{\"1\":{\"76\":1}}],[\"如果一个类型的原子操作总是无锁的\",{\"1\":{\"76\":1}}],[\"如果一个线程写入原子对象\",{\"1\":{\"76\":1}}],[\"如果这些操作在目标平台上是有锁的\",{\"1\":{\"76\":1}}],[\"如果我们不自己指明线程池的线程数量\",{\"1\":{\"115\":1}}],[\"如果我们知道某些操作在目标平台上是无锁的\",{\"1\":{\"76\":1}}],[\"如果我们的\",{\"1\":{\"15\":1}}],[\"如果信号量只有二进制的\",{\"1\":{\"73\":1}}],[\"如果使用的是一个功能丰富的设施\",{\"1\":{\"71\":1}}],[\"如果使用这个构造函数\",{\"1\":{\"28\":1}}],[\"如果当前值为\",{\"1\":{\"78\":1}}],[\"如果当前环境上的原子类型\",{\"1\":{\"76\":1}}],[\"如果当前信号量的计数值为\",{\"1\":{\"69\":2}}],[\"如果当前有活跃线程\",{\"1\":{\"19\":1}}],[\"如果在主线程中执行耗时任务会导致界面卡顿\",{\"1\":{\"62\":1}}],[\"如果在指定的超时间隔后仍然无法得到结果\",{\"1\":{\"60\":1}}],[\"如果超过了这个时间还没有被唤醒\",{\"1\":{\"61\":1}}],[\"如果超线程被启用\",{\"1\":{\"46\":1}}],[\"如果需要进行多次\",{\"1\":{\"56\":1}}],[\"如果先前调用了\",{\"1\":{\"55\":1}}],[\"如果promise的值还没有被设置\",{\"1\":{\"55\":1}}],[\"如果想要异步的获取返回值\",{\"1\":{\"54\":1}}],[\"如果从\",{\"1\":{\"53\":1}}],[\"如果系统资源有限\",{\"1\":{\"53\":1}}],[\"如果系统资源充足\",{\"1\":{\"53\":1}}],[\"如果队列为空\",{\"1\":{\"50\":1}}],[\"如果队列中有任务\",{\"1\":{\"50\":1}}],[\"如果每次播放提示音时都新建一个线程\",{\"1\":{\"50\":1}}],[\"如果它们不是线程安全的\",{\"1\":{\"46\":1}}],[\"如果构造函数\",{\"1\":{\"37\":1}}],[\"如果\",{\"1\":{\"37\":1,\"39\":1,\"55\":1,\"110\":2}}],[\"如果用外部代码要获取一个锁\",{\"1\":{\"31\":1}}],[\"如果必须要获取多个锁\",{\"1\":{\"31\":1}}],[\"如果按照前面的的选择一个固定的顺序上锁解锁\",{\"1\":{\"31\":1}}],[\"如果两个线程同时运行\",{\"1\":{\"31\":1}}],[\"如果上锁成功就返回\",{\"1\":{\"29\":1}}],[\"如果互斥量是锁定的\",{\"1\":{\"27\":1}}],[\"如果出现数据竞争\",{\"1\":{\"26\":1}}],[\"如果非要使用\",{\"1\":{\"22\":1}}],[\"如果您对内存次序感兴趣\",{\"1\":{\"82\":1}}],[\"如果您主要关注业务开发\",{\"1\":{\"82\":1}}],[\"如果您是\",{\"1\":{\"67\":1}}],[\"如果您好好的学习了上一节的内容\",{\"1\":{\"19\":1}}],[\"如果您支持\",{\"1\":{\"16\":1}}],[\"如果标准达到\",{\"1\":{\"17\":1}}],[\"如果还没完成就调用\",{\"1\":{\"16\":1}}],[\"如果还有不理解\",{\"1\":{\"15\":1}}],[\"如果不是同一\",{\"1\":{\"80\":1}}],[\"如果不满足要求\",{\"1\":{\"76\":1}}],[\"如果不这样做\",{\"1\":{\"63\":1}}],[\"如果不写此弃值表达式\",{\"1\":{\"39\":1}}],[\"如果不使用线程\",{\"1\":{\"63\":1}}],[\"如果不使用\",{\"1\":{\"15\":1}}],[\"如果不想等待线程结束可以使用\",{\"1\":{\"14\":1}}],[\"如果对他们的实现感兴趣\",{\"1\":{\"15\":1}}],[\"如果有兴趣\",{\"1\":{\"117\":1}}],[\"如果有两个线程运行这段代码\",{\"1\":{\"29\":1}}],[\"如果有\",{\"1\":{\"14\":1}}],[\"如果异常被抛出但未被捕获那么就会调用\",{\"1\":{\"14\":1}}],[\"如果抛出异常\",{\"1\":{\"13\":1}}],[\"如果抛出了异常\",{\"1\":{\"13\":1}}],[\"如果代码里抛出了异常\",{\"1\":{\"13\":1}}],[\"如果是标量类型\",{\"1\":{\"95\":1}}],[\"如果是整数类型的特化\",{\"1\":{\"76\":1}}],[\"如果是\",{\"1\":{\"53\":1}}],[\"如果是测试使用\",{\"1\":{\"51\":1}}],[\"如果是自己重载\",{\"1\":{\"37\":1}}],[\"如果是默认构造之类的\",{\"1\":{\"13\":1}}],[\"如果是普通代码\",{\"1\":{\"2\":1}}],[\"如果你对此网站的使用不熟悉\",{\"1\":{\"94\":1}}],[\"如果你从事嵌入式系统或者学术研究等\",{\"1\":{\"86\":1}}],[\"如果你使用基于系统时钟的计时方法\",{\"1\":{\"61\":1}}],[\"如果你阅读\",{\"1\":{\"53\":1}}],[\"如果你需要更多的操作\",{\"1\":{\"37\":1}}],[\"如果你需要多线程求和\",{\"1\":{\"11\":1}}],[\"如果你的标准达到\",{\"1\":{\"37\":1}}],[\"如果你的同事或上司写出此代码\",{\"1\":{\"34\":1}}],[\"如果你学过其它语言或者操作系统\",{\"1\":{\"35\":1}}],[\"如果你有需要\",{\"1\":{\"34\":1}}],[\"如果你有些地方无法理解\",{\"1\":{\"17\":1}}],[\"如果你觉得难以理解\",{\"1\":{\"34\":1}}],[\"如果你觉得本仓库对你有所帮助\",{\"1\":{\"0\":1}}],[\"如果你简单写一个\",{\"1\":{\"33\":1}}],[\"如果你自己编译了这些代码\",{\"1\":{\"19\":1}}],[\"如果你直接用一个循环不断判断这个操作是否完成就会使得这个线程占满\",{\"1\":{\"16\":1}}],[\"如果你是第一次见到成员指针\",{\"1\":{\"15\":1}}],[\"如果你传入的是一个临时对象\",{\"1\":{\"13\":1}}],[\"如果希望代码可以在\",{\"1\":{\"11\":1}}],[\"如果为\",{\"1\":{\"10\":1}}],[\"如果没有同步\",{\"1\":{\"73\":1}}],[\"如果没有指明\",{\"1\":{\"60\":1}}],[\"如果没有进行同步保护\",{\"1\":{\"57\":2}}],[\"如果没有找到键返回空字符串\",{\"1\":{\"35\":1}}],[\"如果没有线程持有这个互斥量\",{\"1\":{\"27\":1}}],[\"如果没有\",{\"1\":{\"0\":1}}],[\"会先进行\",{\"1\":{\"117\":1}}],[\"会根据函数\",{\"1\":{\"115\":1}}],[\"会再次进入休眠状态\",{\"1\":{\"113\":1}}],[\"会重新检查条件\",{\"1\":{\"109\":1}}],[\"会被定义为\",{\"1\":{\"108\":1}}],[\"会不会指令重排导致先输出\",{\"1\":{\"82\":1}}],[\"会保证外部行为的一致性\",{\"1\":{\"82\":1}}],[\"会将指针\",{\"1\":{\"79\":1}}],[\"会在期待计数减少至\",{\"1\":{\"72\":1}}],[\"会看到先输出\",{\"1\":{\"69\":1}}],[\"会返回系统的当前时间\",{\"1\":{\"59\":1}}],[\"会进行其它处理\",{\"1\":{\"58\":1}}],[\"会抛出\",{\"1\":{\"55\":1}}],[\"会通过\",{\"1\":{\"53\":1}}],[\"会发现的确如此\",{\"1\":{\"53\":1}}],[\"会使用到\",{\"1\":{\"46\":1}}],[\"会作为线程启动的一部分进行\",{\"1\":{\"44\":1}}],[\"会输出\",{\"1\":{\"39\":2}}],[\"会优化掉\",{\"1\":{\"39\":1}}],[\"会按照互斥量的规则进行阻塞\",{\"1\":{\"36\":1}}],[\"会让传入的可调用对象被多次调用\",{\"1\":{\"34\":1}}],[\"会持有一个悬垂指针\",{\"1\":{\"33\":1}}],[\"会尝试上锁\",{\"1\":{\"29\":1}}],[\"会详细了解这个类\",{\"1\":{\"28\":1}}],[\"会打印出了一样的值\",{\"1\":{\"28\":1}}],[\"会多\",{\"1\":{\"21\":1}}],[\"会导致问题\",{\"1\":{\"15\":1}}],[\"会自动调用对象的析构函数\",{\"1\":{\"14\":1}}],[\"会产生未定义行为\",{\"1\":{\"13\":1}}],[\"会调用第一个版本的重载\",{\"1\":{\"48\":1}}],[\"会调用\",{\"1\":{\"10\":1,\"22\":1}}],[\"会讨论程序的并发性\",{\"1\":{\"7\":1}}],[\"会讨论程序的并行性\",{\"1\":{\"7\":1}}],[\"判断线程对象目前是否有关联活跃线程\",{\"1\":{\"10\":1}}],[\"fake\",{\"1\":{\"108\":2}}],[\"failed\",{\"1\":{\"100\":2}}],[\"false\",{\"1\":{\"10\":1,\"13\":2,\"29\":1,\"32\":3,\"33\":1,\"48\":3,\"50\":1,\"53\":2,\"56\":1,\"57\":1,\"61\":2,\"63\":1,\"65\":1,\"76\":3,\"77\":9,\"78\":18,\"108\":11,\"110\":2,\"115\":1,\"117\":1}}],[\"f4\",{\"1\":{\"77\":1}}],[\"fetch\",{\"1\":{\"57\":4,\"76\":2,\"79\":5}}],[\"fexperimental\",{\"1\":{\"22\":1}}],[\"f3\",{\"1\":{\"53\":1,\"77\":1}}],[\"f1\",{\"1\":{\"53\":2}}],[\"fty2\",{\"1\":{\"108\":3}}],[\"fty2>\",{\"1\":{\"108\":5}}],[\"fty\",{\"1\":{\"53\":1,\"108\":13}}],[\"fty>\",{\"1\":{\"53\":3,\"108\":11}}],[\"ffmpeg\",{\"1\":{\"51\":1}}],[\"fms\",{\"1\":{\"38\":1}}],[\"fret\",{\"1\":{\"108\":3}}],[\"fret>\",{\"1\":{\"108\":2}}],[\"free\",{\"1\":{\"37\":1,\"76\":22}}],[\"from\",{\"1\":{\"108\":4,\"109\":1}}],[\"front\",{\"1\":{\"49\":2,\"50\":1,\"117\":1}}],[\"friend\",{\"1\":{\"31\":1}}],[\"fixed\",{\"1\":{\"53\":1,\"65\":2,\"108\":1}}],[\"find\",{\"1\":{\"35\":1}}],[\"first\",{\"1\":{\"11\":7,\"54\":4}}],[\"float\",{\"1\":{\"76\":3}}],[\"flac\",{\"1\":{\"51\":1}}],[\"flag不可复制不可移动不可赋值\",{\"1\":{\"77\":1}}],[\"flag\",{\"1\":{\"34\":8,\"48\":5,\"77\":26,\"78\":14}}],[\"flush\",{\"1\":{\"22\":1}}],[\"found\",{\"1\":{\"120\":1}}],[\"font\",{\"1\":{\"65\":1}}],[\"foo\",{\"1\":{\"30\":1,\"34\":1,\"79\":3}}],[\"format\",{\"1\":{\"69\":1,\"71\":2}}],[\"forward\",{\"1\":{\"117\":1}}],[\"forward\",{\"1\":{\"108\":1}}],[\"forward\",{\"1\":{\"108\":1}}],[\"forward\",{\"1\":{\"19\":1,\"54\":1,\"117\":1}}],[\"forward\",{\"1\":{\"104\":2}}],[\"forward<\",{\"1\":{\"22\":4,\"53\":2,\"100\":6,\"108\":13,\"110\":3}}],[\"forward\",{\"1\":{\"19\":1,\"104\":2,\"116\":1}}],[\"forwardit\",{\"1\":{\"11\":4,\"54\":2}}],[\"forwardit>\",{\"1\":{\"11\":2,\"54\":1}}],[\"for\",{\"1\":{\"11\":2,\"13\":1,\"16\":5,\"19\":3,\"22\":2,\"27\":4,\"28\":1,\"29\":1,\"48\":8,\"49\":2,\"50\":1,\"53\":2,\"54\":3,\"55\":1,\"57\":2,\"58\":3,\"60\":3,\"61\":2,\"63\":2,\"65\":2,\"69\":4,\"71\":3,\"72\":5,\"80\":10,\"99\":1,\"108\":13,\"109\":2,\"115\":2,\"116\":1,\"117\":5}}],[\"fx\",{\"1\":{\"22\":3,\"100\":5}}],[\"fnvals\",{\"1\":{\"100\":2}}],[\"fnarg\",{\"1\":{\"53\":3,\"108\":16}}],[\"fn>\",{\"1\":{\"22\":4,\"100\":6,\"101\":1}}],[\"fn\",{\"1\":{\"22\":2,\"100\":8,\"108\":4,\"110\":1}}],[\"f2\",{\"1\":{\"13\":3,\"14\":2,\"26\":7,\"31\":6,\"53\":3,\"77\":1,\"104\":1}}],[\"f\",{\"1\":{\"13\":3,\"14\":2,\"15\":27,\"17\":7,\"22\":4,\"26\":10,\"27\":5,\"28\":2,\"31\":6,\"32\":1,\"34\":4,\"37\":3,\"53\":15,\"71\":2,\"72\":4,\"75\":2,\"77\":7,\"100\":1,\"104\":6,\"108\":2,\"117\":7}}],[\"fun\",{\"1\":{\"108\":2}}],[\"functio\",{\"1\":{\"57\":3}}],[\"functiontorun\",{\"1\":{\"116\":2}}],[\"function来运行可能的延迟任务\",{\"1\":{\"110\":1}}],[\"functions\",{\"1\":{\"108\":3}}],[\"function\",{\"1\":{\"29\":3,\"30\":3,\"36\":6,\"55\":4,\"72\":1,\"108\":5,\"109\":11}}],[\"func>\",{\"1\":{\"30\":1}}],[\"func\",{\"1\":{\"13\":9,\"14\":1,\"19\":2,\"30\":3}}],[\"fut\",{\"1\":{\"55\":4,\"57\":2}}],[\"future对象用于获取任务结果以及确保任务执行完毕\",{\"1\":{\"117\":1}}],[\"future\",{\"1\":{\"117\":1}}],[\"future<\",{\"1\":{\"108\":5,\"109\":3}}],[\"future\",{\"1\":{\"56\":2,\"57\":1,\"109\":2}}],[\"futurefuture\",{\"1\":{\"56\":1,\"65\":1}}],[\"future\",{\"1\":{\"53\":1,\"56\":1,\"109\":2}}],[\"future\",{\"1\":{\"54\":1}}],[\"futurefuture\",{\"1\":{\"54\":1}}],[\"future>\",{\"1\":{\"117\":1}}],[\"future\",{\"1\":{\"53\":1,\"54\":1,\"55\":3,\"57\":1,\"60\":1,\"108\":1,\"109\":1}}],[\"futures\",{\"1\":{\"46\":1,\"54\":4,\"109\":2,\"117\":5}}],[\"future\",{\"0\":{\"56\":1,\"106\":1},\"1\":{\"1\":1,\"47\":2,\"52\":9,\"53\":15,\"54\":19,\"55\":11,\"56\":16,\"57\":47,\"60\":12,\"63\":1,\"65\":1,\"73\":1,\"107\":3,\"108\":44,\"109\":38,\"110\":3,\"111\":5,\"117\":4}}],[\"返回当前活跃线程数等\",{\"1\":{\"117\":1}}],[\"返回当前线程\",{\"1\":{\"16\":1}}],[\"返回结果\",{\"1\":{\"110\":2}}],[\"返回底层\",{\"1\":{\"108\":1}}],[\"返回引用类型\",{\"1\":{\"108\":1}}],[\"返回普通类型\",{\"1\":{\"108\":1}}],[\"返回类型不为\",{\"1\":{\"104\":1}}],[\"返回类型都是\",{\"1\":{\"104\":1}}],[\"返回类型推导是\",{\"1\":{\"11\":1}}],[\"返回了\",{\"1\":{\"80\":1}}],[\"返回操作前的指针值\",{\"1\":{\"79\":2}}],[\"返回一个普通的\",{\"1\":{\"78\":1}}],[\"返回的内部类\",{\"1\":{\"67\":1}}],[\"返回的临时\",{\"1\":{\"17\":1}}],[\"返回值\",{\"1\":{\"56\":1}}],[\"返回执行结果\",{\"1\":{\"53\":1}}],[\"返回与\",{\"1\":{\"22\":2}}],[\"返回\",{\"1\":{\"10\":1,\"15\":1,\"76\":2,\"77\":1,\"78\":1,\"100\":1,\"108\":2,\"109\":2,\"110\":1}}],[\"让操作系统自行调度而已\",{\"1\":{\"117\":1}}],[\"让元组保有的互斥量引用都进行解锁\",{\"1\":{\"104\":1}}],[\"让你对它再无疑问\",{\"1\":{\"102\":1}}],[\"让你彻底了解这个类\",{\"1\":{\"98\":1}}],[\"让一些线程退出同步\",{\"1\":{\"72\":1}}],[\"让我们得以简单的使用\",{\"1\":{\"60\":1}}],[\"让它能在需要的时候获取\",{\"1\":{\"57\":1}}],[\"让它和\",{\"1\":{\"54\":1}}],[\"让另外的线程有机会获取锁并设置标识\",{\"1\":{\"48\":1}}],[\"让其他线程得以执行\",{\"1\":{\"77\":1}}],[\"让其选择到不上锁的构造函数\",{\"1\":{\"31\":1}}],[\"让其关联的线程执行成员函数\",{\"1\":{\"15\":1}}],[\"让持有线程资源的\",{\"1\":{\"17\":1}}],[\"让当前线程延迟到具体的时间\",{\"1\":{\"16\":1}}],[\"让对象的生命周期和资源绑定\",{\"1\":{\"14\":1}}],[\"让\",{\"1\":{\"10\":1}}],[\"然后安排线程去执行\",{\"1\":{\"117\":1}}],[\"然后将任务对象传递给线程池的\",{\"1\":{\"116\":1}}],[\"然后唤醒所有线程\",{\"1\":{\"115\":1}}],[\"然后继续执行\",{\"1\":{\"109\":1}}],[\"然后也就和上面说的没什么区别了\",{\"1\":{\"108\":1}}],[\"然后就用\",{\"1\":{\"104\":1}}],[\"然后就是推荐使用\",{\"1\":{\"77\":1}}],[\"然后调用函数\",{\"1\":{\"109\":1}}],[\"然后调用\",{\"1\":{\"100\":1}}],[\"然后退出循环\",{\"1\":{\"77\":1}}],[\"然后在当前阶段的同步点阻塞直至运行当前阶段的阶段完成步骤\",{\"1\":{\"72\":1}}],[\"然后在循环中制造任务插入容器\",{\"1\":{\"54\":1}}],[\"然后利用了屏障一轮一轮地打印\",{\"1\":{\"72\":1}}],[\"然后\",{\"1\":{\"55\":1,\"110\":1}}],[\"然后我们来传递任务进行异步调用等操作\",{\"1\":{\"54\":1}}],[\"然后使用\",{\"1\":{\"54\":1,\"61\":1,\"101\":1}}],[\"然后逐个执行\",{\"1\":{\"53\":1}}],[\"然后再进行\",{\"1\":{\"115\":1}}],[\"然后再去调用父类\",{\"1\":{\"109\":1}}],[\"然后再写入另一个对象\",{\"1\":{\"77\":1}}],[\"然后再获取返回值\",{\"1\":{\"54\":1}}],[\"然后再自己进行上层封装\",{\"1\":{\"50\":1}}],[\"然后再尝试锁定\",{\"1\":{\"31\":1}}],[\"然后设置一个稍早的闹钟\",{\"1\":{\"48\":1}}],[\"然后聊了一下\",{\"1\":{\"46\":1}}],[\"然后讨论了面对不同情况保护共享数据的不同方式\",{\"1\":{\"46\":1}}],[\"然后传递\",{\"1\":{\"32\":1}}],[\"然后作用域结束\",{\"1\":{\"28\":1}}],[\"然后执行\",{\"1\":{\"26\":1}}],[\"然后来管理函数到底如何执行\",{\"1\":{\"23\":1}}],[\"然后这个临时对象再用来初始化\",{\"1\":{\"17\":1}}],[\"然后返回它\",{\"1\":{\"17\":1}}],[\"然后会修改对象的状态\",{\"1\":{\"10\":1}}],[\"然而新任务的到来让调度器再次将它唤醒\",{\"1\":{\"113\":1}}],[\"然而这其实并不是\",{\"1\":{\"113\":1}}],[\"然而这还不够\",{\"1\":{\"109\":1}}],[\"然而这显然没用\",{\"1\":{\"34\":1}}],[\"然而它也是最为复杂的\",{\"1\":{\"108\":1}}],[\"然而它们的帮助都是有限的\",{\"1\":{\"31\":1}}],[\"然而要想阅读学习源码\",{\"1\":{\"93\":1}}],[\"然而值得注意的是\",{\"1\":{\"53\":1}}],[\"然而\",{\"1\":{\"53\":1,\"69\":1,\"80\":1,\"109\":1}}],[\"然而在某些情况下\",{\"1\":{\"36\":1}}],[\"然而使用\",{\"1\":{\"35\":1}}],[\"然而使用互斥量来保护共享数据也并不是在函数中加上一个\",{\"1\":{\"30\":1}}],[\"然而函数\",{\"1\":{\"31\":1}}],[\"然而此时我们必须再次\",{\"1\":{\"13\":1}}],[\"然而大多数是粗糙的\",{\"1\":{\"0\":1}}],[\"否则它为空\",{\"1\":{\"108\":1}}],[\"否则会抛出异常\",{\"1\":{\"56\":1}}],[\"否则将所有权层数减少\",{\"1\":{\"36\":1}}],[\"否则将一直阻塞\",{\"1\":{\"10\":1}}],[\"否则\",{\"1\":{\"10\":1,\"78\":1,\"110\":1}}],[\"就足够编写一个满足绝大部分业务需求的线程池\",{\"1\":{\"117\":1}}],[\"就如同我们先前聊\",{\"1\":{\"102\":1}}],[\"就如同我们先前所说\",{\"1\":{\"57\":1}}],[\"就比如它们\",{\"1\":{\"101\":1}}],[\"就接受了我们构造\",{\"1\":{\"100\":1}}],[\"就等于\",{\"1\":{\"100\":1}}],[\"就涉及到可见的问题\",{\"1\":{\"83\":1}}],[\"就算真的\",{\"1\":{\"82\":1}}],[\"就重置期待计数为构造中指定的值了\",{\"1\":{\"72\":1}}],[\"就不再重复\",{\"1\":{\"104\":1}}],[\"就不再需要使用\",{\"1\":{\"77\":1}}],[\"就不需要再强调了\",{\"1\":{\"57\":1}}],[\"就不可再次调用\",{\"1\":{\"55\":1}}],[\"就无法再用于其他线程\",{\"1\":{\"57\":1}}],[\"就\",{\"1\":{\"54\":1}}],[\"就取出并播放提示音\",{\"1\":{\"50\":1}}],[\"就启动一个专门用于播放提示音的线程\",{\"1\":{\"50\":1}}],[\"就光是其频繁创建线程的开销也是不能接受的\",{\"1\":{\"50\":1}}],[\"就休息\",{\"1\":{\"48\":1}}],[\"就像线程变量为每个线程提供独立的对象实例\",{\"1\":{\"40\":1}}],[\"就得使用互斥量之类的方式保护了\",{\"1\":{\"37\":1}}],[\"就可能会导致数据竞争和未定义行为\",{\"1\":{\"37\":1}}],[\"就可以执行了\",{\"1\":{\"100\":1}}],[\"就可以解决这个问题\",{\"1\":{\"72\":1}}],[\"就可以\",{\"1\":{\"34\":1}}],[\"就可以尽情玩耍\",{\"1\":{\"31\":1}}],[\"就可以进去执行了\",{\"1\":{\"28\":1}}],[\"就别再获取第二个锁\",{\"1\":{\"31\":1}}],[\"就有死锁风险\",{\"1\":{\"31\":1}}],[\"就通常不会死锁\",{\"1\":{\"31\":1}}],[\"就应该是单纯的在受互斥量保护的情况下老老实实调用\",{\"1\":{\"30\":1}}],[\"就万事大吉了\",{\"1\":{\"30\":1}}],[\"就更简单了\",{\"1\":{\"28\":1}}],[\"就解锁了互斥量\",{\"1\":{\"27\":1}}],[\"就要避免其它线程修改\",{\"1\":{\"31\":1}}],[\"就要开始聊共享数据的那些事\",{\"1\":{\"25\":1}}],[\"就要特别注意了\",{\"1\":{\"15\":1}}],[\"就好\",{\"1\":{\"22\":1}}],[\"就能明白\",{\"1\":{\"80\":1}}],[\"就能让这种保护形同虚设\",{\"1\":{\"30\":1}}],[\"就能成功调用\",{\"1\":{\"15\":1}}],[\"就能正常的调用\",{\"1\":{\"13\":1}}],[\"就在\",{\"1\":{\"13\":1}}],[\"就会抛出\",{\"1\":{\"108\":1}}],[\"就会导致编译错误\",{\"1\":{\"53\":1}}],[\"就会阻塞直到\",{\"1\":{\"53\":1}}],[\"就会违反第一个指导意见\",{\"1\":{\"31\":1}}],[\"就会产生死锁\",{\"1\":{\"31\":1}}],[\"就会跳转到\",{\"1\":{\"13\":1}}],[\"就会被跳过\",{\"1\":{\"13\":1}}],[\"就手搓了一个\",{\"1\":{\"11\":1}}],[\"就是被调度器分配了任务1\",{\"1\":{\"113\":1}}],[\"就是单纯的执行延时任务而已\",{\"1\":{\"110\":1}}],[\"就是直接调用父类虚函数\",{\"1\":{\"109\":1}}],[\"就是执行我们实际传入的函数对象\",{\"1\":{\"109\":1}}],[\"就是解锁然后调用\",{\"1\":{\"109\":1}}],[\"就是我们前面讲的\",{\"1\":{\"100\":1}}],[\"就是接受一个元组类型\",{\"1\":{\"100\":1}}],[\"就是占据\",{\"1\":{\"99\":1}}],[\"就是在原子类型的类型名前面加上\",{\"1\":{\"76\":1}}],[\"就是主线程\",{\"1\":{\"65\":1}}],[\"就是时间的间隔\",{\"1\":{\"61\":1}}],[\"就是一个稳定时钟\",{\"1\":{\"59\":1}}],[\"就是其关联的事件\",{\"1\":{\"52\":1}}],[\"就是调用移动构造\",{\"1\":{\"33\":1}}],[\"就是按引用传递了\",{\"1\":{\"15\":1}}],[\"就是返回了\",{\"1\":{\"15\":1}}],[\"就是\",{\"1\":{\"15\":1,\"59\":1,\"100\":1,\"109\":1,\"115\":1}}],[\"就是构造\",{\"1\":{\"13\":1}}],[\"就是确保线程对象关联的线程已经执行完毕\",{\"1\":{\"10\":1}}],[\"就是为了区别多线程中不同的关注点\",{\"1\":{\"7\":1}}],[\"就自动在新线程开始执行函数\",{\"1\":{\"10\":1}}],[\"将任务提交到任务队列\",{\"1\":{\"117\":1}}],[\"将任务传递给线程池后可以再指明执行策略\",{\"1\":{\"116\":1}}],[\"将任务加入线程池\",{\"1\":{\"115\":2}}],[\"将结果或异常存储在\",{\"1\":{\"108\":1}}],[\"将我们\",{\"1\":{\"108\":1}}],[\"将我们构造函数的参数全部完美转发\",{\"1\":{\"100\":1}}],[\"将线程id设置为0\",{\"1\":{\"100\":1}}],[\"将独占指针的所有权转移给线程\",{\"1\":{\"100\":1}}],[\"将原子对象的值设置给\",{\"1\":{\"78\":1}}],[\"将原子对象的值加载进\",{\"1\":{\"78\":1}}],[\"将原子对象\",{\"1\":{\"78\":1}}],[\"将是\",{\"1\":{\"78\":1}}],[\"将标志对象的状态原子地更改为设置\",{\"1\":{\"77\":1}}],[\"将标志对象的状态原子地更改为清除\",{\"1\":{\"77\":1}}],[\"将返回\",{\"1\":{\"76\":1}}],[\"将它视为信号量维护的计数最大值即可\",{\"1\":{\"69\":1}}],[\"将当前对象的共享状态转移给了这个局部对象\",{\"1\":{\"56\":1}}],[\"将错误码设置为\",{\"1\":{\"55\":1}}],[\"将持有最终计算出来的结果\",{\"1\":{\"53\":1}}],[\"将互斥量的所有权转移给调用方\",{\"1\":{\"33\":1}}],[\"将数据成员赋给新对象\",{\"1\":{\"33\":1}}],[\"将临时对象的线程资源所有权移交给\",{\"1\":{\"17\":1}}],[\"将对象包装\",{\"1\":{\"15\":1}}],[\"将\",{\"1\":{\"10\":1,\"13\":1,\"15\":1,\"17\":3,\"71\":1,\"77\":3,\"82\":1,\"100\":1,\"108\":1,\"110\":1}}],[\"java\",{\"1\":{\"116\":1}}],[\"joining\",{\"1\":{\"19\":11}}],[\"joinable\",{\"1\":{\"10\":2,\"13\":3,\"14\":1,\"17\":4,\"19\":4,\"22\":1,\"50\":1,\"117\":1}}],[\"join\",{\"1\":{\"10\":3,\"11\":2,\"13\":26,\"14\":4,\"15\":7,\"16\":1,\"17\":11,\"19\":8,\"20\":1,\"22\":4,\"26\":4,\"27\":2,\"28\":4,\"29\":2,\"36\":2,\"38\":2,\"39\":1,\"50\":1,\"53\":1,\"54\":3,\"55\":3,\"57\":6,\"80\":2,\"115\":9,\"117\":2}}],[\"jthread>\",{\"1\":{\"22\":1,\"69\":1,\"71\":1,\"72\":2}}],[\"jthread\",{\"1\":{\"9\":1,\"20\":1,\"21\":3,\"22\":12,\"24\":1,\"69\":1,\"71\":1}}],[\"\",{\"1\":{\"117\":1}}],[\"\",{\"1\":{\"52\":1,\"53\":1,\"117\":1}}],[\"\",{\"1\":{\"117\":1}}],[\"\",{\"1\":{\"69\":1}}],[\"\",{\"1\":{\"117\":1}}],[\"\",{\"1\":{\"10\":1,\"11\":1,\"13\":2,\"36\":1,\"53\":1,\"117\":1}}],[\"\",{\"1\":{\"117\":1}}],[\"\",{\"1\":{\"116\":1}}],[\"\",{\"1\":{\"116\":1}}],[\"\",{\"1\":{\"116\":1}}],[\"\",{\"1\":{\"116\":1}}],[\"\",{\"1\":{\"70\":1}}],[\"<>\",{\"1\":{\"103\":1,\"108\":1,\"109\":1}}],[\"\",{\"1\":{\"76\":1,\"117\":1}}],[\"\",{\"1\":{\"70\":1}}],[\"\",{\"1\":{\"27\":1,\"36\":1,\"117\":1}}],[\"<=\",{\"1\":{\"13\":1,\"65\":1,\"72\":3}}],[\"<\",{\"1\":{\"11\":5,\"19\":2,\"27\":2,\"49\":2,\"54\":3,\"63\":1,\"69\":1,\"71\":1,\"72\":1,\"80\":4,\"115\":2,\"116\":1,\"117\":3}}],[\"<\",{\"1\":{\"10\":2,\"11\":1,\"13\":2,\"36\":1,\"53\":1,\"95\":1,\"115\":1,\"117\":1}}],[\"mt19937\",{\"1\":{\"69\":1}}],[\"mtxes\",{\"1\":{\"103\":7,\"104\":7}}],[\"mtx\",{\"1\":{\"28\":4,\"29\":3,\"32\":2,\"36\":4,\"48\":5,\"50\":3,\"103\":4,\"108\":1,\"109\":2,\"110\":1}}],[\"ms\",{\"1\":{\"60\":4}}],[\"msvc\",{\"1\":{\"0\":1,\"21\":1,\"22\":1,\"23\":1,\"28\":1,\"32\":1,\"38\":6,\"39\":2,\"48\":1,\"53\":2,\"56\":1,\"60\":1,\"69\":1,\"72\":1,\"76\":1,\"77\":1,\"92\":1,\"94\":3,\"98\":2,\"100\":1,\"101\":1,\"102\":2,\"104\":1,\"107\":2,\"108\":1}}],[\"module\",{\"1\":{\"108\":1}}],[\"model\",{\"1\":{\"86\":1}}],[\"modify\",{\"1\":{\"76\":1}}],[\"months\",{\"1\":{\"60\":1}}],[\"move\",{\"1\":{\"15\":9,\"17\":5,\"19\":4,\"33\":1,\"53\":16,\"54\":3,\"55\":4,\"56\":7,\"76\":2,\"95\":9,\"100\":2,\"101\":3,\"109\":8,\"117\":1}}],[\"minimum\",{\"1\":{\"65\":2}}],[\"minute\",{\"1\":{\"60\":1}}],[\"minutes\",{\"1\":{\"59\":2,\"60\":1}}],[\"millisecond\",{\"1\":{\"60\":1}}],[\"milliseconds>\",{\"1\":{\"61\":1}}],[\"milliseconds\",{\"1\":{\"29\":1,\"48\":1,\"60\":3,\"61\":1}}],[\"milli\",{\"1\":{\"60\":1}}],[\"milli>\",{\"1\":{\"60\":1}}],[\"microsecond\",{\"1\":{\"60\":1}}],[\"microseconds\",{\"1\":{\"60\":1}}],[\"micro>\",{\"1\":{\"60\":1}}],[\"mq白\",{\"1\":{\"52\":1}}],[\"mp3\",{\"1\":{\"51\":1}}],[\"meet\",{\"1\":{\"109\":1}}],[\"memcpy\",{\"1\":{\"91\":1}}],[\"memcmp\",{\"1\":{\"91\":1}}],[\"memory\",{\"1\":{\"26\":1,\"76\":13,\"77\":6,\"78\":6,\"79\":1,\"83\":3,\"84\":30,\"86\":2}}],[\"meyers\",{\"1\":{\"34\":1}}],[\"m2\",{\"1\":{\"31\":8,\"103\":2}}],[\"m1\",{\"1\":{\"31\":7,\"103\":3}}],[\"maybe\",{\"1\":{\"109\":5,\"110\":1}}],[\"manager\",{\"1\":{\"108\":7,\"109\":6}}],[\"manager\",{\"1\":{\"109\":1}}],[\"manager<\",{\"1\":{\"108\":8,\"109\":4}}],[\"manages\",{\"1\":{\"108\":2}}],[\"max\",{\"1\":{\"69\":1,\"73\":1}}],[\"make\",{\"1\":{\"49\":1,\"80\":8,\"100\":6,\"104\":2,\"117\":1}}],[\"malloc\",{\"1\":{\"37\":1}}],[\"malicious\",{\"1\":{\"30\":3}}],[\"map\",{\"1\":{\"103\":1}}],[\"mutexes\",{\"1\":{\"103\":6,\"104\":3}}],[\"mutex>sp\",{\"1\":{\"104\":1}}],[\"mutex>\",{\"1\":{\"28\":7,\"30\":1,\"31\":8,\"32\":5,\"33\":3,\"34\":1,\"35\":3,\"36\":1,\"48\":8,\"49\":4,\"50\":2,\"61\":1,\"75\":1,\"77\":1,\"103\":4,\"104\":1,\"115\":1,\"117\":2}}],[\"mutex\",{\"1\":{\"27\":2,\"28\":9,\"29\":1,\"30\":1,\"31\":2,\"32\":7,\"33\":10,\"35\":12,\"36\":6,\"46\":4,\"48\":4,\"49\":1,\"50\":1,\"61\":1,\"69\":1,\"75\":1,\"77\":7,\"83\":2,\"103\":10,\"104\":2,\"108\":1,\"115\":1,\"117\":8}}],[\"multiply\",{\"1\":{\"60\":1}}],[\"multiply\",{\"1\":{\"60\":1}}],[\"multi\",{\"1\":{\"11\":1}}],[\"mytask\",{\"1\":{\"116\":3}}],[\"mybase\",{\"1\":{\"108\":4,\"109\":6}}],[\"mymtx\",{\"1\":{\"48\":1}}],[\"mymutexes让它保有这些互斥量的引用\",{\"1\":{\"104\":2}}],[\"mymutexes\",{\"1\":{\"103\":4,\"104\":3}}],[\"mymutex\",{\"1\":{\"28\":5,\"103\":5}}],[\"mycnd\",{\"1\":{\"48\":1}}],[\"my\",{\"1\":{\"13\":10,\"34\":5,\"76\":6}}],[\"m\",{\"1\":{\"13\":3,\"14\":4,\"16\":3,\"27\":3,\"28\":9,\"30\":2,\"31\":11,\"32\":8,\"34\":1,\"35\":2,\"48\":3,\"49\":5,\"59\":2,\"61\":2,\"75\":2,\"77\":2,\"95\":1,\"104\":5,\"115\":2}}],[\"writer\",{\"1\":{\"80\":5}}],[\"write\",{\"1\":{\"76\":1}}],[\"wrapper\",{\"1\":{\"15\":1}}],[\"wrapper>\",{\"1\":{\"60\":3}}],[\"period\",{\"1\":{\"59\":2,\"60\":2}}],[\"per\",{\"1\":{\"40\":4}}],[\"permitted\",{\"1\":{\"32\":1}}],[\"pmtx\",{\"1\":{\"32\":5,\"33\":3}}],[\"ptype>\",{\"1\":{\"108\":2}}],[\"ptype\",{\"1\":{\"108\":6}}],[\"ptr>\",{\"1\":{\"73\":1,\"80\":7}}],[\"ptr<\",{\"1\":{\"100\":1}}],[\"ptr>\",{\"1\":{\"80\":3}}],[\"ptr>\",{\"1\":{\"80\":1}}],[\"ptr\",{\"1\":{\"80\":2}}],[\"ptr\",{\"1\":{\"49\":2}}],[\"ptr\",{\"1\":{\"34\":1}}],[\"ptr\",{\"1\":{\"34\":9,\"49\":1,\"52\":2,\"55\":1,\"57\":3,\"73\":3,\"80\":34,\"91\":2,\"108\":4}}],[\"ptrdiff\",{\"1\":{\"11\":1,\"54\":1,\"71\":1,\"73\":1}}],[\"pthreads\",{\"1\":{\"38\":1}}],[\"pthread\",{\"1\":{\"22\":2,\"38\":4,\"67\":1,\"77\":1}}],[\"post\",{\"1\":{\"115\":5}}],[\"posix\",{\"1\":{\"22\":1,\"38\":3,\"67\":1,\"70\":1,\"94\":1,\"101\":1}}],[\"policy\",{\"1\":{\"108\":7}}],[\"pointer\",{\"1\":{\"76\":1}}],[\"point\",{\"1\":{\"61\":1}}],[\"point\",{\"1\":{\"58\":1,\"59\":2,\"61\":2}}],[\"pow\",{\"1\":{\"54\":3}}],[\"pop\",{\"1\":{\"49\":20,\"50\":1,\"117\":1}}],[\"pool\",{\"1\":{\"2\":1,\"115\":19,\"116\":2,\"117\":15,\"118\":1}}],[\"push\",{\"1\":{\"28\":2,\"49\":15,\"50\":1}}],[\"put\",{\"1\":{\"16\":3,\"59\":2}}],[\"puts\",{\"1\":{\"14\":1,\"15\":2,\"53\":3,\"95\":3}}],[\"public\",{\"1\":{\"13\":1,\"14\":1,\"19\":1,\"28\":1,\"30\":2,\"35\":1,\"49\":1,\"50\":1,\"65\":2,\"77\":1,\"80\":1,\"101\":1,\"103\":3,\"108\":5,\"109\":4,\"116\":1,\"117\":1}}],[\"p\",{\"1\":{\"13\":3,\"15\":4,\"30\":3,\"37\":11,\"53\":5,\"57\":2,\"79\":10,\"108\":9}}],[\"pred\",{\"1\":{\"48\":4}}],[\"predicate\",{\"1\":{\"48\":2}}],[\"predicate>\",{\"1\":{\"48\":2}}],[\"procedure\",{\"1\":{\"100\":1}}],[\"processing\",{\"1\":{\"69\":2}}],[\"process\",{\"1\":{\"30\":4,\"33\":3}}],[\"proc\",{\"1\":{\"69\":2,\"100\":5}}],[\"progress\",{\"1\":{\"64\":2,\"65\":16}}],[\"progressbar\",{\"1\":{\"63\":2}}],[\"promie\",{\"1\":{\"108\":1}}],[\"promise<\",{\"1\":{\"108\":3,\"109\":1}}],[\"promise\",{\"1\":{\"55\":7}}],[\"promise只能移动\",{\"1\":{\"55\":1}}],[\"promiseobj\",{\"1\":{\"55\":2}}],[\"promise\",{\"1\":{\"55\":16,\"57\":1,\"73\":1,\"108\":23,\"109\":1,\"110\":1}}],[\"prom\",{\"1\":{\"55\":12}}],[\"producer\",{\"1\":{\"49\":7}}],[\"protected\",{\"1\":{\"30\":2}}],[\"priority\",{\"1\":{\"116\":4}}],[\"print\",{\"1\":{\"28\":8,\"38\":3,\"82\":2,\"115\":3,\"117\":2}}],[\"private\",{\"1\":{\"28\":1,\"31\":1,\"32\":1,\"35\":1,\"50\":1,\"65\":1,\"80\":1,\"99\":1,\"103\":2,\"108\":3,\"109\":1,\"117\":1}}],[\"pr\",{\"1\":{\"0\":1,\"96\":1,\"108\":4}}],[\"自己实现一个线程池\",{\"1\":{\"118\":1}}],[\"自己手动实现一些库\",{\"1\":{\"0\":1}}],[\"自动决定线程数量\",{\"1\":{\"115\":1}}],[\"自动调用析构函数进行销毁操作\",{\"1\":{\"77\":1}}],[\"自旋锁的响应更快\",{\"1\":{\"77\":1}}],[\"自旋锁可以理解为一种忙等锁\",{\"1\":{\"77\":1}}],[\"自旋\",{\"1\":{\"48\":1}}],[\"自然也拥有三个不同版本\",{\"1\":{\"108\":1}}],[\"自然也不会启动线程执行任务\",{\"1\":{\"13\":1}}],[\"自然就实现了默认复制\",{\"1\":{\"101\":1}}],[\"自然就得构造对象了\",{\"1\":{\"13\":1}}],[\"自然可以传递给\",{\"1\":{\"54\":1}}],[\"自然会产生数据竞争\",{\"1\":{\"46\":1}}],[\"自然没有数据竞争\",{\"1\":{\"37\":1}}],[\"自然不会产生死锁\",{\"1\":{\"31\":1}}],[\"自然不存在数据竞争\",{\"1\":{\"28\":1}}],[\"自然不可移动不可复制\",{\"1\":{\"28\":1}}],[\"自然抛出\",{\"1\":{\"13\":1}}],[\"自然是会保有一个副本\",{\"1\":{\"15\":1}}],[\"自然是\",{\"1\":{\"2\":1}}],[\"日\",{\"1\":{\"2\":1}}],[\"日期数字\",{\"1\":{\"2\":2}}],[\"39\",{\"1\":{\"72\":1}}],[\"3999\",{\"1\":{\"60\":3}}],[\"38\",{\"1\":{\"72\":1}}],[\"37\",{\"1\":{\"72\":1}}],[\"36304\",{\"1\":{\"117\":3}}],[\"36\",{\"1\":{\"72\":1}}],[\"34\",{\"1\":{\"72\":1}}],[\"33\",{\"1\":{\"72\":1}}],[\"32\",{\"1\":{\"72\":1}}],[\"35ms\",{\"1\":{\"60\":2}}],[\"35\",{\"1\":{\"60\":1,\"72\":1}}],[\"3s\",{\"1\":{\"16\":1,\"22\":1,\"69\":2,\"71\":1}}],[\"3\",{\"1\":{\"11\":1,\"15\":3,\"16\":2,\"22\":2,\"34\":1,\"36\":1,\"40\":1,\"48\":1,\"49\":7,\"60\":4,\"69\":6,\"71\":1,\"72\":4,\"79\":1,\"80\":1,\"116\":1,\"117\":2}}],[\"31416\",{\"1\":{\"117\":1}}],[\"31\",{\"1\":{\"2\":1,\"72\":1}}],[\"300ms\",{\"1\":{\"72\":1}}],[\"30\",{\"1\":{\"0\":1,\"72\":1,\"76\":1}}],[\"月\",{\"1\":{\"2\":1}}],[\"70\",{\"1\":{\"72\":1}}],[\"79\",{\"1\":{\"72\":1}}],[\"78\",{\"1\":{\"72\":1}}],[\"77\",{\"1\":{\"72\":1}}],[\"76\",{\"1\":{\"72\":1}}],[\"75\",{\"1\":{\"72\":1}}],[\"74\",{\"1\":{\"72\":1}}],[\"73\",{\"1\":{\"72\":1}}],[\"72\",{\"1\":{\"72\":1}}],[\"71\",{\"1\":{\"72\":1}}],[\"7fff00\",{\"1\":{\"65\":1}}],[\"7\",{\"1\":{\"2\":1,\"72\":1,\"116\":1,\"117\":2}}],[\"年了\",{\"1\":{\"11\":1}}],[\"年\",{\"1\":{\"2\":1}}],[\"80\",{\"1\":{\"72\":1}}],[\"89\",{\"1\":{\"72\":1}}],[\"88\",{\"1\":{\"72\":1}}],[\"87\",{\"1\":{\"72\":1}}],[\"86\",{\"1\":{\"72\":1}}],[\"85\",{\"1\":{\"72\":1}}],[\"84\",{\"1\":{\"72\":1}}],[\"83\",{\"1\":{\"72\":1}}],[\"82\",{\"1\":{\"72\":1}}],[\"81\",{\"1\":{\"72\":1}}],[\"8\",{\"1\":{\"2\":1,\"11\":5,\"21\":3,\"72\":1,\"99\":1,\"101\":2,\"117\":2}}],[\"image\",{\"0\":{\"121\":1}}],[\"immediate\",{\"1\":{\"108\":10,\"109\":4,\"110\":3}}],[\"impl\",{\"1\":{\"21\":1,\"22\":4,\"104\":2}}],[\"it\",{\"1\":{\"35\":3,\"108\":1}}],[\"iterator\",{\"1\":{\"11\":1}}],[\"iter\",{\"1\":{\"11\":2,\"54\":1}}],[\"iota\",{\"1\":{\"28\":1}}],[\"issue\",{\"1\":{\"96\":1}}],[\"issues\",{\"1\":{\"0\":1}}],[\"isdone\",{\"1\":{\"16\":1}}],[\"is\",{\"1\":{\"14\":1,\"22\":2,\"59\":1,\"72\":1,\"76\":12,\"77\":1,\"100\":2,\"108\":3,\"109\":5,\"110\":2,\"115\":1,\"117\":11}}],[\"i\",{\"1\":{\"11\":9,\"13\":8,\"19\":6,\"27\":4,\"28\":4,\"49\":5,\"54\":11,\"63\":4,\"65\":4,\"69\":3,\"71\":3,\"72\":14,\"77\":1,\"80\":10,\"115\":9,\"116\":3,\"117\":8}}],[\"ifdef\",{\"1\":{\"101\":1}}],[\"if\",{\"1\":{\"11\":1,\"14\":1,\"19\":2,\"22\":3,\"29\":1,\"31\":3,\"32\":6,\"34\":2,\"36\":2,\"50\":3,\"54\":1,\"60\":2,\"61\":1,\"72\":1,\"76\":3,\"78\":2,\"80\":2,\"82\":1,\"100\":5,\"108\":6,\"109\":8,\"110\":2,\"116\":1,\"117\":3}}],[\"i7\",{\"1\":{\"11\":1}}],[\"inheritpriority\",{\"1\":{\"116\":1}}],[\"inside\",{\"1\":{\"110\":1}}],[\"install\",{\"1\":{\"51\":2}}],[\"instance\",{\"1\":{\"34\":5}}],[\"invalidates\",{\"1\":{\"109\":1}}],[\"invoke<\",{\"1\":{\"100\":3}}],[\"invoker\",{\"1\":{\"100\":5}}],[\"invoke\",{\"1\":{\"98\":1,\"100\":13,\"101\":4,\"104\":2,\"107\":1,\"108\":11,\"117\":2}}],[\"invokemethod\",{\"1\":{\"63\":5,\"65\":5,\"66\":1}}],[\"invocable\",{\"1\":{\"100\":4,\"101\":1}}],[\"index>\",{\"1\":{\"104\":1}}],[\"index\",{\"1\":{\"100\":5,\"104\":4}}],[\"information\",{\"1\":{\"65\":3}}],[\"in\",{\"1\":{\"53\":1,\"77\":1,\"108\":1,\"109\":1}}],[\"inline\",{\"1\":{\"34\":1,\"84\":6,\"115\":1,\"117\":1}}],[\"init\",{\"1\":{\"34\":2,\"77\":6}}],[\"initializationsuccessful\",{\"1\":{\"51\":1}}],[\"initializationfailed\",{\"1\":{\"51\":1}}],[\"initialization\",{\"1\":{\"14\":1}}],[\"int>\",{\"1\":{\"15\":1,\"22\":1,\"76\":1,\"100\":2}}],[\"int\",{\"1\":{\"10\":2,\"11\":2,\"13\":16,\"14\":1,\"15\":24,\"16\":4,\"17\":4,\"19\":3,\"22\":2,\"26\":3,\"27\":2,\"28\":2,\"29\":1,\"30\":1,\"32\":2,\"34\":2,\"36\":3,\"37\":2,\"38\":5,\"39\":2,\"49\":3,\"53\":17,\"54\":18,\"55\":5,\"57\":5,\"63\":1,\"65\":1,\"67\":1,\"69\":6,\"71\":4,\"72\":10,\"75\":1,\"76\":11,\"80\":10,\"95\":2,\"99\":2,\"100\":1,\"101\":1,\"108\":3,\"115\":4,\"116\":5,\"117\":7}}],[\"idlepriority\",{\"1\":{\"116\":1}}],[\"identifier\",{\"1\":{\"99\":1}}],[\"id打印主线程和子线程的\",{\"1\":{\"16\":1}}],[\"id\",{\"1\":{\"2\":2,\"16\":6,\"17\":1,\"19\":7,\"27\":2,\"28\":1,\"29\":4,\"36\":2,\"53\":7,\"65\":4,\"66\":1,\"67\":3,\"69\":2,\"71\":3,\"72\":5,\"80\":2,\"99\":5,\"100\":5,\"101\":1,\"115\":1,\"116\":1}}],[\"与先前介绍的\",{\"1\":{\"117\":1}}],[\"与标准库中的\",{\"1\":{\"108\":1}}],[\"与原子对象的值相等\",{\"1\":{\"91\":1}}],[\"与编译器当神经病\",{\"1\":{\"82\":1}}],[\"与编译器不是神经病\",{\"1\":{\"82\":1}}],[\"与此相对\",{\"1\":{\"77\":1}}],[\"与信号量类似\",{\"1\":{\"70\":1}}],[\"与屏障\",{\"1\":{\"70\":1}}],[\"与常规的\",{\"1\":{\"29\":1}}],[\"与线程\",{\"1\":{\"28\":1}}],[\"与其配合使用的对象\",{\"1\":{\"15\":1}}],[\"与\",{\"0\":{\"54\":1,\"91\":1,\"106\":1},\"1\":{\"1\":1,\"17\":1,\"28\":1,\"31\":1,\"35\":1,\"36\":1,\"38\":3,\"39\":1,\"49\":3,\"53\":2,\"54\":2,\"55\":1,\"57\":1,\"58\":1,\"69\":1,\"70\":1,\"72\":1,\"77\":1,\"78\":2,\"86\":2,\"94\":1,\"96\":1,\"108\":4,\"116\":1}}],[\"的事件循环\",{\"1\":{\"116\":1}}],[\"的事情就行\",{\"1\":{\"14\":1}}],[\"的集合\",{\"1\":{\"116\":1}}],[\"的很多部分\",{\"1\":{\"111\":1}}],[\"的继承关系让人感到头疼\",{\"1\":{\"111\":1}}],[\"的偏特化为例\",{\"1\":{\"110\":1}}],[\"的组合无关\",{\"1\":{\"110\":1}}],[\"的类型是\",{\"1\":{\"109\":1}}],[\"的类对象\",{\"1\":{\"13\":1}}],[\"的共享状态转移给了这个局部对象\",{\"1\":{\"109\":1}}],[\"的任务在其它线程执行完毕\",{\"1\":{\"109\":1}}],[\"的任务能够在等待前被启动并执行完毕\",{\"1\":{\"109\":1}}],[\"的步骤\",{\"1\":{\"109\":1}}],[\"的父类\",{\"1\":{\"108\":1}}],[\"的行为是相同的\",{\"1\":{\"108\":1}}],[\"的行为一致\",{\"1\":{\"108\":1}}],[\"的核心组件之一\",{\"1\":{\"108\":1}}],[\"的包装\",{\"1\":{\"108\":1}}],[\"的具体作用\",{\"1\":{\"108\":1}}],[\"的定义确实在大多数情况下和\",{\"1\":{\"108\":1}}],[\"的例子\",{\"1\":{\"108\":1}}],[\"的确\",{\"1\":{\"104\":1}}],[\"的确算是没问题\",{\"1\":{\"30\":1}}],[\"的情况了\",{\"1\":{\"109\":1}}],[\"的情况\",{\"1\":{\"101\":1,\"108\":1}}],[\"的第一行代码展示了这一点\",{\"1\":{\"101\":1}}],[\"的第二个非类型模板参数\",{\"1\":{\"60\":1}}],[\"的声明\",{\"1\":{\"100\":1}}],[\"的意义是什么呢\",{\"1\":{\"100\":1}}],[\"的旧值用以初始化当前对象的数据成员\",{\"1\":{\"100\":1}}],[\"的结果就可能是\",{\"1\":{\"101\":1}}],[\"的结果就是\",{\"1\":{\"60\":1}}],[\"的结果应该为\",{\"1\":{\"99\":1}}],[\"的东西\",{\"1\":{\"98\":1,\"107\":1}}],[\"的一些库\",{\"1\":{\"98\":1,\"107\":1}}],[\"的一个特化别名\",{\"1\":{\"69\":1}}],[\"的运行测试链接以确保正确性\",{\"1\":{\"94\":1}}],[\"的程序\",{\"1\":{\"94\":1}}],[\"的程序时\",{\"1\":{\"62\":1}}],[\"的控制块是线程安全的\",{\"1\":{\"91\":1}}],[\"的成员函数\",{\"1\":{\"91\":1,\"108\":3,\"109\":2}}],[\"的关系\",{\"0\":{\"91\":1}}],[\"的弱一致性模型有所不同\",{\"1\":{\"86\":1}}],[\"的强一致性模型\",{\"1\":{\"86\":1}}],[\"的设计目标是简化指令集\",{\"1\":{\"86\":1}}],[\"的设计哲学\",{\"1\":{\"21\":1}}],[\"的完成会确保操作\",{\"1\":{\"83\":1}}],[\"的完整运行示例\",{\"1\":{\"33\":1}}],[\"的内容非常之多\",{\"1\":{\"109\":1}}],[\"的内容同样重要\",{\"1\":{\"107\":1}}],[\"的内存模型\",{\"0\":{\"86\":1}}],[\"的内存序机制可以确保数据修改的可见\",{\"1\":{\"83\":1}}],[\"的内部实现\",{\"1\":{\"80\":1}}],[\"的写操作在其他线程\",{\"1\":{\"83\":1}}],[\"的修改对线程\",{\"1\":{\"83\":1}}],[\"的修改\",{\"1\":{\"83\":3}}],[\"的指令重排必须遵循一定的规则\",{\"1\":{\"82\":1}}],[\"的指针\",{\"1\":{\"13\":1,\"80\":1}}],[\"的保护\",{\"1\":{\"80\":1}}],[\"的通常实现只保有两个指针\",{\"1\":{\"80\":1}}],[\"的通常实现就是单纯的保有\",{\"1\":{\"21\":1}}],[\"的实例进行所有访问\",{\"1\":{\"80\":1}}],[\"的实现使用到了微软自己实现的\",{\"1\":{\"108\":1}}],[\"的实现进行讲解\",{\"1\":{\"107\":1}}],[\"的实现是最简单直观的\",{\"1\":{\"102\":1}}],[\"的实现只保有一个\",{\"1\":{\"101\":1}}],[\"的实现中\",{\"1\":{\"39\":1,\"53\":1,\"69\":1}}],[\"的实现\",{\"1\":{\"28\":1,\"102\":1,\"108\":1}}],[\"的另一个不同是\",{\"1\":{\"78\":1}}],[\"的操作\",{\"1\":{\"78\":1}}],[\"的局限性太强\",{\"1\":{\"77\":1}}],[\"的文章\",{\"1\":{\"77\":1}}],[\"的默认构造函数保证对象为\",{\"1\":{\"77\":1}}],[\"的可平凡复制\",{\"1\":{\"76\":1}}],[\"的前缀\",{\"1\":{\"76\":1}}],[\"的静态数据成员\",{\"1\":{\"76\":1}}],[\"的静态成员函数\",{\"1\":{\"11\":1}}],[\"的数量\",{\"1\":{\"80\":2}}],[\"的数据成员的时候已经把这个模板类的全部源码\",{\"1\":{\"104\":1}}],[\"的数据成员\",{\"0\":{\"99\":1,\"103\":1},\"1\":{\"76\":1,\"108\":1}}],[\"的数组\",{\"1\":{\"13\":1}}],[\"的最大值\",{\"1\":{\"73\":1}}],[\"的最小睡眠时间默认就是\",{\"1\":{\"61\":1}}],[\"的非延迟执行策略\",{\"1\":{\"111\":1}}],[\"的非\",{\"1\":{\"73\":1,\"80\":3}}],[\"的作用就非常明显了\",{\"1\":{\"72\":1}}],[\"的计数减少至\",{\"1\":{\"71\":1}}],[\"的计数不可增加\",{\"1\":{\"71\":1}}],[\"的计算\",{\"1\":{\"28\":1}}],[\"的特定构造函数\",{\"1\":{\"108\":1}}],[\"的特化都拥有这些成员函数\",{\"1\":{\"80\":1}}],[\"的特化版本\",{\"1\":{\"80\":1}}],[\"的特化的别名\",{\"1\":{\"69\":1}}],[\"的特殊对象\",{\"1\":{\"27\":1}}],[\"的接收者\",{\"1\":{\"69\":1}}],[\"的响应情况\",{\"1\":{\"68\":1}}],[\"的精度是\",{\"1\":{\"61\":1}}],[\"的时间库极其繁杂\",{\"1\":{\"59\":1}}],[\"的时候上锁了\",{\"1\":{\"31\":1}}],[\"的时候上锁\",{\"1\":{\"28\":1}}],[\"的时候\",{\"1\":{\"13\":1,\"15\":1,\"27\":1,\"80\":1}}],[\"的时候就关联了一个活跃的线程\",{\"1\":{\"10\":1}}],[\"的时候应该都写过这样一段代码\",{\"1\":{\"10\":1}}],[\"的等待函数\",{\"1\":{\"58\":1}}],[\"的副本可以调用一切成员函数\",{\"1\":{\"91\":1}}],[\"的副本\",{\"1\":{\"57\":1,\"80\":1}}],[\"的副本了\",{\"1\":{\"57\":1}}],[\"的所有权\",{\"1\":{\"57\":1}}],[\"的所有特化中\",{\"1\":{\"56\":1}}],[\"的所有功能\",{\"1\":{\"35\":1}}],[\"的状态原子地更改为设置\",{\"1\":{\"77\":2}}],[\"的状态原子地更改为清除\",{\"1\":{\"77\":1}}],[\"的状态变化\",{\"0\":{\"56\":1},\"1\":{\"109\":1}}],[\"的状态是确定的\",{\"1\":{\"28\":1}}],[\"的异常\",{\"1\":{\"55\":2}}],[\"的值都为\",{\"1\":{\"101\":1}}],[\"的值有两种方式\",{\"1\":{\"78\":1}}],[\"的值是多少也不确定\",{\"1\":{\"75\":1}}],[\"的值\",{\"1\":{\"55\":1,\"73\":1,\"75\":2}}],[\"的值相比\",{\"1\":{\"21\":1}}],[\"的平方是\",{\"1\":{\"55\":1}}],[\"的形式\",{\"1\":{\"54\":1}}],[\"的形参是谁传递的\",{\"1\":{\"22\":1}}],[\"的形参类型不是\",{\"1\":{\"15\":1}}],[\"的形参会调整为具有类型\",{\"1\":{\"13\":1}}],[\"的重载版本\",{\"1\":{\"116\":1}}],[\"的重载\",{\"1\":{\"54\":1,\"100\":1}}],[\"的执行策略\",{\"1\":{\"53\":1}}],[\"的返回类型就是\",{\"1\":{\"59\":1}}],[\"的返回类型\",{\"1\":{\"52\":1,\"104\":1}}],[\"的视频教程\",{\"1\":{\"52\":1}}],[\"的无效开销\",{\"1\":{\"50\":1}}],[\"的功能相当有限\",{\"1\":{\"80\":1}}],[\"的功能受限\",{\"1\":{\"71\":1}}],[\"的功能\",{\"1\":{\"50\":1}}],[\"的模板类\",{\"1\":{\"49\":1}}],[\"的泛化\",{\"1\":{\"48\":1}}],[\"的对象拥有此存储期\",{\"1\":{\"44\":1}}],[\"的对象就是指代线程的对象\",{\"1\":{\"12\":1}}],[\"的扩展\",{\"1\":{\"38\":1}}],[\"的编译器扩展\",{\"1\":{\"38\":2,\"94\":1}}],[\"的编译器扩展即可\",{\"1\":{\"38\":1}}],[\"的概念源自操作系统\",{\"1\":{\"38\":1}}],[\"的开销是过大的\",{\"1\":{\"35\":1}}],[\"的开发者链接\",{\"1\":{\"22\":1}}],[\"的初始化\",{\"1\":{\"34\":1}}],[\"的移动构造罢了\",{\"1\":{\"33\":1}}],[\"的要求\",{\"1\":{\"33\":1}}],[\"的代码\",{\"1\":{\"31\":1,\"53\":1}}],[\"的代码中\",{\"1\":{\"13\":1}}],[\"的互斥量执行完毕才能解锁\",{\"1\":{\"31\":1}}],[\"的互斥量\",{\"1\":{\"31\":7}}],[\"的分支\",{\"1\":{\"29\":1}}],[\"的生存期\",{\"1\":{\"28\":1}}],[\"的性能和内存占用\",{\"1\":{\"21\":1}}],[\"的源码你可能注意到了一个问题\",{\"1\":{\"109\":1}}],[\"的源码我认为无需过多篇幅或者示例\",{\"1\":{\"109\":1}}],[\"的源码解析\",{\"1\":{\"105\":1}}],[\"的源码的时候也提到过\",{\"1\":{\"104\":1}}],[\"的源码实现\",{\"1\":{\"48\":1}}],[\"的源码实现来配合理解\",{\"1\":{\"23\":1}}],[\"的源码实现与解析\",{\"0\":{\"102\":1},\"1\":{\"1\":1,\"31\":1}}],[\"的源码\",{\"1\":{\"19\":1}}],[\"的区别\",{\"1\":{\"58\":1}}],[\"的区别就如同\",{\"1\":{\"57\":1}}],[\"的区别就是析构函数会自动\",{\"1\":{\"19\":1}}],[\"的区别无非是\",{\"1\":{\"13\":1}}],[\"的使用\",{\"1\":{\"18\":1,\"71\":1,\"108\":1}}],[\"的使用了\",{\"1\":{\"11\":1}}],[\"的这次\",{\"1\":{\"17\":1}}],[\"的占用\",{\"1\":{\"16\":1}}],[\"的别名\",{\"1\":{\"16\":1}}],[\"的调用在多线程环境中可能会交错\",{\"1\":{\"72\":1}}],[\"的调用次数一样\",{\"1\":{\"36\":1}}],[\"的调用恰好比\",{\"1\":{\"36\":1}}],[\"的调用将阻塞执行\",{\"1\":{\"27\":1}}],[\"的调用\",{\"1\":{\"15\":1}}],[\"的转换构造函数\",{\"1\":{\"15\":1}}],[\"的线程池对象在析构时会自动调用相关的清理方法\",{\"1\":{\"115\":1}}],[\"的线程可见\",{\"1\":{\"83\":1}}],[\"的线程在完成第三轮同步后退出\",{\"1\":{\"72\":1}}],[\"的线程成功调用\",{\"1\":{\"28\":1}}],[\"的线程得以继续往下执行\",{\"1\":{\"27\":1}}],[\"的线程资源所有权到\",{\"1\":{\"17\":1}}],[\"的线程资源的所有权移交给\",{\"1\":{\"17\":1}}],[\"的线程\",{\"1\":{\"15\":1}}],[\"的缩写\",{\"1\":{\"15\":1}}],[\"的引用\",{\"1\":{\"15\":3,\"100\":1}}],[\"的引用被子线程持有\",{\"1\":{\"13\":1}}],[\"的\",{\"1\":{\"13\":2,\"15\":2,\"22\":3,\"26\":1,\"28\":1,\"32\":1,\"53\":1,\"54\":1,\"60\":1,\"66\":2,\"67\":2,\"72\":3,\"78\":1,\"83\":2,\"86\":1,\"108\":1,\"109\":1}}],[\"的参数全部转发给它\",{\"1\":{\"108\":1}}],[\"的参数\",{\"1\":{\"13\":1}}],[\"的空参的函数指针类型\",{\"1\":{\"13\":1}}],[\"的两倍\",{\"1\":{\"11\":1}}],[\"的熟悉程度\",{\"1\":{\"11\":1}}],[\"的简单的模板函数\",{\"1\":{\"11\":1}}],[\"的进行多线程求和\",{\"1\":{\"11\":1}}],[\"的距离\",{\"1\":{\"11\":1}}],[\"的环境运行也可以自行修改为\",{\"1\":{\"11\":1}}],[\"的析构函数调用\",{\"1\":{\"22\":1}}],[\"的析构函数中\",{\"1\":{\"14\":1,\"22\":1}}],[\"的析构函数\",{\"1\":{\"10\":1,\"28\":1}}],[\"的析构函数将调用\",{\"1\":{\"10\":1}}],[\"的假象\",{\"1\":{\"6\":1}}],[\"的构造与析构\",{\"0\":{\"104\":1}}],[\"的构造与源码分析最后说的\",{\"1\":{\"102\":1}}],[\"的构造函数是\",{\"1\":{\"108\":1}}],[\"的构造函数接受的却不是\",{\"1\":{\"108\":1}}],[\"的构造函数\",{\"0\":{\"100\":1},\"1\":{\"108\":1}}],[\"的构造函数会自增一个全局变量\",{\"1\":{\"46\":1}}],[\"的构造函数中成功调用\",{\"1\":{\"28\":1}}],[\"的构造函数中\",{\"1\":{\"15\":1}}],[\"的构造函数中调用了创建线程的函数\",{\"1\":{\"15\":1}}],[\"的构造函数其实并没有申请资源\",{\"1\":{\"14\":1}}],[\"的构造没有问题\",{\"1\":{\"15\":1}}],[\"的构造参数即可\",{\"1\":{\"15\":1}}],[\"的构造\",{\"0\":{\"98\":1},\"1\":{\"1\":1,\"15\":1,\"18\":1}}],[\"的教案\",{\"1\":{\"0\":1}}],[\"tag\",{\"1\":{\"108\":4,\"109\":1}}],[\"task2\",{\"1\":{\"117\":1}}],[\"tasks\",{\"1\":{\"54\":4,\"117\":8}}],[\"task\",{\"1\":{\"108\":1,\"109\":1}}],[\"task\",{\"1\":{\"100\":5,\"104\":1}}],[\"tuple\",{\"1\":{\"100\":12,\"101\":1,\"103\":1,\"104\":13}}],[\"t第\",{\"1\":{\"72\":2}}],[\"ty2\",{\"1\":{\"110\":1}}],[\"ty2>\",{\"1\":{\"110\":3}}],[\"ty是默认可构造的\",{\"1\":{\"110\":1}}],[\"ty>>\",{\"1\":{\"108\":1}}],[\"ty>\",{\"1\":{\"108\":13,\"109\":15,\"110\":1}}],[\"ty\",{\"1\":{\"56\":2,\"108\":2,\"109\":7,\"110\":5}}],[\"types\",{\"1\":{\"100\":1}}],[\"typedef\",{\"1\":{\"84\":1}}],[\"type\",{\"1\":{\"108\":1}}],[\"type<\",{\"1\":{\"53\":1,\"108\":4}}],[\"typename\",{\"1\":{\"11\":1,\"19\":1,\"54\":2,\"61\":1,\"108\":2,\"117\":1}}],[\"type>>\",{\"1\":{\"54\":1}}],[\"type>>futures\",{\"1\":{\"54\":1}}],[\"type>\",{\"1\":{\"11\":1,\"53\":1,\"76\":7,\"108\":1}}],[\"type\",{\"1\":{\"11\":8,\"28\":1,\"53\":2,\"54\":8,\"76\":21,\"101\":2,\"103\":1,\"108\":13,\"109\":1}}],[\"tso\",{\"1\":{\"82\":1,\"86\":4,\"94\":1}}],[\"ts\",{\"1\":{\"54\":3}}],[\"tts\",{\"1\":{\"51\":1}}],[\"tlsfree\",{\"1\":{\"38\":1}}],[\"tlsgetvalue\",{\"1\":{\"38\":1}}],[\"tlssetvalue\",{\"1\":{\"38\":1}}],[\"tlsalloc\",{\"1\":{\"38\":1}}],[\"tls\",{\"1\":{\"38\":1}}],[\"t4\",{\"1\":{\"28\":2,\"53\":1}}],[\"t参数的构造函数\",{\"1\":{\"28\":1}}],[\"t3\",{\"1\":{\"26\":1,\"28\":2,\"53\":1}}],[\"t1\",{\"1\":{\"26\":1,\"28\":2,\"29\":2,\"36\":2,\"53\":1}}],[\"t\",{\"1\":{\"117\":2}}],[\"t\",{\"1\":{\"108\":1}}],[\"t>>\",{\"1\":{\"104\":1}}],[\"t\",{\"1\":{\"117\":2}}],[\"t\",{\"1\":{\"108\":1}}],[\"t\",{\"1\":{\"100\":1}}],[\"t\",{\"1\":{\"11\":1,\"54\":1}}],[\"t<\",{\"1\":{\"22\":4,\"100\":7,\"101\":2,\"108\":10}}],[\"t重载决议\",{\"1\":{\"17\":1}}],[\"t2\",{\"1\":{\"17\":14,\"26\":5,\"28\":2,\"29\":2,\"31\":1,\"36\":2,\"53\":1,\"57\":2,\"117\":2}}],[\"timecriticalpriority\",{\"1\":{\"116\":1}}],[\"timeendperiod\",{\"1\":{\"61\":1}}],[\"timebeginperiod\",{\"1\":{\"61\":1}}],[\"timeout\",{\"1\":{\"60\":2,\"61\":3}}],[\"timed\",{\"1\":{\"35\":2}}],[\"time\",{\"1\":{\"16\":19,\"58\":1,\"59\":14,\"61\":6,\"69\":2}}],[\"t>\",{\"1\":{\"15\":1,\"49\":1,\"73\":1,\"117\":3}}],[\"then\",{\"1\":{\"56\":3,\"109\":4}}],[\"the\",{\"1\":{\"32\":2,\"53\":1,\"56\":5,\"77\":1,\"100\":1,\"108\":2,\"109\":12}}],[\"that\",{\"1\":{\"28\":1,\"77\":2,\"103\":1,\"109\":4}}],[\"thr\",{\"1\":{\"69\":1,\"99\":2,\"100\":17,\"115\":1,\"117\":10}}],[\"thrd\",{\"1\":{\"65\":2,\"67\":1,\"99\":6}}],[\"throws\",{\"1\":{\"109\":1}}],[\"thrown\",{\"1\":{\"109\":1}}],[\"throw\",{\"1\":{\"13\":4,\"32\":2,\"34\":1,\"55\":6,\"56\":3,\"100\":2,\"108\":6,\"109\":8,\"110\":1,\"117\":1}}],[\"threadpool\",{\"1\":{\"116\":4,\"117\":10}}],[\"thread1\",{\"1\":{\"57\":4}}],[\"thread2\",{\"1\":{\"19\":1,\"57\":4}}],[\"thread>threads\",{\"1\":{\"19\":2,\"27\":1}}],[\"thread>\",{\"1\":{\"11\":1,\"27\":1,\"54\":1,\"100\":1,\"117\":3}}],[\"threadsafe\",{\"1\":{\"49\":5}}],[\"threads\",{\"1\":{\"11\":9,\"19\":3,\"27\":5,\"54\":9,\"69\":2,\"71\":2,\"72\":7,\"115\":7,\"117\":10}}],[\"threading\",{\"1\":{\"11\":1}}],[\"thread\",{\"0\":{\"98\":1},\"1\":{\"1\":1,\"2\":1,\"9\":2,\"10\":6,\"11\":6,\"12\":2,\"13\":35,\"14\":16,\"15\":21,\"16\":8,\"17\":26,\"18\":3,\"19\":27,\"20\":1,\"21\":6,\"22\":4,\"24\":2,\"25\":1,\"26\":5,\"27\":6,\"28\":5,\"29\":6,\"31\":2,\"36\":6,\"38\":23,\"39\":6,\"44\":2,\"48\":3,\"50\":6,\"52\":1,\"53\":11,\"54\":6,\"55\":4,\"57\":11,\"58\":2,\"61\":2,\"63\":1,\"65\":1,\"67\":2,\"69\":11,\"71\":3,\"72\":5,\"80\":13,\"98\":2,\"99\":3,\"100\":23,\"101\":4,\"102\":1,\"104\":2,\"105\":1,\"108\":4,\"110\":4,\"115\":14,\"116\":3,\"117\":10,\"118\":1}}],[\"this\",{\"1\":{\"13\":1,\"16\":7,\"17\":1,\"19\":3,\"22\":2,\"27\":2,\"28\":1,\"29\":1,\"36\":2,\"48\":3,\"49\":2,\"50\":3,\"53\":7,\"55\":1,\"56\":4,\"57\":2,\"58\":2,\"61\":2,\"63\":7,\"65\":13,\"67\":1,\"69\":3,\"71\":2,\"72\":1,\"80\":7,\"91\":1,\"95\":1,\"108\":10,\"109\":7,\"110\":2,\"115\":2,\"117\":2}}],[\"torvalds\",{\"1\":{\"77\":1}}],[\"token\",{\"1\":{\"22\":14,\"23\":1,\"24\":1}}],[\"to\",{\"1\":{\"16\":3,\"28\":7,\"59\":2,\"65\":2,\"69\":6,\"100\":4,\"108\":1}}],[\"todo\",{\"1\":{\"13\":4,\"15\":3,\"54\":2,\"57\":3,\"61\":1,\"71\":1}}],[\"total\",{\"1\":{\"11\":4,\"54\":5,\"82\":1,\"86\":2,\"94\":1}}],[\"trivially\",{\"1\":{\"76\":1}}],[\"triviallycopyable\",{\"1\":{\"76\":1}}],[\"trivial\",{\"1\":{\"76\":14}}],[\"transferred\",{\"1\":{\"100\":1}}],[\"transition\",{\"1\":{\"53\":1,\"100\":1,\"108\":2,\"109\":1,\"110\":1}}],[\"traits\",{\"1\":{\"11\":1}}],[\"trycatch\",{\"1\":{\"13\":1}}],[\"try\",{\"1\":{\"13\":5,\"22\":2,\"29\":3,\"32\":1,\"34\":2,\"49\":1,\"55\":4,\"56\":1,\"78\":2,\"100\":2,\"108\":3,\"110\":1}}],[\"true\",{\"1\":{\"10\":1,\"13\":1,\"29\":1,\"32\":5,\"48\":6,\"50\":1,\"53\":1,\"56\":1,\"61\":1,\"63\":1,\"65\":1,\"72\":1,\"76\":3,\"77\":6,\"78\":16,\"108\":5,\"109\":6,\"110\":1,\"117\":1}}],[\"text\",{\"1\":{\"65\":2}}],[\"test\",{\"1\":{\"15\":4,\"77\":6,\"78\":1,\"108\":2}}],[\"terminates\",{\"1\":{\"100\":1}}],[\"terminate\",{\"1\":{\"10\":2,\"14\":1}}],[\"template<\",{\"1\":{\"61\":1,\"72\":1,\"104\":1}}],[\"template\",{\"1\":{\"76\":1}}],[\"short\",{\"1\":{\"76\":2}}],[\"should\",{\"1\":{\"53\":1,\"108\":1,\"109\":1}}],[\"share\",{\"1\":{\"57\":2,\"109\":1}}],[\"shared\",{\"1\":{\"80\":4}}],[\"shared\",{\"1\":{\"80\":4}}],[\"shared\",{\"1\":{\"49\":1}}],[\"shared\",{\"1\":{\"34\":1,\"35\":11,\"46\":1,\"49\":3,\"52\":4,\"56\":1,\"57\":30,\"73\":3,\"80\":33,\"91\":2,\"109\":2}}],[\"switch\",{\"1\":{\"53\":1,\"108\":1}}],[\"swap\",{\"1\":{\"19\":2,\"31\":10,\"32\":3,\"80\":3,\"108\":3}}],[\"supplied\",{\"1\":{\"108\":1}}],[\"submit\",{\"1\":{\"117\":8}}],[\"sub\",{\"1\":{\"76\":1,\"79\":1}}],[\"sudo\",{\"1\":{\"51\":2}}],[\"sum\",{\"1\":{\"11\":8,\"28\":4,\"54\":7,\"117\":5}}],[\"summary\",{\"0\":{\"1\":1}}],[\"sfinae\",{\"1\":{\"100\":1}}],[\"sf\",{\"1\":{\"50\":4,\"57\":1}}],[\"sfml不支持\",{\"1\":{\"51\":1}}],[\"sfml\",{\"1\":{\"50\":2,\"51\":2}}],[\"sequence\",{\"1\":{\"100\":2,\"104\":2}}],[\"sequence\",{\"1\":{\"69\":1}}],[\"semaphore<1>\",{\"1\":{\"69\":1}}],[\"semaphore\",{\"1\":{\"69\":13,\"73\":1}}],[\"self\",{\"1\":{\"67\":1}}],[\"select\",{\"1\":{\"53\":1,\"108\":1}}],[\"second\",{\"1\":{\"60\":1}}],[\"seconds>\",{\"1\":{\"60\":1}}],[\"seconds\",{\"1\":{\"16\":2,\"48\":2,\"50\":1,\"53\":1,\"55\":1,\"57\":2,\"60\":4,\"61\":1,\"69\":1}}],[\"setupui\",{\"1\":{\"65\":1}}],[\"setspecific\",{\"1\":{\"38\":1}}],[\"set\",{\"1\":{\"35\":1,\"53\":1,\"55\":18,\"77\":6,\"78\":3,\"80\":1,\"108\":12,\"110\":7}}],[\"settings\",{\"1\":{\"35\":1}}],[\"so\",{\"1\":{\"109\":1}}],[\"solid\",{\"1\":{\"65\":1}}],[\"soundcount\",{\"1\":{\"51\":1}}],[\"soundindex\",{\"1\":{\"51\":1}}],[\"sound\",{\"1\":{\"51\":11}}],[\"soundresources\",{\"1\":{\"51\":2}}],[\"soundsource\",{\"1\":{\"50\":1}}],[\"source\",{\"1\":{\"21\":3,\"22\":6,\"23\":1,\"24\":1}}],[\"some\",{\"1\":{\"33\":4,\"34\":4}}],[\"something\",{\"1\":{\"30\":4,\"34\":3}}],[\"ssource\",{\"1\":{\"21\":1,\"22\":2}}],[\"s\",{\"1\":{\"16\":3,\"59\":2,\"60\":4,\"65\":2,\"76\":1,\"100\":2}}],[\"system\",{\"1\":{\"16\":5,\"32\":2,\"59\":6,\"61\":4}}],[\"sleep\",{\"1\":{\"16\":11,\"22\":2,\"29\":1,\"48\":3,\"50\":3,\"53\":1,\"55\":1,\"57\":2,\"58\":2,\"61\":3,\"63\":1,\"65\":1,\"69\":3,\"71\":2,\"72\":1,\"80\":5}}],[\"signed\",{\"1\":{\"76\":1}}],[\"signal\",{\"1\":{\"69\":6,\"108\":1,\"109\":2}}],[\"simulate\",{\"1\":{\"48\":3}}],[\"simultaneous\",{\"1\":{\"11\":1}}],[\"singleton\",{\"1\":{\"34\":1}}],[\"sizeof\",{\"1\":{\"21\":1,\"99\":1,\"100\":2,\"101\":1}}],[\"size\",{\"1\":{\"11\":9,\"19\":3,\"26\":1,\"27\":2,\"31\":1,\"37\":1,\"54\":7,\"100\":2,\"104\":2,\"115\":4,\"117\":9}}],[\"sttd\",{\"1\":{\"111\":1}}],[\"st\",{\"0\":{\"106\":1}}],[\"style\",{\"1\":{\"65\":5}}],[\"studio\",{\"1\":{\"64\":1}}],[\"steady\",{\"1\":{\"59\":4,\"61\":4}}],[\"store\",{\"1\":{\"76\":5,\"78\":3,\"79\":1,\"80\":4,\"82\":1,\"86\":2,\"94\":1,\"110\":2,\"117\":1}}],[\"stored\",{\"1\":{\"56\":5,\"108\":1,\"109\":10,\"110\":2}}],[\"storage\",{\"1\":{\"38\":1}}],[\"stopped\",{\"1\":{\"117\":1}}],[\"stop\",{\"1\":{\"21\":3,\"22\":25,\"23\":2,\"24\":2,\"50\":5,\"115\":3,\"117\":15}}],[\"status\",{\"1\":{\"60\":4,\"61\":1}}],[\"state继承关系示意图\",{\"1\":{\"109\":1}}],[\"state\",{\"1\":{\"35\":1,\"50\":1,\"57\":6}}],[\"string\",{\"1\":{\"15\":10,\"30\":1,\"31\":2,\"35\":5,\"50\":2,\"57\":2,\"65\":2,\"104\":1}}],[\"struct\",{\"1\":{\"13\":2,\"15\":3,\"31\":1,\"37\":1,\"39\":1,\"53\":3,\"76\":2,\"79\":1,\"95\":1,\"99\":1,\"100\":1,\"108\":3,\"116\":1,\"117\":1}}],[\"stdcall\",{\"1\":{\"100\":1}}],[\"std\",{\"0\":{\"98\":1,\"102\":1,\"106\":1},\"1\":{\"1\":4,\"9\":3,\"10\":12,\"11\":24,\"12\":2,\"13\":25,\"14\":7,\"15\":57,\"16\":32,\"17\":36,\"18\":4,\"19\":25,\"20\":2,\"21\":9,\"22\":26,\"23\":2,\"24\":5,\"25\":1,\"26\":13,\"27\":10,\"28\":34,\"29\":11,\"30\":5,\"31\":30,\"32\":30,\"33\":15,\"34\":19,\"35\":19,\"36\":16,\"37\":7,\"38\":4,\"39\":13,\"46\":4,\"47\":1,\"48\":27,\"49\":14,\"50\":12,\"51\":1,\"52\":7,\"53\":76,\"54\":50,\"55\":42,\"56\":20,\"57\":65,\"58\":3,\"59\":22,\"60\":27,\"61\":26,\"63\":3,\"65\":6,\"66\":2,\"67\":2,\"69\":25,\"70\":2,\"71\":14,\"72\":26,\"73\":2,\"75\":3,\"76\":39,\"77\":22,\"78\":20,\"79\":6,\"80\":52,\"83\":2,\"84\":1,\"91\":2,\"95\":3,\"98\":2,\"99\":2,\"100\":34,\"101\":12,\"102\":3,\"103\":13,\"104\":32,\"105\":2,\"107\":7,\"108\":48,\"109\":26,\"110\":7,\"111\":8,\"115\":6,\"116\":1,\"117\":46}}],[\"stl\",{\"1\":{\"0\":1,\"21\":1,\"22\":1,\"23\":1,\"28\":1,\"32\":1,\"48\":1,\"53\":2,\"56\":1,\"60\":1,\"69\":1,\"72\":1,\"76\":1,\"77\":1,\"93\":1,\"94\":1,\"98\":1,\"101\":1,\"102\":1,\"104\":1,\"107\":2,\"108\":1}}],[\"白老师一天的食品安全就有了着落\",{\"1\":{\"0\":1}}],[\"激励白老师有更多的精力和信心维护本仓库\",{\"1\":{\"0\":1}}],[\"猫猫虫\",{\"1\":{\"0\":1}}],[\"++\",{\"1\":{\"76\":1}}],[\"++a\",{\"1\":{\"75\":4}}],[\"++n\",{\"1\":{\"31\":2,\"34\":1,\"39\":1}}],[\"++i\",{\"1\":{\"11\":1,\"13\":1,\"19\":2,\"27\":2,\"49\":2,\"54\":2,\"63\":1,\"65\":1,\"69\":1,\"71\":1,\"72\":4,\"80\":4,\"115\":2,\"116\":1,\"117\":3}}],[\"+=\",{\"1\":{\"13\":1,\"37\":1,\"54\":1,\"76\":1,\"117\":1}}],[\"+\",{\"1\":{\"0\":2,\"2\":1,\"11\":2,\"16\":1,\"21\":1,\"28\":1,\"49\":66,\"54\":3,\"61\":2,\"64\":1,\"71\":1,\"72\":2,\"73\":1,\"93\":2,\"94\":1,\"100\":3,\"104\":1,\"108\":12,\"109\":12}}],[\"本单章专门介绍标准库在\",{\"1\":{\"102\":1}}],[\"本教程长期维护\",{\"1\":{\"96\":1}}],[\"本教程在中文社区的同类型教程中是绝对的第一\",{\"1\":{\"93\":1}}],[\"本教程不保证你学习之后的成果\",{\"1\":{\"93\":1}}],[\"本教程假设开发者的最低水平为\",{\"1\":{\"0\":1}}],[\"本套教程侧重点在于使用\",{\"1\":{\"93\":1}}],[\"本身有三个特化\",{\"1\":{\"109\":1}}],[\"本身在多线程的支持了\",{\"1\":{\"80\":1}}],[\"本身的值\",{\"1\":{\"80\":1}}],[\"本身不是原子操作\",{\"1\":{\"75\":1}}],[\"本身是重载了\",{\"1\":{\"54\":1}}],[\"本身就是右值表达式\",{\"1\":{\"17\":1}}],[\"本身就是生成了一个函数对象\",{\"1\":{\"13\":1}}],[\"本身设置使用很简单\",{\"1\":{\"16\":1}}],[\"本节主要广泛介绍\",{\"1\":{\"76\":1}}],[\"本节内容也不会对你构成难度\",{\"1\":{\"72\":1}}],[\"本节内容总体来说是很简单的\",{\"1\":{\"17\":1}}],[\"本节是偏向概念的认识\",{\"1\":{\"40\":1}}],[\"本节代码只是为了学习\",{\"1\":{\"11\":1}}],[\"本节其实是要普及一下计算机常识\",{\"1\":{\"11\":1}}],[\"本章讨论了多种用于同步操作的工具\",{\"1\":{\"73\":1}}],[\"本章讨论了多线程的共享数据引发的恶性条件竞争会带来的问题\",{\"1\":{\"46\":1}}],[\"本章将讨论如何使用条件变量等待事件\",{\"1\":{\"47\":1}}],[\"本章的主要内容有\",{\"1\":{\"47\":1}}],[\"本章的内容在市面上并不算少见\",{\"1\":{\"24\":1}}],[\"本章也完全不用担心\",{\"1\":{\"25\":1}}],[\"本章节主要内容\",{\"1\":{\"25\":1}}],[\"本章节的内容围绕着\",{\"1\":{\"24\":1}}],[\"本章围绕着它们来讲解\",{\"1\":{\"9\":1}}],[\"本章中\",{\"1\":{\"9\":1}}],[\"本仓库用来存放\",{\"1\":{\"0\":1}}],[\"准确的方式进行教学\",{\"1\":{\"0\":1}}],[\"不存在这个问题\",{\"1\":{\"117\":1}}],[\"不存在一个对象同时被多个线程修改\",{\"1\":{\"28\":1}}],[\"不区分\",{\"1\":{\"111\":1}}],[\"不获取返回值\",{\"1\":{\"108\":1}}],[\"不获得互斥体的所有权\",{\"1\":{\"32\":1}}],[\"不为空\",{\"1\":{\"100\":1}}],[\"不导致编译错误\",{\"1\":{\"100\":1}}],[\"不使用构造函数\",{\"1\":{\"91\":1}}],[\"不禁止就是有可能\",{\"1\":{\"82\":1}}],[\"不相等\",{\"1\":{\"78\":1}}],[\"不需要模板的水平有多高\",{\"1\":{\"93\":1,\"101\":1}}],[\"不需要额外的同步设施进行保护\",{\"1\":{\"75\":1}}],[\"不需要进行同步操作\",{\"1\":{\"40\":1}}],[\"不影响之后重置计数\",{\"1\":{\"72\":1}}],[\"不少情况很多同步设施都能完成你的需求\",{\"1\":{\"71\":1}}],[\"不少开发者喜欢直接将声明为线程存储期的对象称为\",{\"1\":{\"38\":1}}],[\"不在乎其返回类型只用来实施它的副作用\",{\"1\":{\"104\":1}}],[\"不在\",{\"1\":{\"65\":1}}],[\"不管如何减少计数\",{\"1\":{\"72\":1}}],[\"不管使用哪种时钟获取时间\",{\"1\":{\"59\":1}}],[\"不管是\",{\"1\":{\"101\":1}}],[\"不管是书籍\",{\"1\":{\"0\":1}}],[\"不管是否购买课程\",{\"1\":{\"0\":1}}],[\"不然就会抛出异常\",{\"1\":{\"55\":1}}],[\"不然保护将形同虚设\",{\"1\":{\"30\":1,\"80\":1}}],[\"不能被拷贝和移动\",{\"1\":{\"79\":1}}],[\"不能再次调用\",{\"1\":{\"56\":1}}],[\"不能复制\",{\"1\":{\"54\":1}}],[\"不能调用\",{\"1\":{\"53\":1}}],[\"不阻塞\",{\"1\":{\"54\":1}}],[\"不确定的\",{\"1\":{\"58\":1}}],[\"不确定\",{\"1\":{\"53\":1}}],[\"不给出执行策略就是以\",{\"1\":{\"53\":1}}],[\"不创建线程\",{\"1\":{\"53\":2,\"60\":1}}],[\"不知道去哪生成这些语音播报\",{\"1\":{\"51\":1}}],[\"不仅有效减少了\",{\"1\":{\"50\":1}}],[\"不执行\",{\"1\":{\"49\":1}}],[\"不应该执行\",{\"1\":{\"49\":1}}],[\"不考虑非标准用法\",{\"1\":{\"44\":1}}],[\"不考虑静态局部\",{\"0\":{\"42\":1}}],[\"不包括用户定义的\",{\"1\":{\"37\":1}}],[\"不要在用户空间中使用自旋锁\",{\"1\":{\"77\":1}}],[\"不要\",{\"1\":{\"34\":1}}],[\"不再表示执行线程失去了线程的所有权\",{\"1\":{\"100\":1}}],[\"不再拥有共享状态\",{\"1\":{\"56\":1}}],[\"不再强调\",{\"1\":{\"33\":1}}],[\"不再管理此线程\",{\"1\":{\"13\":1}}],[\"不同架构的内存模型\",{\"1\":{\"94\":1}}],[\"不同的指令集架构大多都还是有所不同的\",{\"1\":{\"86\":1}}],[\"不同的变量有不同的使用场景和特点\",{\"1\":{\"41\":1}}],[\"不同于通常情况\",{\"1\":{\"78\":1}}],[\"不同于\",{\"1\":{\"69\":1}}],[\"不同线程对同一个互斥量进行锁定时\",{\"1\":{\"36\":1}}],[\"不同\",{\"1\":{\"29\":1,\"116\":2}}],[\"不会等待所有任务执行完毕\",{\"1\":{\"117\":1}}],[\"不会对\",{\"1\":{\"113\":1}}],[\"不会造成任何额外开销\",{\"1\":{\"103\":1}}],[\"不会模板\",{\"1\":{\"101\":1,\"102\":1,\"105\":1}}],[\"不会单独使用或直接面向普通开发者\",{\"1\":{\"77\":1}}],[\"不会阻塞\",{\"1\":{\"63\":1}}],[\"不会被其它线程的执行所打断\",{\"1\":{\"27\":1}}],[\"不会被打断\",{\"1\":{\"26\":1,\"72\":1}}],[\"不会有任何其他的线程打断这个操作\",{\"1\":{\"27\":1}}],[\"不是可调用类型\",{\"1\":{\"100\":1}}],[\"不是定序约束\",{\"1\":{\"84\":1}}],[\"不是同一个\",{\"1\":{\"28\":1}}],[\"不是线程安全的容器\",{\"1\":{\"26\":1}}],[\"不是真的返回引用\",{\"1\":{\"15\":1}}],[\"不完全支持\",{\"1\":{\"22\":1}}],[\"不直接为\",{\"1\":{\"21\":1}}],[\"不可表示一个线程\",{\"1\":{\"100\":1}}],[\"不可能观察到原子操作完成了一半\",{\"1\":{\"74\":1}}],[\"不可能达到纳秒级别\",{\"1\":{\"61\":1}}],[\"不可能看到正在被add\",{\"1\":{\"28\":1}}],[\"不可能每一个任务都单独给一个核心\",{\"1\":{\"6\":1}}],[\"不可复制不可移动\",{\"1\":{\"33\":1}}],[\"不可复制\",{\"1\":{\"17\":1,\"55\":1,\"100\":1}}],[\"不用感到奇怪\",{\"1\":{\"91\":1,\"107\":1}}],[\"不用感到难以理解\",{\"1\":{\"72\":1}}],[\"不用赘述\",{\"1\":{\"22\":1}}],[\"不用调用\",{\"1\":{\"17\":1}}],[\"不用着急\",{\"1\":{\"16\":1,\"17\":1,\"77\":1}}],[\"不用担心数据竞争\",{\"1\":{\"34\":1}}],[\"不用担心生存期的问题\",{\"1\":{\"15\":1}}],[\"不用担心\",{\"1\":{\"15\":1,\"102\":1}}],[\"不用在乎\",{\"1\":{\"14\":1}}],[\"不用在意\",{\"1\":{\"4\":1}}],[\"不允许这些操作主要在于\",{\"1\":{\"14\":1}}],[\"不掩盖错误\",{\"1\":{\"13\":1}}],[\"不等待线程结束\",{\"1\":{\"13\":1}}],[\"不过也都没什么特别的了\",{\"1\":{\"116\":1}}],[\"不过也可以自己创建\",{\"1\":{\"116\":1}}],[\"不过也可以单独使用\",{\"1\":{\"54\":1}}],[\"不过总体并无多大区别\",{\"1\":{\"109\":1}}],[\"不过整体大差不差\",{\"1\":{\"109\":1}}],[\"不过可以推测\",{\"1\":{\"108\":1}}],[\"不过可以隐式转换成对应的内置类型\",{\"1\":{\"76\":1}}],[\"不过你可能有疑问\",{\"1\":{\"104\":1}}],[\"不过实测\",{\"1\":{\"101\":1}}],[\"不过实践中这种情况较少\",{\"1\":{\"46\":1}}],[\"不过依然可以自信地说\",{\"1\":{\"93\":1}}],[\"不过事实上\",{\"1\":{\"80\":1}}],[\"不过并不推荐各位在实践中使用它\",{\"1\":{\"77\":1}}],[\"不过其实我们的\",{\"1\":{\"76\":1}}],[\"不过因为是通用模板\",{\"1\":{\"76\":1}}],[\"不过不用在意\",{\"1\":{\"71\":1}}],[\"不过不影响\",{\"1\":{\"57\":1}}],[\"不过我们在最后循环遍历了\",{\"1\":{\"117\":1}}],[\"不过我们也可以使用系统\",{\"1\":{\"61\":1}}],[\"不过我们说了\",{\"1\":{\"11\":1}}],[\"不过这个\",{\"1\":{\"78\":1}}],[\"不过这个重载的返回类型是\",{\"1\":{\"54\":1}}],[\"不过这显然不是我们的重点\",{\"1\":{\"75\":1}}],[\"不过这不是我们的重点\",{\"1\":{\"73\":1}}],[\"不过这也不是问题\",{\"1\":{\"17\":1}}],[\"不过引用的并非是局部的n\",{\"1\":{\"53\":1}}],[\"不过引用的不是我们传递的局部对象\",{\"1\":{\"53\":1}}],[\"不过还是可以注意一下这个问题\",{\"1\":{\"39\":1}}],[\"不过对于处理一个互斥量的情况\",{\"1\":{\"28\":1}}],[\"不过一般不推荐这样显式的\",{\"1\":{\"28\":1}}],[\"不过在\",{\"1\":{\"22\":1}}],[\"不过需要注意\",{\"1\":{\"15\":1}}],[\"不过有件事情需要注意\",{\"1\":{\"13\":1}}],[\"不过使用类似\",{\"1\":{\"11\":1}}],[\"不过\",{\"1\":{\"10\":1,\"38\":1,\"52\":1,\"72\":1,\"76\":1,\"86\":1,\"117\":1}}],[\"不够准确\",{\"1\":{\"0\":1}}],[\"视频\",{\"1\":{\"0\":1}}],[\"博客\",{\"1\":{\"0\":1}}],[\"国内的\",{\"1\":{\"0\":1}}],[\"捐赠\",{\"1\":{\"0\":1}}],[\"000000\",{\"1\":{\"65\":1}}],[\"01\",{\"1\":{\"58\":1}}],[\"01初始化失败\",{\"1\":{\"51\":1}}],[\"07t12\",{\"1\":{\"58\":1}}],[\"07废料箱即将装满\",{\"1\":{\"51\":1}}],[\"05\",{\"1\":{\"58\":1}}],[\"05清洗液不足\",{\"1\":{\"51\":1}}],[\"09激发液b液不足\",{\"1\":{\"51\":1}}],[\"08激发液a液不足\",{\"1\":{\"51\":1}}],[\"06废液桶即将装满\",{\"1\":{\"51\":1}}],[\"04试剂已失效\",{\"1\":{\"51\":1}}],[\"03试剂不足\",{\"1\":{\"51\":1}}],[\"02初始化成功\",{\"1\":{\"51\":1}}],[\"0>\",{\"1\":{\"22\":1,\"100\":2}}],[\"0\",{\"1\":{\"0\":1,\"11\":5,\"13\":4,\"14\":1,\"15\":4,\"17\":2,\"19\":2,\"26\":2,\"27\":2,\"28\":3,\"34\":1,\"36\":2,\"38\":7,\"39\":1,\"49\":7,\"50\":1,\"53\":2,\"54\":3,\"55\":1,\"63\":2,\"65\":5,\"69\":10,\"71\":4,\"72\":2,\"73\":1,\"75\":1,\"76\":1,\"77\":2,\"80\":5,\"95\":2,\"100\":7,\"109\":1,\"115\":5,\"116\":3,\"117\":7}}],[\"404\",{\"1\":{\"120\":1}}],[\"40\",{\"1\":{\"72\":1,\"76\":1}}],[\"400>\",{\"1\":{\"60\":1}}],[\"49\",{\"1\":{\"72\":1}}],[\"48\",{\"1\":{\"72\":1}}],[\"47\",{\"1\":{\"72\":1}}],[\"46\",{\"1\":{\"72\":1}}],[\"45\",{\"1\":{\"72\":1}}],[\"44\",{\"1\":{\"72\":1}}],[\"43\",{\"1\":{\"72\":1}}],[\"42\",{\"1\":{\"72\":1}}],[\"41\",{\"1\":{\"72\":1}}],[\"4\",{\"1\":{\"0\":1,\"11\":1,\"28\":1,\"34\":1,\"44\":1,\"49\":7,\"69\":1,\"72\":9,\"99\":1,\"109\":1,\"115\":4,\"116\":1,\"117\":6}}],[\"n4950\",{\"1\":{\"109\":2}}],[\"nil\",{\"1\":{\"77\":1}}],[\"n++\",{\"1\":{\"72\":2}}],[\"native\",{\"1\":{\"101\":2}}],[\"nanosecond\",{\"1\":{\"60\":1}}],[\"nanoseconds\",{\"1\":{\"60\":1,\"61\":2}}],[\"nano>\",{\"1\":{\"60\":1}}],[\"namespace\",{\"1\":{\"16\":1,\"22\":1,\"60\":1,\"61\":1}}],[\"new\",{\"1\":{\"33\":1,\"34\":3,\"37\":14,\"46\":2,\"49\":3,\"53\":3,\"65\":4,\"76\":2,\"78\":2,\"80\":6,\"108\":3,\"110\":1,\"115\":1,\"116\":1}}],[\"next\",{\"1\":{\"11\":2,\"54\":1}}],[\"nullptr\",{\"1\":{\"30\":1,\"32\":1,\"33\":1,\"37\":1,\"65\":4,\"100\":2,\"108\":1}}],[\"numbers\",{\"1\":{\"28\":6}}],[\"num\",{\"1\":{\"11\":6,\"54\":6,\"55\":6,\"115\":7,\"117\":12}}],[\"normalpriority\",{\"1\":{\"116\":3}}],[\"non\",{\"1\":{\"109\":1}}],[\"no\",{\"1\":{\"56\":1,\"108\":6,\"109\":2}}],[\"note\",{\"1\":{\"100\":2}}],[\"nothrow\",{\"1\":{\"72\":1}}],[\"notify\",{\"1\":{\"48\":3,\"49\":1,\"50\":2,\"80\":3,\"110\":1,\"117\":2}}],[\"not\",{\"1\":{\"32\":1,\"77\":1,\"109\":1,\"120\":1}}],[\"nodiscard\",{\"1\":{\"22\":1,\"28\":1,\"33\":1,\"100\":2,\"103\":2,\"108\":4,\"109\":1}}],[\"now2\",{\"1\":{\"59\":1}}],[\"now\",{\"1\":{\"16\":11,\"59\":12,\"61\":5,\"108\":1}}],[\"noexcept\",{\"1\":{\"15\":1,\"19\":9,\"22\":1,\"28\":2,\"32\":2,\"33\":1,\"48\":1,\"53\":2,\"72\":5,\"76\":1,\"77\":3,\"95\":2,\"100\":5,\"103\":5,\"104\":2,\"108\":7,\"109\":3,\"117\":1}}],[\"n\",{\"1\":{\"11\":3,\"13\":15,\"14\":2,\"15\":33,\"16\":2,\"17\":5,\"19\":3,\"26\":3,\"27\":2,\"28\":5,\"31\":1,\"34\":3,\"37\":2,\"38\":2,\"39\":7,\"46\":1,\"53\":26,\"54\":3,\"55\":5,\"56\":3,\"57\":1,\"59\":2,\"60\":3,\"61\":2,\"69\":7,\"71\":6,\"72\":6,\"77\":1,\"78\":2,\"80\":2,\"95\":1,\"115\":3,\"117\":9}}],[\"nd\",{\"1\":{\"0\":1}}],[\"nc\",{\"1\":{\"0\":1}}],[\"c2280\",{\"1\":{\"100\":1}}],[\"cisc\",{\"1\":{\"86\":1}}],[\"cstd\",{\"1\":{\"100\":2}}],[\"cst\",{\"1\":{\"76\":3,\"77\":2,\"84\":5}}],[\"csapp\",{\"1\":{\"11\":1}}],[\"centralwidget\",{\"1\":{\"65\":1}}],[\"center\",{\"1\":{\"65\":2}}],[\"cerr\",{\"1\":{\"50\":1,\"55\":2,\"56\":1}}],[\"cmake\",{\"1\":{\"64\":1,\"73\":1,\"94\":1}}],[\"cxx20\",{\"1\":{\"60\":1}}],[\"cnd\",{\"1\":{\"48\":1,\"100\":1}}],[\"cnt++\",{\"1\":{\"26\":1}}],[\"cnt\",{\"1\":{\"26\":1}}],[\"cv\",{\"1\":{\"48\":8,\"61\":3,\"100\":1,\"101\":1,\"117\":6}}],[\"cvref\",{\"1\":{\"22\":1,\"100\":2}}],[\"createthread\",{\"1\":{\"101\":3}}],[\"create\",{\"1\":{\"38\":1,\"53\":2,\"101\":1,\"108\":3,\"116\":1}}],[\"cref\",{\"1\":{\"15\":3,\"28\":2}}],[\"ctor\",{\"1\":{\"22\":1,\"33\":1,\"100\":1}}],[\"current\",{\"1\":{\"16\":1,\"55\":3,\"59\":2,\"108\":3,\"110\":1}}],[\"clear\",{\"1\":{\"77\":4,\"78\":1,\"117\":1}}],[\"cleaningagentinsufficient\",{\"1\":{\"51\":1}}],[\"clicked\",{\"1\":{\"65\":2}}],[\"clock>\",{\"1\":{\"61\":2}}],[\"clock\",{\"1\":{\"16\":5,\"58\":1,\"59\":9,\"61\":8}}],[\"class\",{\"1\":{\"13\":1,\"14\":1,\"19\":1,\"22\":1,\"28\":2,\"30\":2,\"34\":6,\"35\":1,\"49\":1,\"50\":1,\"53\":1,\"59\":2,\"60\":2,\"61\":3,\"65\":1,\"72\":2,\"77\":1,\"80\":1,\"84\":1,\"100\":4,\"101\":1,\"103\":4,\"104\":4,\"108\":9,\"109\":4,\"117\":2}}],[\"clang18\",{\"1\":{\"92\":1,\"94\":1}}],[\"clang19\",{\"1\":{\"22\":1}}],[\"clang\",{\"1\":{\"0\":1,\"22\":1,\"38\":2,\"39\":2,\"72\":1,\"94\":2}}],[\"check\",{\"1\":{\"32\":1}}],[\"chrono\",{\"1\":{\"16\":10,\"22\":1,\"29\":1,\"48\":3,\"53\":1,\"55\":1,\"57\":2,\"58\":1,\"59\":9,\"60\":16,\"61\":21,\"69\":1}}],[\"char>\",{\"1\":{\"76\":2,\"104\":1}}],[\"char8\",{\"1\":{\"76\":1}}],[\"char32\",{\"1\":{\"76\":1}}],[\"char16\",{\"1\":{\"76\":1}}],[\"char\",{\"1\":{\"15\":5,\"76\":2,\"95\":1,\"116\":1}}],[\"chunk\",{\"1\":{\"11\":5,\"54\":2,\"65\":1}}],[\"c\",{\"1\":{\"15\":1,\"65\":2,\"75\":2,\"101\":4,\"104\":1}}],[\"cast\",{\"1\":{\"60\":1}}],[\"cast\",{\"1\":{\"115\":1}}],[\"cast<\",{\"1\":{\"100\":1}}],[\"cast\",{\"1\":{\"60\":1}}],[\"case\",{\"1\":{\"53\":2,\"108\":2}}],[\"calculate\",{\"1\":{\"55\":2}}],[\"calloc\",{\"1\":{\"37\":1}}],[\"call\",{\"1\":{\"34\":9,\"46\":1,\"108\":11,\"109\":4,\"110\":3}}],[\"callable>\",{\"1\":{\"116\":1}}],[\"callable\",{\"1\":{\"10\":1,\"13\":1,\"15\":1,\"19\":2,\"34\":1,\"53\":2,\"54\":2,\"100\":1,\"104\":5,\"108\":4,\"116\":3}}],[\"can\",{\"1\":{\"32\":1}}],[\"cancel\",{\"1\":{\"22\":4}}],[\"catch\",{\"1\":{\"13\":6,\"34\":2,\"55\":4,\"56\":1,\"108\":6,\"110\":2}}],[\"copied\",{\"1\":{\"100\":7}}],[\"copyable\",{\"1\":{\"109\":1}}],[\"copyable[e,zt(t,{fields:["h","t","c"],storeFields:["h","t","c"]})]));self.onmessage=({data:{type:e="all",query:t,locale:s,options:n,id:o}})=>{const u=bt[s];e==="suggest"?self.postMessage([e,o,tt(t,u,n)]):e==="search"?self.postMessage([e,o,Z(t,u,n)]):self.postMessage({suggestions:[e,o,tt(t,u,n)],results:[e,o,Z(t,u,n)]})}; +//# sourceMappingURL=index.js.map